Skip to content

Commit e185e1a

Browse files
committed
Css -> AST.CSS
1 parent 3b42438 commit e185e1a

File tree

13 files changed

+107
-104
lines changed

13 files changed

+107
-104
lines changed

packages/svelte/src/compiler/phases/1-parse/read/style.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/** @import { AST, Css } from '#compiler' */
1+
/** @import { AST } from '#compiler' */
22
/** @import { Parser } from '../index.js' */
33
import * as e from '../../../errors.js';
44

@@ -19,7 +19,7 @@ const REGEX_HTML_COMMENT_CLOSE = /-->/;
1919
* @param {Parser} parser
2020
* @param {number} start
2121
* @param {Array<AST.Attribute | AST.SpreadAttribute | AST.Directive>} attributes
22-
* @returns {Css.StyleSheet}
22+
* @returns {AST.CSS.StyleSheet}
2323
*/
2424
export default function read_style(parser, start, attributes) {
2525
const content_start = parser.index;
@@ -49,7 +49,7 @@ export default function read_style(parser, start, attributes) {
4949
* @returns {any[]}
5050
*/
5151
function read_body(parser, close) {
52-
/** @type {Array<Css.Rule | Css.Atrule>} */
52+
/** @type {Array<AST.CSS.Rule | AST.CSS.Atrule>} */
5353
const children = [];
5454

5555
while (parser.index < parser.template.length) {
@@ -71,7 +71,7 @@ function read_body(parser, close) {
7171

7272
/**
7373
* @param {Parser} parser
74-
* @returns {Css.Atrule}
74+
* @returns {AST.CSS.Atrule}
7575
*/
7676
function read_at_rule(parser) {
7777
const start = parser.index;
@@ -81,7 +81,7 @@ function read_at_rule(parser) {
8181

8282
const prelude = read_value(parser);
8383

84-
/** @type {Css.Block | null} */
84+
/** @type {AST.CSS.Block | null} */
8585
let block = null;
8686

8787
if (parser.match('{')) {
@@ -104,7 +104,7 @@ function read_at_rule(parser) {
104104

105105
/**
106106
* @param {Parser} parser
107-
* @returns {Css.Rule}
107+
* @returns {AST.CSS.Rule}
108108
*/
109109
function read_rule(parser) {
110110
const start = parser.index;
@@ -126,10 +126,10 @@ function read_rule(parser) {
126126
/**
127127
* @param {Parser} parser
128128
* @param {boolean} [inside_pseudo_class]
129-
* @returns {Css.SelectorList}
129+
* @returns {AST.CSS.SelectorList}
130130
*/
131131
function read_selector_list(parser, inside_pseudo_class = false) {
132-
/** @type {Css.ComplexSelector[]} */
132+
/** @type {AST.CSS.ComplexSelector[]} */
133133
const children = [];
134134

135135
allow_comment_or_whitespace(parser);
@@ -162,18 +162,18 @@ function read_selector_list(parser, inside_pseudo_class = false) {
162162
/**
163163
* @param {Parser} parser
164164
* @param {boolean} [inside_pseudo_class]
165-
* @returns {Css.ComplexSelector}
165+
* @returns {AST.CSS.ComplexSelector}
166166
*/
167167
function read_selector(parser, inside_pseudo_class = false) {
168168
const list_start = parser.index;
169169

170-
/** @type {Css.RelativeSelector[]} */
170+
/** @type {AST.CSS.RelativeSelector[]} */
171171
const children = [];
172172

173173
/**
174-
* @param {Css.Combinator | null} combinator
174+
* @param {AST.CSS.Combinator | null} combinator
175175
* @param {number} start
176-
* @returns {Css.RelativeSelector}
176+
* @returns {AST.CSS.RelativeSelector}
177177
*/
178178
function create_selector(combinator, start) {
179179
return {
@@ -190,7 +190,7 @@ function read_selector(parser, inside_pseudo_class = false) {
190190
};
191191
}
192192

193-
/** @type {Css.RelativeSelector} */
193+
/** @type {AST.CSS.RelativeSelector} */
194194
let relative_selector = create_selector(null, parser.index);
195195

196196
while (parser.index < parser.template.length) {
@@ -247,7 +247,7 @@ function read_selector(parser, inside_pseudo_class = false) {
247247
} else if (parser.eat(':')) {
248248
const name = read_identifier(parser);
249249

250-
/** @type {null | Css.SelectorList} */
250+
/** @type {null | AST.CSS.SelectorList} */
251251
let args = null;
252252

253253
if (parser.eat('(')) {
@@ -372,7 +372,7 @@ function read_selector(parser, inside_pseudo_class = false) {
372372

373373
/**
374374
* @param {Parser} parser
375-
* @returns {Css.Combinator | null}
375+
* @returns {AST.CSS.Combinator | null}
376376
*/
377377
function read_combinator(parser) {
378378
const start = parser.index;
@@ -407,14 +407,14 @@ function read_combinator(parser) {
407407

408408
/**
409409
* @param {Parser} parser
410-
* @returns {Css.Block}
410+
* @returns {AST.CSS.Block}
411411
*/
412412
function read_block(parser) {
413413
const start = parser.index;
414414

415415
parser.eat('{', true);
416416

417-
/** @type {Array<Css.Declaration | Css.Rule | Css.Atrule>} */
417+
/** @type {Array<AST.CSS.Declaration | AST.CSS.Rule | AST.CSS.Atrule>} */
418418
const children = [];
419419

420420
while (parser.index < parser.template.length) {
@@ -441,7 +441,7 @@ function read_block(parser) {
441441
* Reads a declaration, rule or at-rule
442442
*
443443
* @param {Parser} parser
444-
* @returns {Css.Declaration | Css.Rule | Css.Atrule}
444+
* @returns {AST.CSS.Declaration | AST.CSS.Rule | AST.CSS.Atrule}
445445
*/
446446
function read_block_item(parser) {
447447
if (parser.match('@')) {
@@ -460,7 +460,7 @@ function read_block_item(parser) {
460460

461461
/**
462462
* @param {Parser} parser
463-
* @returns {Css.Declaration}
463+
* @returns {AST.CSS.Declaration}
464464
*/
465465
function read_declaration(parser) {
466466
const start = parser.index;

packages/svelte/src/compiler/phases/2-analyze/css/css-analyze.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/** @import { ComponentAnalysis } from '../../types.js' */
2-
/** @import { Css } from '#compiler' */
2+
/** @import { AST } from '#compiler' */
33
/** @import { Visitors } from 'zimmerframe' */
44
import { walk } from 'zimmerframe';
55
import * as e from '../../../errors.js';
@@ -8,17 +8,17 @@ import { is_global, is_unscoped_pseudo_class } from './utils.js';
88

99
/**
1010
* @typedef {Visitors<
11-
* Css.Node,
11+
* AST.CSS.Node,
1212
* {
1313
* keyframes: string[];
14-
* rule: Css.Rule | null;
14+
* rule: AST.CSS.Rule | null;
1515
* }
1616
* >} CssVisitors
1717
*/
1818

1919
/**
2020
* True if is `:global`
21-
* @param {Css.SimpleSelector} simple_selector
21+
* @param {AST.CSS.SimpleSelector} simple_selector
2222
*/
2323
function is_global_block_selector(simple_selector) {
2424
return (
@@ -112,7 +112,7 @@ const css_visitors = {
112112
}
113113
},
114114
RelativeSelector(node, context) {
115-
const parent = /** @type {Css.ComplexSelector} */ (context.path.at(-1));
115+
const parent = /** @type {AST.CSS.ComplexSelector} */ (context.path.at(-1));
116116

117117
if (
118118
node.combinator != null &&
@@ -149,7 +149,7 @@ const css_visitors = {
149149
if (node.metadata.is_global_like || node.metadata.is_global) {
150150
// So that nested selectors like `:root:not(.x)` are not marked as unused
151151
for (const child of node.selectors) {
152-
walk(/** @type {Css.Node} */ (child), null, {
152+
walk(/** @type {AST.CSS.Node} */ (child), null, {
153153
ComplexSelector(node, context) {
154154
node.metadata.used = true;
155155
context.next();
@@ -177,7 +177,7 @@ const css_visitors = {
177177
if (idx !== -1) {
178178
is_global_block = true;
179179
for (let i = idx + 1; i < child.selectors.length; i++) {
180-
walk(/** @type {Css.Node} */ (child.selectors[i]), null, {
180+
walk(/** @type {AST.CSS.Node} */ (child.selectors[i]), null, {
181181
ComplexSelector(node) {
182182
node.metadata.used = true;
183183
}
@@ -240,7 +240,7 @@ const css_visitors = {
240240
});
241241
},
242242
NestingSelector(node, context) {
243-
const rule = /** @type {Css.Rule} */ (context.state.rule);
243+
const rule = /** @type {AST.CSS.Rule} */ (context.state.rule);
244244
const parent_rule = rule.metadata.parent_rule;
245245

246246
if (!parent_rule) {
@@ -271,7 +271,7 @@ const css_visitors = {
271271
};
272272

273273
/**
274-
* @param {Css.StyleSheet} stylesheet
274+
* @param {AST.CSS.StyleSheet} stylesheet
275275
* @param {ComponentAnalysis} analysis
276276
*/
277277
export function analyze_css(stylesheet, analysis) {

packages/svelte/src/compiler/phases/2-analyze/css/css-prune.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ const whitelist_attribute_selector = new Map([
1414
['dialog', ['open']]
1515
]);
1616

17-
/** @type {Compiler.Css.Combinator} */
17+
/** @type {Compiler.AST.CSS.Combinator} */
1818
const descendant_combinator = {
1919
type: 'Combinator',
2020
name: ' ',
2121
start: -1,
2222
end: -1
2323
};
2424

25-
/** @type {Compiler.Css.RelativeSelector} */
25+
/** @type {Compiler.AST.CSS.RelativeSelector} */
2626
const nesting_selector = {
2727
type: 'RelativeSelector',
2828
start: -1,
@@ -51,11 +51,11 @@ const seen = new Set();
5151

5252
/**
5353
*
54-
* @param {Compiler.Css.StyleSheet} stylesheet
54+
* @param {Compiler.AST.CSS.StyleSheet} stylesheet
5555
* @param {Compiler.AST.RegularElement | Compiler.AST.SvelteElement} element
5656
*/
5757
export function prune(stylesheet, element) {
58-
walk(/** @type {Compiler.Css.Node} */ (stylesheet), null, {
58+
walk(/** @type {Compiler.AST.CSS.Node} */ (stylesheet), null, {
5959
Rule(node, context) {
6060
if (node.metadata.is_global_block) {
6161
context.visit(node.prelude);
@@ -69,7 +69,7 @@ export function prune(stylesheet, element) {
6969
seen.clear();
7070

7171
if (
72-
apply_selector(selectors, /** @type {Compiler.Css.Rule} */ (node.metadata.rule), element)
72+
apply_selector(selectors, /** @type {Compiler.AST.CSS.Rule} */ (node.metadata.rule), element)
7373
) {
7474
node.metadata.used = true;
7575
}
@@ -86,7 +86,7 @@ export function prune(stylesheet, element) {
8686
* Also searches them for any existing `&` selectors and adds one if none are found.
8787
* This ensures we traverse up to the parent rule when the inner selectors match and we're
8888
* trying to see if the parent rule also matches.
89-
* @param {Compiler.Css.ComplexSelector} node
89+
* @param {Compiler.AST.CSS.ComplexSelector} node
9090
*/
9191
function get_relative_selectors(node) {
9292
const selectors = truncate(node);
@@ -124,7 +124,7 @@ function get_relative_selectors(node) {
124124

125125
/**
126126
* Discard trailing `:global(...)` selectors, these are unused for scoping purposes
127-
* @param {Compiler.Css.ComplexSelector} node
127+
* @param {Compiler.AST.CSS.ComplexSelector} node
128128
*/
129129
function truncate(node) {
130130
const i = node.children.findLastIndex(({ metadata, selectors }) => {
@@ -152,8 +152,8 @@ function truncate(node) {
152152
}
153153

154154
/**
155-
* @param {Compiler.Css.RelativeSelector[]} relative_selectors
156-
* @param {Compiler.Css.Rule} rule
155+
* @param {Compiler.AST.CSS.RelativeSelector[]} relative_selectors
156+
* @param {Compiler.AST.CSS.Rule} rule
157157
* @param {Compiler.AST.RegularElement | Compiler.AST.SvelteElement} element
158158
* @returns {boolean}
159159
*/
@@ -178,9 +178,9 @@ function apply_selector(relative_selectors, rule, element) {
178178
}
179179

180180
/**
181-
* @param {Compiler.Css.RelativeSelector} relative_selector
182-
* @param {Compiler.Css.RelativeSelector[]} parent_selectors
183-
* @param {Compiler.Css.Rule} rule
181+
* @param {Compiler.AST.CSS.RelativeSelector} relative_selector
182+
* @param {Compiler.AST.CSS.RelativeSelector[]} parent_selectors
183+
* @param {Compiler.AST.CSS.Rule} rule
184184
* @param {Compiler.AST.RegularElement | Compiler.AST.SvelteElement | Compiler.AST.RenderTag | Compiler.AST.Component | Compiler.AST.SvelteComponent | Compiler.AST.SvelteSelf} node
185185
* @returns {boolean}
186186
*/
@@ -263,16 +263,16 @@ function apply_combinator(relative_selector, parent_selectors, rule, node) {
263263
* it's a `:global(...)` or unscopeable selector, or
264264
* is an `:is(...)` or `:where(...)` selector that contains
265265
* a global selector
266-
* @param {Compiler.Css.RelativeSelector} selector
267-
* @param {Compiler.Css.Rule} rule
266+
* @param {Compiler.AST.CSS.RelativeSelector} selector
267+
* @param {Compiler.AST.CSS.Rule} rule
268268
*/
269269
function is_global(selector, rule) {
270270
if (selector.metadata.is_global || selector.metadata.is_global_like) {
271271
return true;
272272
}
273273

274274
for (const s of selector.selectors) {
275-
/** @type {Compiler.Css.SelectorList | null} */
275+
/** @type {Compiler.AST.CSS.SelectorList | null} */
276276
let selector_list = null;
277277
let owner = rule;
278278

@@ -283,7 +283,7 @@ function is_global(selector, rule) {
283283
}
284284

285285
if (s.type === 'NestingSelector') {
286-
owner = /** @type {Compiler.Css.Rule} */ (rule.metadata.parent_rule);
286+
owner = /** @type {Compiler.AST.CSS.Rule} */ (rule.metadata.parent_rule);
287287
selector_list = owner.prelude;
288288
}
289289

@@ -306,8 +306,8 @@ const regex_backslash_and_following_character = /\\(.)/g;
306306
/**
307307
* Ensure that `element` satisfies each simple selector in `relative_selector`
308308
*
309-
* @param {Compiler.Css.RelativeSelector} relative_selector
310-
* @param {Compiler.Css.Rule} rule
309+
* @param {Compiler.AST.CSS.RelativeSelector} relative_selector
310+
* @param {Compiler.AST.CSS.Rule} rule
311311
* @param {Compiler.AST.RegularElement | Compiler.AST.SvelteElement} element
312312
* @returns {boolean}
313313
*/
@@ -389,7 +389,7 @@ function relative_selector_might_apply_to_node(relative_selector, rule, element)
389389
// upwards and back-to-front, we need to first check the selectors inside :has(...), then check the rest of the
390390
// selector in a way that is similar to ancestor matching. In a sense, we're treating `.x:has(.y)` as `.x .y`.
391391
for (const has_selector of has_selectors) {
392-
const complex_selectors = /** @type {Compiler.Css.SelectorList} */ (has_selector.args)
392+
const complex_selectors = /** @type {Compiler.AST.CSS.SelectorList} */ (has_selector.args)
393393
.children;
394394
let matched = false;
395395

@@ -578,7 +578,7 @@ function relative_selector_might_apply_to_node(relative_selector, rule, element)
578578
case 'NestingSelector': {
579579
let matched = false;
580580

581-
const parent = /** @type {Compiler.Css.Rule} */ (rule.metadata.parent_rule);
581+
const parent = /** @type {Compiler.AST.CSS.Rule} */ (rule.metadata.parent_rule);
582582

583583
for (const complex_selector of parent.prelude.children) {
584584
if (

0 commit comments

Comments
 (0)