prepare_element_spread() — svelte Function Reference
Architecture documentation for the prepare_element_spread() function in element.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD b6b60d37_35c9_2ea4_dd94_b777d0860ea8["prepare_element_spread()"] b25fbb61_695c_e699_cbac_73059624d603["element.js"] b6b60d37_35c9_2ea4_dd94_b777d0860ea8 -->|defined in| b25fbb61_695c_e699_cbac_73059624d603 55eb3f8e_68bc_d21e_cf79_8580012854f2["build_element_spread_attributes()"] 55eb3f8e_68bc_d21e_cf79_8580012854f2 -->|calls| b6b60d37_35c9_2ea4_dd94_b777d0860ea8 6bb21aff_7c01_9593_26a7_a77307bf55bb["prepare_element_spread_object()"] 6bb21aff_7c01_9593_26a7_a77307bf55bb -->|calls| b6b60d37_35c9_2ea4_dd94_b777d0860ea8 804afe56_25d1_9f41_dafe_adc75e952134["object()"] b6b60d37_35c9_2ea4_dd94_b777d0860ea8 -->|calls| 804afe56_25d1_9f41_dafe_adc75e952134 9f24c33c_da34_a132_f273_3ffd2f6e5cf8["build_attribute_value()"] b6b60d37_35c9_2ea4_dd94_b777d0860ea8 -->|calls| 9f24c33c_da34_a132_f273_3ffd2f6e5cf8 76437ce7_73fa_a7f2_397a_1ddd381e8282["is_custom_element_node()"] b6b60d37_35c9_2ea4_dd94_b777d0860ea8 -->|calls| 76437ce7_73fa_a7f2_397a_1ddd381e8282 959bef75_9552_0e6a_5eb8_b82a31b18562["build_spread_object()"] b6b60d37_35c9_2ea4_dd94_b777d0860ea8 -->|calls| 959bef75_9552_0e6a_5eb8_b82a31b18562 style b6b60d37_35c9_2ea4_dd94_b777d0860ea8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/element.js lines 416–473
export function prepare_element_spread(
element,
attributes,
style_directives,
class_directives,
context,
transform
) {
/** @type {ObjectExpression | undefined} */
let classes;
/** @type {ObjectExpression | undefined} */
let styles;
let flags = 0;
if (class_directives.length) {
const properties = class_directives.map((directive) =>
b.init(
directive.name,
directive.expression.type === 'Identifier' && directive.expression.name === directive.name
? b.id(directive.name)
: transform(
/** @type {Expression} */ (context.visit(directive.expression)),
directive.metadata.expression
)
)
);
classes = b.object(properties);
}
if (style_directives.length > 0) {
const properties = style_directives.map((directive) =>
b.init(
directive.name,
directive.value === true
? b.id(directive.name)
: build_attribute_value(directive.value, context, transform, true)
)
);
styles = b.object(properties);
}
if (element.metadata.svg || element.metadata.mathml) {
flags |= ELEMENT_IS_NAMESPACED | ELEMENT_PRESERVE_ATTRIBUTE_CASE;
} else if (is_custom_element_node(element)) {
flags |= ELEMENT_PRESERVE_ATTRIBUTE_CASE;
} else if (element.type === 'RegularElement' && element.name === 'input') {
flags |= ELEMENT_IS_INPUT;
}
const object = build_spread_object(element, attributes, context, transform);
const css_hash =
element.metadata.scoped && context.state.analysis.css.hash
? b.literal(context.state.analysis.css.hash)
: undefined;
return [object, css_hash, classes, styles, flags ? b.literal(flags) : undefined];
}
Domain
Subdomains
Source
Frequently Asked Questions
What does prepare_element_spread() do?
prepare_element_spread() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/element.js.
Where is prepare_element_spread() defined?
prepare_element_spread() is defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/element.js at line 416.
What does prepare_element_spread() call?
prepare_element_spread() calls 4 function(s): build_attribute_value, build_spread_object, is_custom_element_node, object.
What calls prepare_element_spread()?
prepare_element_spread() is called by 2 function(s): build_element_spread_attributes, prepare_element_spread_object.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free