Skip to content

Commit 1358d89

Browse files
authored
fix: handle <script module> in valid-prop-names-in-kit-pages rule (#1100)
1 parent acf74b2 commit 1358d89

File tree

14 files changed

+74
-6
lines changed

14 files changed

+74
-6
lines changed

Diff for: .changeset/vast-clouds-accept.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'eslint-plugin-svelte': patch
3+
---
4+
5+
fix: handle `<script module>` in `valid-prop-names-in-kit-pages` rule

Diff for: packages/eslint-plugin-svelte/src/rules/valid-prop-names-in-kit-pages.ts

+18-6
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,23 @@ function checkProp(
2828
}
2929
}
3030

31+
function isModuleScript(node: AST.SvelteAttribute) {
32+
// <script context="module">
33+
if (
34+
node.key.name === 'context' &&
35+
node.value.some((v) => v.type === 'SvelteLiteral' && v.value === 'module')
36+
) {
37+
return true;
38+
}
39+
40+
// <script module>
41+
if (node.key.name === 'module' && node.value.length === 0) {
42+
return true;
43+
}
44+
45+
return false;
46+
}
47+
3148
export default createRule('valid-prop-names-in-kit-pages', {
3249
meta: {
3350
docs: {
@@ -54,12 +71,7 @@ export default createRule('valid-prop-names-in-kit-pages', {
5471
// <script>
5572
'Program > SvelteScriptElement > SvelteStartTag': (node: AST.SvelteStartTag) => {
5673
// except for <script context="module">
57-
isScript = !node.attributes.some(
58-
(a) =>
59-
a.type === 'SvelteAttribute' &&
60-
a.key.name === 'context' &&
61-
a.value.some((v) => v.type === 'SvelteLiteral' && v.value === 'module')
62-
);
74+
isScript = !node.attributes.some((a) => a.type === 'SvelteAttribute' && isModuleScript(a));
6375
},
6476

6577
// </script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<script module>
2+
export let data;
3+
export let errors;
4+
export let foo;
5+
export let bar;
6+
</script>
7+
8+
{data}, {errors}, {foo}, {bar}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<script module>
2+
export const { data, errors } = { data: {}, errors: {} };
3+
</script>
4+
5+
{data}, {errors}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"settings": {
3+
"svelte": {
4+
"kit": {
5+
"files": {
6+
"routes": "tests/fixtures"
7+
}
8+
}
9+
}
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"settings": {
3+
"svelte": {
4+
"kit": {
5+
"files": {
6+
"routes": "tests/fixtures"
7+
}
8+
}
9+
}
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<script module>
2+
export const { data2: data, errors2: errors } = { data2: {}, errors2: {} };
3+
</script>
4+
5+
{data}, {errors}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"settings": {
3+
"svelte": {
4+
"kit": {
5+
"files": {
6+
"routes": "tests/fixtures"
7+
}
8+
}
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)