diff --git a/.changeset/unlucky-keys-kneel.md b/.changeset/unlucky-keys-kneel.md new file mode 100644 index 00000000..41a02376 --- /dev/null +++ b/.changeset/unlucky-keys-kneel.md @@ -0,0 +1,5 @@ +--- +'vite-plugin-checker': patch +--- + +sync runTsc https://github.com/volarjs/volar.js/blob/630f31118d3986c00cc730eb83cd896709fd547e/packages/typescript/lib/quickstart/runTsc.ts diff --git a/packages/vite-plugin-checker/src/checkers/vueTsc/prepareVueTsc.ts b/packages/vite-plugin-checker/src/checkers/vueTsc/prepareVueTsc.ts index e169022e..bb9c6ede 100644 --- a/packages/vite-plugin-checker/src/checkers/vueTsc/prepareVueTsc.ts +++ b/packages/vite-plugin-checker/src/checkers/vueTsc/prepareVueTsc.ts @@ -14,7 +14,7 @@ const vueTscDir = dirname(_require.resolve('vue-tsc/package.json')) const proxyApiPath = _require.resolve('@volar/typescript/lib/node/proxyCreateProgram', { paths: [vueTscDir], }) -const runExtensions = ['.vue'] +const extraSupportedExtensions = ['.vue'] export async function prepareVueTsc() { // 1. copy typescript to folder @@ -61,12 +61,28 @@ export async function prepareVueTsc() { async function overrideTscJs(tscJsPath: string) { const languagePluginsFile = path.resolve(_dirname, 'languagePlugins.cjs') let tsc = await readFile(tscJsPath, 'utf8') - // #region copied from https://github.com/volarjs/volar.js/blob/ae7f2e01caa08f64cbc687c80841dab2a0f7c426/packages/typescript/lib/quickstart/runTsc.ts + // #region copied from https://github.com/volarjs/volar.js/blob/630f31118d3986c00cc730eb83cd896709fd547e/packages/typescript/lib/quickstart/runTsc.ts // add *.vue files to allow extensions - const extsText = runExtensions.map((ext) => `"${ext}"`).join(', ') - tsc = replace(tsc, /supportedTSExtensions = .*(?=;)/, (s) => `${s}.concat([[${extsText}]])`) - tsc = replace(tsc, /supportedJSExtensions = .*(?=;)/, (s) => `${s}.concat([[${extsText}]])`) - tsc = replace(tsc, /allSupportedExtensions = .*(?=;)/, (s) => `${s}.concat([[${extsText}]])`) + const extsText = extraSupportedExtensions.map((ext) => `"${ext}"`).join(', ') + // tsc = replace(tsc, /supportedTSExtensions = .*(?=;)/, (s) => `${s}.concat([[${extsText}]])`) + tsc = replace( + tsc, + /supportedTSExtensions = .*(?=;)/, + // biome-ignore lint/style/useTemplate: + (s) => s + `.map((group, i) => i === 0 ? group.splice(0, 0, ${extsText}) && group : group)` + ) + tsc = replace( + tsc, + /supportedJSExtensions = .*(?=;)/, + // biome-ignore lint/style/useTemplate: + (s) => s + `.map((group, i) => i === 0 ? group.splice(0, 0, ${extsText}) && group : group)` + ) + tsc = replace( + tsc, + /allSupportedExtensions = .*(?=;)/, + // biome-ignore lint/style/useTemplate: + (s) => s + `.map((group, i) => i === 0 ? group.splice(0, 0, ${extsText}) && group : group)` + ) // proxy createProgram tsc = replace(