Skip to content

Commit 168f920

Browse files
authored
feat: add support for $inspect and $effect.root (#446)
1 parent 50dd335 commit 168f920

File tree

81 files changed

+14785
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+14785
-3
lines changed

.changeset/twenty-cats-shave.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"svelte-eslint-parser": minor
3+
---
4+
5+
feat: add support for `$inspect` and `$effect.root`

explorer-v2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"eslint-scope": "^7.2.2",
1919
"esquery": "^1.5.0",
2020
"pako": "^2.1.0",
21-
"svelte": "^5.0.0-next.10",
21+
"svelte": "^5.0.0-next.17",
2222
"svelte-eslint-parser": "link:..",
2323
"tslib": "^2.6.2"
2424
},

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"version:ci": "env-cmd -e version-ci pnpm run build:meta && changeset version"
4747
},
4848
"peerDependencies": {
49-
"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.10"
49+
"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.17"
5050
},
5151
"peerDependenciesMeta": {
5252
"svelte": {
@@ -104,7 +104,7 @@
104104
"prettier-plugin-svelte": "^3.0.0",
105105
"rimraf": "^5.0.1",
106106
"semver": "^7.5.1",
107-
"svelte": "^5.0.0-next.10",
107+
"svelte": "^5.0.0-next.17",
108108
"svelte2tsx": "^0.6.25",
109109
"typescript": "~5.1.3",
110110
"typescript-eslint-parser-for-extra-files": "^0.5.0"

src/parser/globals.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export const globalsForRunes = [
66
"$derived",
77
"$effect",
88
"$props",
9+
"$inspect",
910
] as const;
1011
const globalsForSvelte5 = [...globalsForSvelte4, ...globalsForRunes];
1112
export const globals = svelteVersion.gte(5)

src/parser/typescript/analyze/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ function analyzeDollarDollarVariables(
256256
case "$derived":
257257
case "$effect":
258258
case "$props":
259+
case "$inspect":
259260
// Processed by `analyzeRuneVariables`.
260261
break;
261262
default: {
@@ -332,13 +333,20 @@ function analyzeRuneVariables(
332333
appendDeclareNamespaceVirtualScripts(globalName, [
333334
"export function pre(fn: () => void | (() => void)): void;",
334335
"export function active(): boolean;",
336+
"export function root(fn: () => void | (() => void)): () => void;",
335337
]);
336338
break;
337339
}
338340
case "$props": {
339341
appendDeclareFunctionVirtualScripts(globalName, ["<T>(): T"]);
340342
break;
341343
}
344+
case "$inspect": {
345+
appendDeclareFunctionVirtualScripts(globalName, [
346+
`<T>(value: T, callback?: (value: T, type: 'init' | 'update') => void): void`,
347+
]);
348+
break;
349+
}
342350
default: {
343351
const _: never = globalName;
344352
throw Error(`Unknown global: ${_}`);

tests/fixtures/parser/ast/$$slots-scope-output-svelte5.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@
6565
"identifiers": [],
6666
"defs": [],
6767
"references": []
68+
},
69+
{
70+
"name": "$inspect",
71+
"identifiers": [],
72+
"defs": [],
73+
"references": []
6874
}
6975
]
7076
}

tests/fixtures/parser/ast/docs/template-syntax/02-attributes-and-props/10-scope-output-svelte5.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@
6565
"identifiers": [],
6666
"defs": [],
6767
"references": []
68+
},
69+
{
70+
"name": "$inspect",
71+
"identifiers": [],
72+
"defs": [],
73+
"references": []
6874
}
6975
]
7076
}

tests/fixtures/parser/ast/docs/template-syntax/02-attributes-and-props/11-scope-output-svelte5.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@
6565
"identifiers": [],
6666
"defs": [],
6767
"references": []
68+
},
69+
{
70+
"name": "$inspect",
71+
"identifiers": [],
72+
"defs": [],
73+
"references": []
6874
}
6975
]
7076
}

tests/fixtures/parser/ast/docs/template-syntax/13-slot/02-$$slots/01-scope-output-svelte5.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@
6565
"identifiers": [],
6666
"defs": [],
6767
"references": []
68+
},
69+
{
70+
"name": "$inspect",
71+
"identifiers": [],
72+
"defs": [],
73+
"references": []
6874
}
6975
]
7076
}

tests/fixtures/parser/ast/svelte5/docs/fine-grained-reactivity/example01-scope-output.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@
112112
"identifiers": [],
113113
"defs": [],
114114
"references": []
115+
},
116+
{
117+
"name": "$inspect",
118+
"identifiers": [],
119+
"defs": [],
120+
"references": []
115121
}
116122
],
117123
"references": [],

0 commit comments

Comments
 (0)