Skip to content

Commit fca148a

Browse files
committed
enhance
1 parent 0603998 commit fca148a

14 files changed

+73
-9
lines changed

docs/rules/no-svelte-internal.md

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ This rule reports the use of the deprecated API `svelte/internal` and `svelte/in
2828
// ✗ BAD
2929
import { get_current_component } from 'svelte/internal';
3030
import { inspect } from 'svelte/internal/client';
31+
32+
export * from 'svelte/internal';
33+
export * from 'svelte/internal/client';
3134
</script>
3235
```
3336

src/rules/no-svelte-internal.ts

+33-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { createRule } from '../utils';
2+
import type { TSESTree } from '@typescript-eslint/types';
23

34
export default createRule('no-svelte-internal', {
45
meta: {
@@ -11,21 +12,46 @@ export default createRule('no-svelte-internal', {
1112
},
1213
schema: [],
1314
messages: {
14-
unexpected: 'Importing from svelte/internal is prohibited. This will be removed in Svelte 6.'
15+
unexpected: 'Using svelte/internal is prohibited. This will be removed in Svelte 6.'
1516
},
1617
type: 'problem'
1718
},
1819
create(context) {
20+
function report(node: TSESTree.Node) {
21+
context.report({
22+
node,
23+
messageId: 'unexpected'
24+
});
25+
}
26+
27+
function isSvelteInternal(value: string) {
28+
return value === 'svelte/internal' || value.startsWith('svelte/internal/');
29+
}
30+
1931
return {
2032
ImportDeclaration(node) {
33+
if (node.source && isSvelteInternal(node.source.value)) {
34+
report(node);
35+
}
36+
},
37+
ImportExpression(node) {
2138
if (
22-
node.source.value === 'svelte/internal' ||
23-
node.source.value.startsWith('svelte/internal/')
39+
node.source &&
40+
node.source.type === 'Literal' &&
41+
typeof node.source.value === 'string' &&
42+
isSvelteInternal(node.source.value)
2443
) {
25-
context.report({
26-
node,
27-
messageId: 'unexpected'
28-
});
44+
report(node);
45+
}
46+
},
47+
ExportNamedDeclaration(node) {
48+
if (node.source && isSvelteInternal(node.source.value)) {
49+
report(node);
50+
}
51+
},
52+
ExportAllDeclaration(node) {
53+
if (node.source && isSvelteInternal(node.source.value)) {
54+
report(node);
2955
}
3056
}
3157
};
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
- message: Importing from svelte/internal is prohibited. This will be removed in Svelte 6.
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
22
line: 3
33
column: 2
44
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
- message: Importing from svelte/internal is prohibited. This will be removed in Svelte 6.
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
22
line: 2
33
column: 2
44
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
2+
line: 2
3+
column: 2
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script>
2+
import * as svelteInternal from 'svelte/internal';
3+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
2+
line: 2
3+
column: 2
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script>
2+
export * from 'svelte/internal';
3+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
2+
line: 2
3+
column: 2
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script>
2+
export * from 'svelte/internal/client';
3+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
2+
line: 2
3+
column: 2
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script>
2+
export { inspect } from 'svelte/internal/client';
3+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
2+
line: 2
3+
column: 2
4+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<script>
2+
import('svelte/internal');
3+
</script>

0 commit comments

Comments
 (0)