build_template() — svelte Function Reference
Architecture documentation for the build_template() function in utils.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 49bc6956_1326_e1db_837c_bb4db2493060["build_template()"] 74eddc85_a390_2aab_af5a_ef32b77d5430["utils.js"] 49bc6956_1326_e1db_837c_bb4db2493060 -->|defined in| 74eddc85_a390_2aab_af5a_ef32b77d5430 018cf13b_00c1_1002_de36_76e71d0a0a5e["Fragment()"] 018cf13b_00c1_1002_de36_76e71d0a0a5e -->|calls| 49bc6956_1326_e1db_837c_bb4db2493060 602abe50_d235_587e_7077_a4250fe9dc79["RegularElement()"] 602abe50_d235_587e_7077_a4250fe9dc79 -->|calls| 49bc6956_1326_e1db_837c_bb4db2493060 7fdec420_5da7_caf6_9113_d56e2e3c9e8e["SvelteBoundary()"] 7fdec420_5da7_caf6_9113_d56e2e3c9e8e -->|calls| 49bc6956_1326_e1db_837c_bb4db2493060 c4f05925_802b_7561_caa7_d44e5e7a50fd["SvelteElement()"] c4f05925_802b_7561_caa7_d44e5e7a50fd -->|calls| 49bc6956_1326_e1db_837c_bb4db2493060 2cc87ff4_8315_a5e3_6fa2_6ca8a78b161c["TitleElement()"] 2cc87ff4_8315_a5e3_6fa2_6ca8a78b161c -->|calls| 49bc6956_1326_e1db_837c_bb4db2493060 d83b6ec4_54a2_eaba_fd40_13cbbdc6982f["is_statement()"] 49bc6956_1326_e1db_837c_bb4db2493060 -->|calls| d83b6ec4_54a2_eaba_fd40_13cbbdc6982f style 49bc6956_1326_e1db_837c_bb4db2493060 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/utils.js lines 120–179
export function build_template(template) {
/** @type {string[]} */
let strings = [];
/** @type {Expression[]} */
let expressions = [];
/** @type {Statement[]} */
const statements = [];
const flush = () => {
statements.push(
b.stmt(
b.call(
b.id('$$renderer.push'),
b.template(
strings.map((cooked, i) => b.quasi(cooked, i === strings.length - 1)),
expressions
)
)
)
);
strings = [];
expressions = [];
};
for (let i = 0; i < template.length; i++) {
const node = template[i];
if (is_statement(node)) {
if (strings.length !== 0) {
flush();
}
statements.push(node);
} else {
if (strings.length === 0) {
strings.push('');
}
if (node.type === 'Literal') {
strings[strings.length - 1] += node.value;
} else if (node.type === 'TemplateLiteral') {
strings[strings.length - 1] += node.quasis[0].value.cooked;
strings.push(...node.quasis.slice(1).map((q) => /** @type {string} */ (q.value.cooked)));
expressions.push(...node.expressions);
} else {
expressions.push(node);
strings.push('');
}
}
}
if (strings.length !== 0) {
flush();
}
return statements;
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does build_template() do?
build_template() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/utils.js.
Where is build_template() defined?
build_template() is defined in packages/svelte/src/compiler/phases/3-transform/server/visitors/shared/utils.js at line 120.
What does build_template() call?
build_template() calls 1 function(s): is_statement.
What calls build_template()?
build_template() is called by 5 function(s): Fragment, RegularElement, SvelteBoundary, SvelteElement, TitleElement.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free