css_visitors.NestingSelector() — svelte Function Reference
Architecture documentation for the css_visitors.NestingSelector() function in css-analyze.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD e4ee3a71_02f5_6194_1231_b157ebbed4c9["css_visitors.NestingSelector()"] ca006f7f_f554_f529_8a19_abaaa45dda8d["css-analyze.js"] e4ee3a71_02f5_6194_1231_b157ebbed4c9 -->|defined in| ca006f7f_f554_f529_8a19_abaaa45dda8d 57aa9765_0fe8_7df3_d176_f4753f7d7c97["css_nesting_selector_invalid_placement()"] e4ee3a71_02f5_6194_1231_b157ebbed4c9 -->|calls| 57aa9765_0fe8_7df3_d176_f4753f7d7c97 f2097f76_79f5_e830_d0c1_53a0e3cec450["css_global_block_invalid_modifier_start()"] e4ee3a71_02f5_6194_1231_b157ebbed4c9 -->|calls| f2097f76_79f5_e830_d0c1_53a0e3cec450 style e4ee3a71_02f5_6194_1231_b157ebbed4c9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js lines 287–315
NestingSelector(node, context) {
const rule = /** @type {AST.CSS.Rule} */ (context.state.rule);
const parent_rule = rule.metadata.parent_rule;
if (!parent_rule) {
// https://developer.mozilla.org/en-US/docs/Web/CSS/Nesting_selector#using_outside_nested_rule
const children = rule.prelude.children;
const selectors = children[0].children[0].selectors;
if (
children.length > 1 ||
selectors.length > 1 ||
selectors[0].type !== 'PseudoClassSelector' ||
selectors[0].name !== 'global' ||
selectors[0].args?.children[0]?.children[0].selectors[0] !== node
) {
e.css_nesting_selector_invalid_placement(node);
}
} else if (
// :global { &.foo { ... } } is invalid
parent_rule.metadata.is_global_block &&
!parent_rule.metadata.parent_rule &&
parent_rule.prelude.children[0].children.length === 1 &&
parent_rule.prelude.children[0].children[0].selectors.length === 1
) {
e.css_global_block_invalid_modifier_start(node);
}
context.next();
}
Domain
Subdomains
Source
Frequently Asked Questions
What does css_visitors.NestingSelector() do?
css_visitors.NestingSelector() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js.
Where is css_visitors.NestingSelector() defined?
css_visitors.NestingSelector() is defined in packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js at line 287.
What does css_visitors.NestingSelector() call?
css_visitors.NestingSelector() calls 2 function(s): css_global_block_invalid_modifier_start, css_nesting_selector_invalid_placement.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free