Home / Function/ create_derived_block_argument() — svelte Function Reference

create_derived_block_argument() — svelte Function Reference

Architecture documentation for the create_derived_block_argument() function in AwaitBlock.js from the svelte codebase.

Function javascript Compiler Transformer calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  ee8b2bed_04ff_215a_150b_219fe7b6d684["create_derived_block_argument()"]
  844ad472_83ed_856d_0120_d6773152f6bb["AwaitBlock.js"]
  ee8b2bed_04ff_215a_150b_219fe7b6d684 -->|defined in| 844ad472_83ed_856d_0120_d6773152f6bb
  49a90e76_8bb2_2524_8ee4_abb5bc5df675["AwaitBlock()"]
  49a90e76_8bb2_2524_8ee4_abb5bc5df675 -->|calls| ee8b2bed_04ff_215a_150b_219fe7b6d684
  c12e0147_3f27_cf17_5878_e54ffdc328d5["extract_identifiers()"]
  ee8b2bed_04ff_215a_150b_219fe7b6d684 -->|calls| c12e0147_3f27_cf17_5878_e54ffdc328d5
  804afe56_25d1_9f41_dafe_adc75e952134["object()"]
  ee8b2bed_04ff_215a_150b_219fe7b6d684 -->|calls| 804afe56_25d1_9f41_dafe_adc75e952134
  c6147fac_8ab6_4ed2_9c90_08e83553fb43["create_derived()"]
  ee8b2bed_04ff_215a_150b_219fe7b6d684 -->|calls| c6147fac_8ab6_4ed2_9c90_08e83553fb43
  style ee8b2bed_04ff_215a_150b_219fe7b6d684 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitBlock.js lines 96–124

function create_derived_block_argument(node, context) {
	if (node.type === 'Identifier') {
		context.state.transform[node.name] = { read: get_value };
		return { id: node, declarations: null };
	}

	const pattern = /** @type {Pattern} */ (context.visit(node));
	const identifiers = extract_identifiers(node);

	const id = b.id('$$source');
	const value = b.id('$$value');

	const block = b.block([
		b.var(pattern, b.call('$.get', id)),
		b.return(b.object(identifiers.map((identifier) => b.prop('init', identifier, identifier))))
	]);

	const declarations = [b.var(value, create_derived(context.state, block))];

	for (const id of identifiers) {
		context.state.transform[id.name] = { read: get_value };

		declarations.push(
			b.var(id, create_derived(context.state, b.member(b.call('$.get', value), id)))
		);
	}

	return { id, declarations };
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does create_derived_block_argument() do?
create_derived_block_argument() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitBlock.js.
Where is create_derived_block_argument() defined?
create_derived_block_argument() is defined in packages/svelte/src/compiler/phases/3-transform/client/visitors/AwaitBlock.js at line 96.
What does create_derived_block_argument() call?
create_derived_block_argument() calls 3 function(s): create_derived, extract_identifiers, object.
What calls create_derived_block_argument()?
create_derived_block_argument() is called by 1 function(s): AwaitBlock.

Analyze Your Own Codebase

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

Try Supermodel Free