ExpressionTag.js — svelte Source File
Architecture documentation for ExpressionTag.js, a javascript file in the svelte codebase. 6 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 563e8414_1dd4_f5bf_e346_91afa5cea4b9["ExpressionTag.js"] 302f84f3_ec7c_fd57_5b8e_e2f3ec2953b7["html-tree-validation.js"] 563e8414_1dd4_f5bf_e346_91afa5cea4b9 --> 302f84f3_ec7c_fd57_5b8e_e2f3ec2953b7 b52e7925_73b5_1187_beab_fb7eb59cc45d["is_tag_valid_with_parent"] 563e8414_1dd4_f5bf_e346_91afa5cea4b9 --> b52e7925_73b5_1187_beab_fb7eb59cc45d 495501a4_a342_6a4d_ac11_e3e2fee8b218["errors.js"] 563e8414_1dd4_f5bf_e346_91afa5cea4b9 --> 495501a4_a342_6a4d_ac11_e3e2fee8b218 a146f6ac_0088_8736_b6ce_318f9f115170["e"] 563e8414_1dd4_f5bf_e346_91afa5cea4b9 --> a146f6ac_0088_8736_b6ce_318f9f115170 c4b4ac8d_9914_5ede_1aea_723bf80d2e9b["fragment.js"] 563e8414_1dd4_f5bf_e346_91afa5cea4b9 --> c4b4ac8d_9914_5ede_1aea_723bf80d2e9b 313d2a82_30ea_3161_3aad_0cc2094979aa["mark_subtree_dynamic"] 563e8414_1dd4_f5bf_e346_91afa5cea4b9 --> 313d2a82_30ea_3161_3aad_0cc2094979aa 4aa8a188_84d4_0274_ed83_cac0ab1d3572["index.js"] 4aa8a188_84d4_0274_ed83_cac0ab1d3572 --> 563e8414_1dd4_f5bf_e346_91afa5cea4b9 style 563e8414_1dd4_f5bf_e346_91afa5cea4b9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/** @import { AST } from '#compiler' */
/** @import { Context } from '../types' */
import { is_tag_valid_with_parent } from '../../../../html-tree-validation.js';
import * as e from '../../../errors.js';
import { mark_subtree_dynamic } from './shared/fragment.js';
/**
* @param {AST.ExpressionTag} node
* @param {Context} context
*/
export function ExpressionTag(node, context) {
const in_template = context.path.at(-1)?.type === 'Fragment';
if (in_template && context.state.parent_element) {
const message = is_tag_valid_with_parent('#text', context.state.parent_element);
if (message) {
e.node_invalid_placement(node, message);
}
}
// TODO ideally we wouldn't do this here, we'd just do it on encountering
// an `Identifier` within the tag. But we currently need to handle `{42}` etc
mark_subtree_dynamic(context.path);
context.next({ ...context.state, expression: node.metadata.expression });
}
Domain
Subdomains
Functions
Dependencies
Source
Frequently Asked Questions
What does ExpressionTag.js do?
ExpressionTag.js is a source file in the svelte codebase, written in javascript. It belongs to the Compiler domain, Transformer subdomain.
What functions are defined in ExpressionTag.js?
ExpressionTag.js defines 1 function(s): ExpressionTag.
What does ExpressionTag.js depend on?
ExpressionTag.js imports 6 module(s): e, errors.js, fragment.js, html-tree-validation.js, is_tag_valid_with_parent, mark_subtree_dynamic.
What files import ExpressionTag.js?
ExpressionTag.js is imported by 1 file(s): index.js.
Where is ExpressionTag.js in the architecture?
ExpressionTag.js is located at packages/svelte/src/compiler/phases/2-analyze/visitors/ExpressionTag.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler/phases/2-analyze/visitors).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free