CallExpression.js — svelte Source File
Architecture documentation for CallExpression.js, a javascript file in the svelte codebase. 9 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR c195d127_ca65_6260_2e2d_70c2cc9b25f5["CallExpression.js"] 62f818c8_e890_17ed_5ec1_92f953d4a7a6["state.js"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> 62f818c8_e890_17ed_5ec1_92f953d4a7a6 7a7783f8_ffa6_0cc3_61b0_031882649535["is_ignored"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> 7a7783f8_ffa6_0cc3_61b0_031882649535 ee93d8a6_6fde_b1c1_e15b_3a4da5326305["scope.js"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> ee93d8a6_6fde_b1c1_e15b_3a4da5326305 bed91719_d047_2256_e199_ee875d5f49b9["get_rune"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> bed91719_d047_2256_e199_ee875d5f49b9 c518b20b_2355_7b11_4ac2_2d9bb5dcfb43["utils.js"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> c518b20b_2355_7b11_4ac2_2d9bb5dcfb43 88db3726_5740_3eb8_99fb_4b297fb19b24["should_proxy"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> 88db3726_5740_3eb8_99fb_4b297fb19b24 f3fad5a9_6b91_ed4f_9331_7f9fc18491c3["utils.js"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> f3fad5a9_6b91_ed4f_9331_7f9fc18491c3 57534fa7_7bfd_c029_75ae_4c5950d5e65c["get_inspect_args"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> 57534fa7_7bfd_c029_75ae_4c5950d5e65c 95c28355_f14c_c3cd_5a03_d5a53ca255bc["builders"] c195d127_ca65_6260_2e2d_70c2cc9b25f5 --> 95c28355_f14c_c3cd_5a03_d5a53ca255bc 7665e008_f37d_b860_a594_f2539a66af4e["transform-client.js"] 7665e008_f37d_b860_a594_f2539a66af4e --> c195d127_ca65_6260_2e2d_70c2cc9b25f5 style c195d127_ca65_6260_2e2d_70c2cc9b25f5 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/** @import { CallExpression, Expression } from 'estree' */
/** @import { Context } from '../types' */
import { dev, is_ignored } from '../../../../state.js';
import * as b from '#compiler/builders';
import { get_rune } from '../../../scope.js';
import { should_proxy } from '../utils.js';
import { get_inspect_args } from '../../utils.js';
/**
* @param {CallExpression} node
* @param {Context} context
*/
export function CallExpression(node, context) {
const rune = get_rune(node, context.state.scope);
switch (rune) {
case '$host':
return b.id('$$props.$$host');
case '$effect.tracking':
return b.call('$.effect_tracking');
// transform state field assignments in constructors
case '$state':
case '$state.raw': {
let arg = node.arguments[0];
/** @type {Expression | undefined} */
let value = undefined;
if (arg) {
value = /** @type {Expression} */ (context.visit(node.arguments[0]));
if (
rune === '$state' &&
should_proxy(/** @type {Expression} */ (arg), context.state.scope)
) {
value = b.call('$.proxy', value);
}
}
const callee = b.id('$.state', node.callee.loc);
return b.call(callee, value);
}
case '$derived':
case '$derived.by': {
let fn = /** @type {Expression} */ (context.visit(node.arguments[0]));
return b.call('$.derived', rune === '$derived' ? b.thunk(fn) : fn);
}
case '$state.eager':
return b.call(
'$.eager',
b.thunk(/** @type {Expression} */ (context.visit(node.arguments[0])))
);
case '$state.snapshot':
return b.call(
// ... (77 more lines)
Domain
Subdomains
Functions
Dependencies
Source
Frequently Asked Questions
What does CallExpression.js do?
CallExpression.js is a source file in the svelte codebase, written in javascript. It belongs to the Compiler domain, Transformer subdomain.
What functions are defined in CallExpression.js?
CallExpression.js defines 2 function(s): CallExpression, transform_inspect_rune.
What does CallExpression.js depend on?
CallExpression.js imports 9 module(s): builders, get_inspect_args, get_rune, is_ignored, scope.js, should_proxy, state.js, utils.js, and 1 more.
What files import CallExpression.js?
CallExpression.js is imported by 1 file(s): transform-client.js.
Where is CallExpression.js in the architecture?
CallExpression.js is located at packages/svelte/src/compiler/phases/3-transform/client/visitors/CallExpression.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler/phases/3-transform/client/visitors).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free