@@ -7,9 +7,9 @@ import { getFilename, getSourceCode } from './compat.js';
7
7
const isRunInBrowser = ! fs . readFileSync ;
8
8
9
9
export type SvelteContext = {
10
- svelteVersion : '3/4' | '5' ;
10
+ svelteVersion : '3/4' | '5' | 'undetermined' ;
11
11
svelteFileType : '.svelte' | '.svelte.[js|ts]' | null ;
12
- runes : boolean ;
12
+ runes : boolean | 'undetermined' ;
13
13
svelteKitVersion : '1-next' | '1' | '2' | null ;
14
14
svelteKitFileType :
15
15
| '+page.svelte'
@@ -150,12 +150,15 @@ function getSvelteKitVersion(filePath: string): SvelteContext['svelteKitVersion'
150
150
}
151
151
}
152
152
153
- function getSvelteVersion ( compilerVersion : string ) : SvelteContext [ 'svelteVersion' ] {
153
+ function getSvelteVersion ( compilerVersion : string | undefined ) : SvelteContext [ 'svelteVersion' ] {
154
+ if ( compilerVersion == null ) {
155
+ return 'undetermined' ;
156
+ }
154
157
const version = parseInt ( compilerVersion . split ( '.' ) [ 0 ] , 10 ) ;
155
158
if ( version === 3 || version === 4 ) {
156
159
return '3/4' ;
157
160
}
158
- return '5' ;
161
+ return String ( version ) as '5' ;
159
162
}
160
163
161
164
/**
@@ -173,21 +176,13 @@ function getProjectRootDir(filePath: string): string | null {
173
176
export function getSvelteContext ( context : RuleContext ) : SvelteContext | null {
174
177
const { parserServices } = getSourceCode ( context ) ;
175
178
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 ;
185
180
const filePath = getFilename ( context ) ;
186
181
const svelteKitContext = getSvelteKitContext ( context ) ;
187
182
188
183
return {
189
184
svelteVersion : getSvelteVersion ( compilerVersion ) ,
190
- runes : svelteParseContext . runes === true ,
185
+ runes : svelteParseContext ? .runes ?? 'undetermined' ,
191
186
svelteFileType : getSvelteFileType ( filePath ) ,
192
187
svelteKitVersion : svelteKitContext . svelteKitVersion ,
193
188
svelteKitFileType : svelteKitContext . svelteKitFileType
0 commit comments