@vue.ts/language
Version:
Vue 3 Language Helper
127 lines (126 loc) • 4 kB
TypeScript
import * as vue from "@vue/language-core";
import * as typescript_lib_tsserverlibrary0 from "typescript/lib/tsserverlibrary";
import ts from "typescript/lib/tsserverlibrary";
//#region src/index.d.ts
declare function createLanguage(tsconfigPath: string, ts?: typeof typescript_lib_tsserverlibrary0): ReturnType<typeof createLanguageWorker>;
declare function createLanguageWorker(loadParsedCommandLine: () => vue.ParsedCommandLine, rootPath: string, ts: typeof typescript_lib_tsserverlibrary0): {
updateFile(fileName: string, text: string): void;
deleteFile(fileName: string): void;
reload(): void;
clearCache(): void;
__internal__: {
tsLs: ts.LanguageService;
program: ts.Program;
typeChecker: ts.TypeChecker;
};
parseScriptSetupRanges: (ast: ts.SourceFile) => {
leadingCommentEndOffset: number;
importSectionEndOffset: number;
bindings: {
range: vue.TextRange;
moduleName?: string;
isDefaultImport?: boolean;
isNamespace?: boolean;
}[];
defineModel: {
localName?: vue.TextRange;
name?: vue.TextRange;
type?: vue.TextRange;
modifierType?: vue.TextRange;
runtimeType?: vue.TextRange;
defaultValue?: vue.TextRange;
required?: boolean;
comments?: vue.TextRange;
argNode?: ts.Expression;
}[];
defineProps: ({
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
} & {
name?: string;
destructured?: Map<string, ts.Expression | undefined>;
destructuredRest?: string;
statement: vue.TextRange;
argNode?: ts.Expression;
}) | undefined;
withDefaults: (Omit<{
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
}, "typeArg"> & {
argNode?: ts.Expression;
}) | undefined;
defineEmits: ({
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
} & {
name?: string;
hasUnionTypeArg?: boolean;
statement: vue.TextRange;
}) | undefined;
defineSlots: ({
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
} & {
name?: string;
statement: vue.TextRange;
}) | undefined;
defineExpose: {
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
} | undefined;
defineOptions: {
name?: string;
inheritAttrs?: string;
} | undefined;
useAttrs: {
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
}[];
useCssModule: {
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
}[];
useSlots: {
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
}[];
useTemplateRef: ({
callExp: vue.TextRange;
exp: vue.TextRange;
arg?: vue.TextRange;
typeArg?: vue.TextRange;
} & {
name?: string;
})[];
};
getScriptSetupBlock: (normalizedFilepath: string) => (vue.SfcBlock & {
generic: vue.SfcBlockAttr | undefined;
ast: ts.SourceFile;
}) | undefined;
getScriptSetupAst: (normalizedFilepath: string) => ts.SourceFile | undefined;
getVirtualFileOrTsAst: (normalizedFilepath: string) => ts.SourceFile | undefined;
traverseAst: (ast: ts.SourceFile, cb: (node: ts.Node) => void) => void;
findNodeByRange: (ast: ts.SourceFile, filter: (ranges: vue.ScriptSetupRanges) => vue.TextRange | undefined) => ts.Node | undefined;
findNodeByName: (ast: ts.SourceFile, name: string) => ts.Node | undefined;
};
type Language = ReturnType<typeof createLanguage>;
declare function ensureLanguage(tsconfigPath: string): void;
declare function getLanguage(): Language;
//#endregion
export { ensureLanguage, getLanguage };