vue.ts — astro Source File
Architecture documentation for vue.ts, a typescript file in the astro codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR f69c8565_2601_d4c4_6da0_cfd184766eed["vue.ts"] 93e56c2d_f370_b182_229b_84d794b9c282["./utils.js"] f69c8565_2601_d4c4_6da0_cfd184766eed --> 93e56c2d_f370_b182_229b_84d794b9c282 040ca79b_dadf_4383_efd2_c0b13744e9f1["language-core"] f69c8565_2601_d4c4_6da0_cfd184766eed --> 040ca79b_dadf_4383_efd2_c0b13744e9f1 41525615_7e06_b0e8_f601_674c57b118ee["typescript"] f69c8565_2601_d4c4_6da0_cfd184766eed --> 41525615_7e06_b0e8_f601_674c57b118ee abeb339e_cdba_0d7f_6b7f_3696c1eb86f9["vscode-uri"] f69c8565_2601_d4c4_6da0_cfd184766eed --> abeb339e_cdba_0d7f_6b7f_3696c1eb86f9 style f69c8565_2601_d4c4_6da0_cfd184766eed fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import {
type CodeInformation,
forEachEmbeddedCode,
type LanguagePlugin,
type Mapping,
type VirtualCode,
} from '@volar/language-core';
import type ts from 'typescript';
import type { URI } from 'vscode-uri';
import { framework2tsx } from './utils.js';
export function getVueLanguagePlugin(): LanguagePlugin<URI, VueVirtualCode> {
return {
getLanguageId(uri) {
if (uri.path.endsWith('.vue')) {
return 'vue';
}
},
createVirtualCode(uri, languageId, snapshot) {
if (languageId === 'vue') {
const fileName = uri.fsPath.replace(/\\/g, '/');
return new VueVirtualCode(fileName, snapshot);
}
},
typescript: {
extraFileExtensions: [{ extension: 'vue', isMixedContent: true, scriptKind: 7 }],
getServiceScript(vueCode) {
for (const code of forEachEmbeddedCode(vueCode)) {
if (code.id === 'tsx') {
return {
code,
extension: '.tsx',
scriptKind: 4 satisfies ts.ScriptKind.TSX,
};
}
}
},
},
};
}
class VueVirtualCode implements VirtualCode {
id = 'root';
languageId = 'vue';
mappings!: Mapping<CodeInformation>[];
embeddedCodes!: VirtualCode[];
codegenStacks = [];
constructor(
public fileName: string,
public snapshot: ts.IScriptSnapshot,
) {
this.mappings = [];
this.embeddedCodes = [];
this.embeddedCodes.push(
framework2tsx(this.fileName, this.snapshot.getText(0, this.snapshot.getLength()), 'vue'),
);
}
}
Domain
Subdomains
Functions
Classes
Dependencies
- ./utils.js
- language-core
- typescript
- vscode-uri
Source
Frequently Asked Questions
What does vue.ts do?
vue.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, CoreMiddleware subdomain.
What functions are defined in vue.ts?
vue.ts defines 1 function(s): getVueLanguagePlugin.
What does vue.ts depend on?
vue.ts imports 4 module(s): ./utils.js, language-core, typescript, vscode-uri.
Where is vue.ts in the architecture?
vue.ts is located at packages/language-tools/language-server/src/core/vue.ts (domain: CoreAstro, subdomain: CoreMiddleware, directory: packages/language-tools/language-server/src/core).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free