diff --git a/.changeset/tricky-papers-see.md b/.changeset/tricky-papers-see.md new file mode 100644 index 000000000..7a7e83589 --- /dev/null +++ b/.changeset/tricky-papers-see.md @@ -0,0 +1,6 @@ +--- +'svelte-language-server': patch +'svelte-check': patch +--- + +fix: typescript 6.0 compatibility diff --git a/packages/language-server/src/plugins/typescript/serviceCache.ts b/packages/language-server/src/plugins/typescript/serviceCache.ts index d91b05b32..f34749d89 100644 --- a/packages/language-server/src/plugins/typescript/serviceCache.ts +++ b/packages/language-server/src/plugins/typescript/serviceCache.ts @@ -63,15 +63,10 @@ export function createProject( currentDirectory: string; } ) { - const version = ts.version.split('.'); - const major = parseInt(version[0]); - const minor = parseInt(version[1]); - - if (major < 5) { + const factory = getProjectFactory(); + if (!factory) { return undefined; } - - const factory = minor < 3 ? createProject50 : minor < 5 ? createProject53 : createProject55; const project = factory(ts, host, createLanguageService, options); const proxyMethods: (keyof typeof project)[] = [ @@ -94,3 +89,25 @@ export function createProject( return project; } + +function getProjectFactory() { + const version = ts.version.split('.'); + const major = parseInt(version[0]); + const minor = parseInt(version[1]); + + if (major < 5) { + return undefined; + } + + if (major === 5) { + if (minor < 3) { + return createProject50; + } + + if (minor < 5) { + return createProject53; + } + } + + return createProject55; +}