read_attribute() — svelte Function Reference
Architecture documentation for the read_attribute() function in element.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD 774b1b65_7dad_02c2_b4ca_c77fc0d799ec["read_attribute()"] 206889ff_1f9f_b6c1_d530_059d001e1cf4["element.js"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|defined in| 206889ff_1f9f_b6c1_d530_059d001e1cf4 f55653bc_77b3_5212_03f1_93bc274916e8["read_expression()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| f55653bc_77b3_5212_03f1_93bc274916e8 7a0ffc5c_c833_ca6c_fe33_60f0f57e9307["read_identifier()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 7a0ffc5c_c833_ca6c_fe33_60f0f57e9307 4213b2ee_a6b6_8c20_18b0_039b399bce79["attribute_empty_shorthand()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 4213b2ee_a6b6_8c20_18b0_039b399bce79 53888034_73fb_39d8_be82_b1928817ff74["create_attribute()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 53888034_73fb_39d8_be82_b1928817ff74 0905a037_af41_826b_7a01_9368b74b61a8["read_tag()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 0905a037_af41_826b_7a01_9368b74b61a8 a7c00cd4_72f9_9456_d767_143236294dbf["get_directive_type()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| a7c00cd4_72f9_9456_d767_143236294dbf 9fcb1dc7_f1ea_4501_df05_9617e7c7d114["read_attribute_value()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 9fcb1dc7_f1ea_4501_df05_9617e7c7d114 7cef41bd_b7cf_112a_875e_5ca7e892c65e["expected_token()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 7cef41bd_b7cf_112a_875e_5ca7e892c65e 6e8924f3_2f3e_0108_667c_ed150efbc2e4["directive_missing_name()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 6e8924f3_2f3e_0108_667c_ed150efbc2e4 189dbd22_bc3a_237a_2467_4dccda6b0d9d["directive_invalid_value()"] 774b1b65_7dad_02c2_b4ca_c77fc0d799ec -->|calls| 189dbd22_bc3a_237a_2467_4dccda6b0d9d style 774b1b65_7dad_02c2_b4ca_c77fc0d799ec fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/1-parse/state/element.js lines 501–696
function read_attribute(parser) {
const start = parser.index;
if (parser.eat('{')) {
parser.allow_whitespace();
if (parser.eat('@attach')) {
parser.require_whitespace();
const expression = read_expression(parser);
parser.allow_whitespace();
parser.eat('}', true);
/** @type {AST.AttachTag} */
const attachment = {
type: 'AttachTag',
start,
end: parser.index,
expression,
metadata: {
expression: new ExpressionMetadata()
}
};
return attachment;
}
if (parser.eat('...')) {
const expression = read_expression(parser);
parser.allow_whitespace();
parser.eat('}', true);
/** @type {AST.SpreadAttribute} */
const spread = {
type: 'SpreadAttribute',
start,
end: parser.index,
expression,
metadata: {
expression: new ExpressionMetadata()
}
};
return spread;
} else {
const id = parser.read_identifier();
if (id.name === '') {
if (
parser.loose &&
(parser.match('#') || parser.match('/') || parser.match('@') || parser.match(':'))
) {
// We're likely in an unclosed opening tag and did read part of a block.
// Return null to not crash the parser so it can continue with closing the tag.
return null;
} else if (parser.loose && parser.match('}')) {
// Likely in the middle of typing, just created the shorthand
} else {
e.attribute_empty_shorthand(start);
}
}
parser.allow_whitespace();
parser.eat('}', true);
/** @type {AST.ExpressionTag} */
const expression = {
type: 'ExpressionTag',
start: id.start,
end: id.end,
expression: id,
metadata: {
expression: new ExpressionMetadata()
}
};
return create_attribute(id.name, id.loc, start, parser.index, expression);
}
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does read_attribute() do?
read_attribute() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/1-parse/state/element.js.
Where is read_attribute() defined?
read_attribute() is defined in packages/svelte/src/compiler/phases/1-parse/state/element.js at line 501.
What does read_attribute() call?
read_attribute() calls 10 function(s): attribute_empty_shorthand, create_attribute, directive_invalid_value, directive_missing_name, expected_token, get_directive_type, read_attribute_value, read_expression, and 2 more.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free