Skip to content

Commit aaab3f3

Browse files
committed
fix backwards compatibility
1 parent 6a84b9f commit aaab3f3

File tree

4 files changed

+12
-21
lines changed

4 files changed

+12
-21
lines changed

packages/language-core/lib/codegen/script/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ export function* generateScript(options: ScriptCodegenOptions): Generator<Code,
5656
const ctx = createScriptCodegenContext(options);
5757

5858
if (options.vueCompilerOptions.__setupedGlobalTypes) {
59-
const { absolutePath } = options.vueCompilerOptions.__setupedGlobalTypes;
60-
if (absolutePath) {
61-
yield `/// <reference types="${absolutePath}" />${newLine}`;
59+
const globalTypes = options.vueCompilerOptions.__setupedGlobalTypes;
60+
if (typeof globalTypes === 'object') {
61+
yield `/// <reference types="${globalTypes.absolutePath}" />${newLine}`;
6262
}
6363
else {
6464
yield `/// <reference types=".vue-global-types/${options.vueCompilerOptions.lib}_${options.vueCompilerOptions.target}_${options.vueCompilerOptions.strictTemplates}.d.ts" />${newLine}`;

packages/language-core/lib/types.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ export interface VueCompilerOptions {
5555
experimentalModelPropName: Record<string, Record<string, boolean | Record<string, string> | Record<string, string>[]>>;
5656

5757
// internal
58-
__setupedGlobalTypes?: {
59-
absolutePath?: string;
58+
__setupedGlobalTypes?: true | {
59+
absolutePath: string;
6060
};
6161
__test?: boolean;
6262
}

packages/language-core/lib/utils/ts.ts

+6-12
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,10 @@ export function createParsedCommandLineByJson(
3636

3737
const resolvedVueOptions = resolveVueCompilerOptions(vueOptions);
3838
if (skipGlobalTypesSetup) {
39-
resolvedVueOptions.__setupedGlobalTypes = {};
39+
resolvedVueOptions.__setupedGlobalTypes = true;
4040
}
4141
else {
42-
const absolutePath = setupGlobalTypes(rootDir, resolvedVueOptions, parseConfigHost);
43-
if (absolutePath) {
44-
resolvedVueOptions.__setupedGlobalTypes = { absolutePath };
45-
}
42+
resolvedVueOptions.__setupedGlobalTypes = setupGlobalTypes(rootDir, resolvedVueOptions, parseConfigHost);
4643
}
4744
const parsed = ts.parseJsonConfigFileContent(
4845
json,
@@ -94,13 +91,10 @@ export function createParsedCommandLine(
9491

9592
const resolvedVueOptions = resolveVueCompilerOptions(vueOptions);
9693
if (skipGlobalTypesSetup) {
97-
resolvedVueOptions.__setupedGlobalTypes = {};
94+
resolvedVueOptions.__setupedGlobalTypes = true;
9895
}
9996
else {
100-
const absolutePath = setupGlobalTypes(path.dirname(tsConfigPath), resolvedVueOptions, parseConfigHost);
101-
if (absolutePath) {
102-
resolvedVueOptions.__setupedGlobalTypes = { absolutePath };
103-
}
97+
resolvedVueOptions.__setupedGlobalTypes = setupGlobalTypes(path.dirname(tsConfigPath), resolvedVueOptions, parseConfigHost);
10498
}
10599
const parsed = ts.parseJsonSourceFileConfigFileContent(
106100
config,
@@ -287,7 +281,7 @@ export function resolveVueCompilerOptions(vueOptions: Partial<VueCompilerOptions
287281
export function setupGlobalTypes(rootDir: string, vueOptions: VueCompilerOptions, host: {
288282
fileExists(path: string): boolean;
289283
writeFile?(path: string, data: string): void;
290-
}) {
284+
}): { absolutePath: string; } | undefined {
291285
if (!host.writeFile) {
292286
return;
293287
}
@@ -303,6 +297,6 @@ export function setupGlobalTypes(rootDir: string, vueOptions: VueCompilerOptions
303297
const globalTypesPath = path.join(dir, 'node_modules', '.vue-global-types', `${vueOptions.lib}_${vueOptions.target}_${vueOptions.strictTemplates}.d.ts`);
304298
const globalTypesContents = `// @ts-nocheck\nexport {};\n` + generateGlobalTypes(vueOptions.lib, vueOptions.target, vueOptions.strictTemplates);
305299
host.writeFile(globalTypesPath, globalTypesContents);
306-
return globalTypesPath;
300+
return { absolutePath: globalTypesPath };
307301
} catch { }
308302
}

packages/tsc/tests/dts.spec.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ describe('vue-tsc-dts', () => {
3333
}
3434
else {
3535
vueOptions = vue.resolveVueCompilerOptions({ extensions: ['.vue', '.cext'] });
36-
const absolutePath = vue.setupGlobalTypes(workspace.replace(windowsPathReg, '/'), vueOptions, ts.sys);
37-
if (absolutePath) {
38-
vueOptions.__setupedGlobalTypes = { absolutePath };
39-
}
36+
vueOptions.__setupedGlobalTypes = vue.setupGlobalTypes(workspace.replace(windowsPathReg, '/'), vueOptions, ts.sys);
4037
}
4138
const vueLanguagePlugin = vue.createVueLanguagePlugin<string>(
4239
ts,

0 commit comments

Comments
 (0)