ensure() — svelte Function Reference
Architecture documentation for the ensure() function in branches.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 8783b6d3_ff2d_7032_cf54_f6a71da85e37["ensure()"] 60ab4ae8_779f_562b_010b_c2c26a4235d8["BranchManager"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|defined in| 60ab4ae8_779f_562b_010b_c2c26a4235d8 1c26aae4_d98a_69f4_58e6_458a25a8ffb9["if_block()"] 1c26aae4_d98a_69f4_58e6_458a25a8ffb9 -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37 821ef2fc_9e43_0097_23f6_64596cef64f8["key()"] 821ef2fc_9e43_0097_23f6_64596cef64f8 -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37 88c21c85_2180_c371_713e_22159a977304["snippet()"] 88c21c85_2180_c371_713e_22159a977304 -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37 3c2cd3fa_01cb_7754_d947_c844c5968e02["component()"] 3c2cd3fa_01cb_7754_d947_c844c5968e02 -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37 0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a["element()"] 0ea8cc86_b858_f4aa_3e5d_68ffcb0df96a -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37 6b775363_a430_a650_b5bb_43f6c298e1fe["await_block()"] 6b775363_a430_a650_b5bb_43f6c298e1fe -->|calls| 8783b6d3_ff2d_7032_cf54_f6a71da85e37 2ec0d2fd_8bbc_b2ba_53ae_f2da02bb3ba5["ensure()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| 2ec0d2fd_8bbc_b2ba_53ae_f2da02bb3ba5 c4c2548c_902e_185e_193f_a8d4a30d7f72["should_defer_append()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| c4c2548c_902e_185e_193f_a8d4a30d7f72 ec54e18a_a454_5d8c_9e00_7bc16e4f49c4["create_text()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| ec54e18a_a454_5d8c_9e00_7bc16e4f49c4 4ca1b5f2_087e_afec_72d9_534a30fbfe1f["branch()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| 4ca1b5f2_087e_afec_72d9_534a30fbfe1f 4884c8a4_7cc6_1b32_b689_ac96e3d81e91["unskip_effect()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| 4884c8a4_7cc6_1b32_b689_ac96e3d81e91 5d586c82_3240_946e_57e6_6b7c46e8825e["skip_effect()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| 5d586c82_3240_946e_57e6_6b7c46e8825e 9a3ccb07_fa02_c4b4_d89d_ee0b6ed474cb["oncommit()"] 8783b6d3_ff2d_7032_cf54_f6a71da85e37 -->|calls| 9a3ccb07_fa02_c4b4_d89d_ee0b6ed474cb style 8783b6d3_ff2d_7032_cf54_f6a71da85e37 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/internal/client/dom/blocks/branches.js lines 175–226
ensure(key, fn) {
var batch = /** @type {Batch} */ (current_batch);
var defer = should_defer_append();
if (fn && !this.#onscreen.has(key) && !this.#offscreen.has(key)) {
if (defer) {
var fragment = document.createDocumentFragment();
var target = create_text();
fragment.append(target);
this.#offscreen.set(key, {
effect: branch(() => fn(target)),
fragment
});
} else {
this.#onscreen.set(
key,
branch(() => fn(this.anchor))
);
}
}
this.#batches.set(batch, key);
if (defer) {
for (const [k, effect] of this.#onscreen) {
if (k === key) {
batch.unskip_effect(effect);
} else {
batch.skip_effect(effect);
}
}
for (const [k, branch] of this.#offscreen) {
if (k === key) {
batch.unskip_effect(branch.effect);
} else {
batch.skip_effect(branch.effect);
}
}
batch.oncommit(this.#commit);
batch.ondiscard(this.#discard);
} else {
if (hydrating) {
this.anchor = hydrate_node;
}
this.#commit();
}
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does ensure() do?
ensure() is a function in the svelte codebase, defined in packages/svelte/src/internal/client/dom/blocks/branches.js.
Where is ensure() defined?
ensure() is defined in packages/svelte/src/internal/client/dom/blocks/branches.js at line 175.
What does ensure() call?
ensure() calls 8 function(s): branch, create_text, ensure, oncommit, ondiscard, should_defer_append, skip_effect, unskip_effect.
What calls ensure()?
ensure() is called by 6 function(s): await_block, component, element, if_block, key, snippet.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free