Skip to content

Commit

Permalink
fix: ignore css module type-checking on vue-tsc
Browse files Browse the repository at this point in the history
close #1089
  • Loading branch information
johnsoncodehk committed Mar 21, 2022
1 parent ee58d35 commit c10295f
Show file tree
Hide file tree
Showing 8 changed files with 10 additions and 2 deletions.
1 change: 1 addition & 0 deletions packages/typescript-vue-plugin/src/index.ts
Expand Up @@ -27,6 +27,7 @@ const init: ts.server.PluginModuleFactory = (modules) => {
const tsRuntime = vue.createTypeScriptRuntime({
typescript: ts,
vueCompilerOptions,
baseCssModuleType: 'any',
getCssClasses: () => ({}),
getCssVBindRanges: () => [],
vueLsHost: proxyHost.host,
Expand Down
1 change: 1 addition & 0 deletions packages/vue-language-service/src/documentService.ts
Expand Up @@ -154,6 +154,7 @@ export function getDocumentService(
vueTsPlugins,
{},
context.typescript,
'Record<string, string>',
stylesheetExtra.getCssVBindRanges,
stylesheetExtra.getCssClasses,
);
Expand Down
Expand Up @@ -4,7 +4,6 @@ import { languageFeatureWorker } from '../utils/featureWorkers';
import * as dedupe from '../utils/dedupe';
import { TextDocument } from 'vscode-languageserver-textdocument';
import { VueDocuments } from '../vueDocuments';
import { EmbeddedFileMappingData } from '@volar/vue-code-gen';

export function register(context: LanguageServiceRuntimeContext) {

Expand Down
1 change: 1 addition & 0 deletions packages/vue-language-service/src/languageService.ts
Expand Up @@ -99,6 +99,7 @@ export function createLanguageService(
const tsRuntime = createTypeScriptRuntime({
typescript: ts,
vueCompilerOptions,
baseCssModuleType: 'Record<string, string>',
getCssClasses: ef => stylesheetExtra.getCssClasses(ef),
getCssVBindRanges: ef => stylesheetExtra.getCssVBindRanges(ef),
vueLsHost: vueLsHost,
Expand Down
1 change: 1 addition & 0 deletions packages/vue-tsc/src/proxy.ts
Expand Up @@ -39,6 +39,7 @@ export function createProgramProxy(
};
const tsRuntime = createTypeScriptRuntime({
typescript: ts,
baseCssModuleType: 'any',
getCssClasses: () => ({}),
getCssVBindRanges: () => [],
vueCompilerOptions,
Expand Down
2 changes: 2 additions & 0 deletions packages/vue-typescript/src/typescriptRuntime.ts
Expand Up @@ -22,6 +22,7 @@ export type TypeScriptRuntime = ReturnType<typeof createTypeScriptRuntime>;
export function createTypeScriptRuntime(options: {
typescript: typeof import('typescript/lib/tsserverlibrary'),
vueCompilerOptions: VueCompilerOptions,
baseCssModuleType: string,
getCssVBindRanges: (cssEmbeddeFile: EmbeddedFile) => TextRange[],
getCssClasses: (cssEmbeddeFile: EmbeddedFile) => Record<string, TextRange[]>,
vueLsHost: LanguageServiceHost,
Expand Down Expand Up @@ -320,6 +321,7 @@ export function createTypeScriptRuntime(options: {
plugins,
options.vueCompilerOptions,
options.typescript,
options.baseCssModuleType,
options.getCssVBindRanges,
options.getCssClasses,
));
Expand Down
3 changes: 2 additions & 1 deletion packages/vue-typescript/src/use/useSfcTemplateScript.ts
Expand Up @@ -29,6 +29,7 @@ export function useSfcTemplateScript(
sfcStyles: ReturnType<(typeof import('./useSfcStyles'))['useSfcStyles']>['files'],
scriptLang: Ref<string>,
compilerOptions: VueCompilerOptions,
baseCssModuleType: string,
getCssVBindRanges: (cssEmbeddeFile: EmbeddedFile) => TextRange[],
getCssClasses: (cssEmbeddeFile: EmbeddedFile) => Record<string, TextRange[]>,
) {
Expand Down Expand Up @@ -97,7 +98,7 @@ export function useSfcTemplateScript(
const cssModuleMappingsArr: ReturnType<typeof writeCssClassProperties>[] = [];
for (const moduleName in cssModuleClasses.value) {
const moduleClasses = cssModuleClasses.value[moduleName];
codeGen.addText(`declare var ${moduleName}: Record<string, string> & {\n`);
codeGen.addText(`declare var ${moduleName}: ${baseCssModuleType} & {\n`);
cssModuleMappingsArr.push(writeCssClassProperties(moduleClasses, true, 'string', false));
codeGen.addText('};\n');
}
Expand Down
2 changes: 2 additions & 0 deletions packages/vue-typescript/src/vueFile.ts
Expand Up @@ -79,6 +79,7 @@ export function createVueFile(
plugins: VueLanguagePlugin[],
compilerOptions: VueCompilerOptions,
ts: typeof import('typescript/lib/tsserverlibrary'),
baseCssModuleType: string,
getCssVBindRanges: (cssEmbeddeFile: EmbeddedFile) => TextRange[],
getCssClasses: (cssEmbeddeFile: EmbeddedFile) => Record<string, TextRange[]>,
) {
Expand Down Expand Up @@ -210,6 +211,7 @@ export function createVueFile(
sfcStyles.files,
sfcScriptForScriptLs.lang,
compilerOptions,
baseCssModuleType,
getCssVBindRanges,
getCssClasses,
);
Expand Down

0 comments on commit c10295f

Please sign in to comment.