Home / Function/ create_state_declarators() — svelte Function Reference

create_state_declarators() — svelte Function Reference

Architecture documentation for the create_state_declarators() function in VariableDeclaration.js from the svelte codebase.

Function javascript Compiler Transformer calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  887ad0a0_32ea_f4c0_1d78_fe0a6641e266["create_state_declarators()"]
  12047c60_7eb9_7476_83e2_7d8004a6f868["VariableDeclaration.js"]
  887ad0a0_32ea_f4c0_1d78_fe0a6641e266 -->|defined in| 12047c60_7eb9_7476_83e2_7d8004a6f868
  dbadea0c_9bb0_dd96_41bd_09a33169352f["VariableDeclaration()"]
  dbadea0c_9bb0_dd96_41bd_09a33169352f -->|calls| 887ad0a0_32ea_f4c0_1d78_fe0a6641e266
  8980dd2b_1c7a_2c03_2400_e31c60358534["generate()"]
  887ad0a0_32ea_f4c0_1d78_fe0a6641e266 -->|calls| 8980dd2b_1c7a_2c03_2400_e31c60358534
  c254e734_2224_c309_f1f8_bb064e80b1af["extract_paths()"]
  887ad0a0_32ea_f4c0_1d78_fe0a6641e266 -->|calls| c254e734_2224_c309_f1f8_bb064e80b1af
  627dc2f8_4dbc_5bb1_8f54_cee503e17098["get()"]
  887ad0a0_32ea_f4c0_1d78_fe0a6641e266 -->|calls| 627dc2f8_4dbc_5bb1_8f54_cee503e17098
  style 887ad0a0_32ea_f4c0_1d78_fe0a6641e266 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js lines 388–422

function create_state_declarators(declarator, context, value) {
	if (declarator.id.type === 'Identifier') {
		return [
			b.declarator(
				declarator.id,
				b.call('$.mutable_source', value, context.state.analysis.immutable ? b.true : undefined)
			)
		];
	}

	const tmp = b.id(context.state.scope.generate('tmp'));
	const { inserts, paths } = extract_paths(declarator.id, tmp);

	return [
		b.declarator(tmp, value),
		...inserts.map(({ id, value }) => {
			id.name = context.state.scope.generate('$$array');
			context.state.transform[id.name] = { read: get_value };

			const expression = /** @type {Expression} */ (context.visit(b.thunk(value)));
			return b.declarator(id, b.call('$.derived', expression));
		}),
		...paths.map((path) => {
			const value = /** @type {Expression} */ (context.visit(path.expression));
			const binding = context.state.scope.get(/** @type {Identifier} */ (path.node).name);

			return b.declarator(
				path.node,
				binding?.kind === 'state'
					? b.call('$.mutable_source', value, context.state.analysis.immutable ? b.true : undefined)
					: value
			);
		})
	];
}

Domain

Subdomains

Frequently Asked Questions

What does create_state_declarators() do?
create_state_declarators() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js.
Where is create_state_declarators() defined?
create_state_declarators() is defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/VariableDeclaration.js at line 388.
What does create_state_declarators() call?
create_state_declarators() calls 3 function(s): extract_paths, generate, get.
What calls create_state_declarators()?
create_state_declarators() is called by 1 function(s): VariableDeclaration.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free