Skip to content

Commit afd422d

Browse files
committed
add undetermined
1 parent 280ae67 commit afd422d

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed

packages/eslint-plugin-svelte/src/utils/svelte-context.ts

+9-14
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import { getFilename, getSourceCode } from './compat.js';
77
const isRunInBrowser = !fs.readFileSync;
88

99
export type SvelteContext = {
10-
svelteVersion: '3/4' | '5';
10+
svelteVersion: '3/4' | '5' | 'undetermined';
1111
svelteFileType: '.svelte' | '.svelte.[js|ts]' | null;
12-
runes: boolean;
12+
runes: boolean | 'undetermined';
1313
svelteKitVersion: '1-next' | '1' | '2' | null;
1414
svelteKitFileType:
1515
| '+page.svelte'
@@ -150,12 +150,15 @@ function getSvelteKitVersion(filePath: string): SvelteContext['svelteKitVersion'
150150
}
151151
}
152152

153-
function getSvelteVersion(compilerVersion: string): SvelteContext['svelteVersion'] {
153+
function getSvelteVersion(compilerVersion: string | undefined): SvelteContext['svelteVersion'] {
154+
if (compilerVersion == null) {
155+
return 'undetermined';
156+
}
154157
const version = parseInt(compilerVersion.split('.')[0], 10);
155158
if (version === 3 || version === 4) {
156159
return '3/4';
157160
}
158-
return '5';
161+
return String(version) as '5';
159162
}
160163

161164
/**
@@ -173,21 +176,13 @@ function getProjectRootDir(filePath: string): string | null {
173176
export function getSvelteContext(context: RuleContext): SvelteContext | null {
174177
const { parserServices } = getSourceCode(context);
175178
const { svelteParseContext } = parserServices;
176-
if (svelteParseContext === undefined) {
177-
return null;
178-
}
179-
180-
const { compilerVersion } = svelteParseContext;
181-
if (compilerVersion === undefined) {
182-
return null;
183-
}
184-
179+
const compilerVersion = svelteParseContext?.compilerVersion;
185180
const filePath = getFilename(context);
186181
const svelteKitContext = getSvelteKitContext(context);
187182

188183
return {
189184
svelteVersion: getSvelteVersion(compilerVersion),
190-
runes: svelteParseContext.runes === true,
185+
runes: svelteParseContext?.runes ?? 'undetermined',
191186
svelteFileType: getSvelteFileType(filePath),
192187
svelteKitVersion: svelteKitContext.svelteKitVersion,
193188
svelteKitFileType: svelteKitContext.svelteKitFileType

packages/eslint-plugin-svelte/tests/src/index.spec.ts

+20
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ const actualSvelte5: Parameters<typeof shouldRun>[0] = {
1717
svelteKitFileType: null
1818
};
1919

20+
const actualUndetermined: Parameters<typeof shouldRun>[0] = {
21+
svelteVersion: '5',
22+
svelteFileType: '.svelte',
23+
runes: 'undetermined',
24+
svelteKitVersion: null,
25+
svelteKitFileType: null
26+
};
27+
2028
const actualSvelte5Script: Parameters<typeof shouldRun>[0] = {
2129
svelteVersion: '5',
2230
svelteFileType: '.svelte.[js|ts]',
@@ -143,6 +151,18 @@ describe('shouldRun', () => {
143151
);
144152
});
145153

154+
it('undetermined true', () => {
155+
assert.strictEqual(
156+
shouldRun(actualUndetermined, [
157+
{
158+
svelteVersions: ['5'],
159+
runes: ['undetermined']
160+
}
161+
]),
162+
true
163+
);
164+
});
165+
146166
it('real - svelte3', () => {
147167
assert.strictEqual(
148168
shouldRun(actualSvelte3, [

0 commit comments

Comments
 (0)