SvelteBoundary() — svelte Function Reference
Architecture documentation for the SvelteBoundary() function in SvelteBoundary.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 7fdec420_5da7_caf6_9113_d56e2e3c9e8e["SvelteBoundary()"] 1831a41b_2cdc_bfcb_89c5_5a00675ed78c["SvelteBoundary.js"] 7fdec420_5da7_caf6_9113_d56e2e3c9e8e -->|defined in| 1831a41b_2cdc_bfcb_89c5_5a00675ed78c 9f24c33c_da34_a132_f273_3ffd2f6e5cf8["build_attribute_value()"] 7fdec420_5da7_caf6_9113_d56e2e3c9e8e -->|calls| 9f24c33c_da34_a132_f273_3ffd2f6e5cf8 49bc6956_1326_e1db_837c_bb4db2493060["build_template()"] 7fdec420_5da7_caf6_9113_d56e2e3c9e8e -->|calls| 49bc6956_1326_e1db_837c_bb4db2493060 style 7fdec420_5da7_caf6_9113_d56e2e3c9e8e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteBoundary.js lines 17–71
export function SvelteBoundary(node, context) {
// if this has a `pending` snippet, render it
const pending_attribute = /** @type {AST.Attribute} */ (
node.attributes.find((node) => node.type === 'Attribute' && node.name === 'pending')
);
const is_pending_attr_nullish =
pending_attribute &&
typeof pending_attribute.value === 'object' &&
!Array.isArray(pending_attribute.value) &&
!context.state.scope.evaluate(pending_attribute.value.expression).is_defined;
const pending_snippet = /** @type {AST.SnippetBlock} */ (
node.fragment.nodes.find(
(node) => node.type === 'SnippetBlock' && node.expression.name === 'pending'
)
);
if (pending_attribute || pending_snippet) {
if (pending_attribute && is_pending_attr_nullish && !pending_snippet) {
const callee = build_attribute_value(
pending_attribute.value,
context,
(expression) => expression,
false,
true
);
const pending = b.call(callee, b.id('$$renderer'));
const block = /** @type {BlockStatement} */ (context.visit(node.fragment));
context.state.template.push(
b.if(
callee,
b.block(build_template([block_open_else, b.stmt(pending), block_close])),
b.block(build_template([block_open, block, block_close]))
)
);
} else {
const pending = pending_attribute
? b.call(
build_attribute_value(
pending_attribute.value,
context,
(expression) => expression,
false,
true
),
b.id('$$renderer')
)
: /** @type {BlockStatement} */ (context.visit(pending_snippet.body));
context.state.template.push(block_open_else, pending, block_close);
}
} else {
const block = /** @type {BlockStatement} */ (context.visit(node.fragment));
context.state.template.push(block_open, block, block_close);
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does SvelteBoundary() do?
SvelteBoundary() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteBoundary.js.
Where is SvelteBoundary() defined?
SvelteBoundary() is defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/SvelteBoundary.js at line 17.
What does SvelteBoundary() call?
SvelteBoundary() calls 2 function(s): build_attribute_value, build_template.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free