Home / Function/ build_spread_object() — svelte Function Reference

build_spread_object() — svelte Function Reference

Architecture documentation for the build_spread_object() function in element.js from the svelte codebase.

Function javascript Compiler Transformer calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  959bef75_9552_0e6a_5eb8_b82a31b18562["build_spread_object()"]
  b25fbb61_695c_e699_cbac_73059624d603["element.js"]
  959bef75_9552_0e6a_5eb8_b82a31b18562 -->|defined in| b25fbb61_695c_e699_cbac_73059624d603
  b6b60d37_35c9_2ea4_dd94_b777d0860ea8["prepare_element_spread()"]
  b6b60d37_35c9_2ea4_dd94_b777d0860ea8 -->|calls| 959bef75_9552_0e6a_5eb8_b82a31b18562
  804afe56_25d1_9f41_dafe_adc75e952134["object()"]
  959bef75_9552_0e6a_5eb8_b82a31b18562 -->|calls| 804afe56_25d1_9f41_dafe_adc75e952134
  6f6a3489_4061_e976_4be8_4905a2ae23cc["get_attribute_name()"]
  959bef75_9552_0e6a_5eb8_b82a31b18562 -->|calls| 6f6a3489_4061_e976_4be8_4905a2ae23cc
  9f24c33c_da34_a132_f273_3ffd2f6e5cf8["build_attribute_value()"]
  959bef75_9552_0e6a_5eb8_b82a31b18562 -->|calls| 9f24c33c_da34_a132_f273_3ffd2f6e5cf8
  style 959bef75_9552_0e6a_5eb8_b82a31b18562 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/element.js lines 301–334

export function build_spread_object(element, attributes, context, transform) {
	const object = b.object(
		attributes.map((attribute) => {
			if (attribute.type === 'Attribute') {
				const name = get_attribute_name(element, attribute);
				const value = build_attribute_value(
					attribute.value,
					context,
					transform,
					WHITESPACE_INSENSITIVE_ATTRIBUTES.includes(name)
				);

				return b.prop('init', b.key(name), value);
			} else if (attribute.type === 'BindDirective') {
				const name = get_attribute_name(element, attribute);
				const value =
					attribute.expression.type === 'SequenceExpression'
						? b.call(attribute.expression.expressions[0])
						: /** @type {Expression} */ (context.visit(attribute.expression));

				return b.prop('init', b.key(name), value);
			}

			return b.spread(
				transform(
					/** @type {Expression} */ (context.visit(attribute)),
					attribute.metadata.expression
				)
			);
		})
	);

	return object;
}

Domain

Subdomains

Frequently Asked Questions

What does build_spread_object() do?
build_spread_object() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/element.js.
Where is build_spread_object() defined?
build_spread_object() is defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/element.js at line 301.
What does build_spread_object() call?
build_spread_object() calls 3 function(s): build_attribute_value, get_attribute_name, object.
What calls build_spread_object()?
build_spread_object() is called by 1 function(s): prepare_element_spread.

Analyze Your Own Codebase

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

Try Supermodel Free