nodeServer.ts — astro Source File
Architecture documentation for nodeServer.ts, a typescript file in the astro codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR d2e36883_bbdf_9943_5480_e8268c65805d["nodeServer.ts"] 0e94d234_63d6_9e3a_18cc_17c52f493c38["../core/frontmatterHolders.js"] d2e36883_bbdf_9943_5480_e8268c65805d --> 0e94d234_63d6_9e3a_18cc_17c52f493c38 38342bd4_11df_7a37_2e70_333185fe2db2["../../core/index.js"] d2e36883_bbdf_9943_5480_e8268c65805d --> 38342bd4_11df_7a37_2e70_333185fe2db2 367a2539_25e9_8b92_26be_f9296f51cfaf["./languageServerPlugin.js"] d2e36883_bbdf_9943_5480_e8268c65805d --> 367a2539_25e9_8b92_26be_f9296f51cfaf fcea7c61_8834_bcc8_0062_ff8308eb913e["./utils.js"] d2e36883_bbdf_9943_5480_e8268c65805d --> fcea7c61_8834_bcc8_0062_ff8308eb913e 3d47248d_11e4_5795_cc2a_a866f94df7d9["node"] d2e36883_bbdf_9943_5480_e8268c65805d --> 3d47248d_11e4_5795_cc2a_a866f94df7d9 abeb339e_cdba_0d7f_6b7f_3696c1eb86f9["vscode-uri"] d2e36883_bbdf_9943_5480_e8268c65805d --> abeb339e_cdba_0d7f_6b7f_3696c1eb86f9 style d2e36883_bbdf_9943_5480_e8268c65805d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import {
createConnection,
createServer,
createTypeScriptProject,
loadTsdkByPath,
MessageType,
ShowMessageNotification,
type WorkspaceFolder,
} from '@volar/language-server/node';
import { URI, Utils } from 'vscode-uri';
import {
type CollectionConfig,
type CollectionConfigInstance,
SUPPORTED_FRONTMATTER_EXTENSIONS_KEYS,
} from './core/frontmatterHolders.js';
import { addAstroTypes } from './core/index.js';
import { getLanguagePlugins, getLanguageServicePlugins } from './languageServerPlugin.js';
import { getAstroInstall } from './utils.js';
const connection = createConnection();
const server = createServer(connection);
let contentIntellisenseEnabled = false;
connection.listen();
connection.onInitialize((params) => {
const tsdk = params.initializationOptions?.typescript?.tsdk;
if (!tsdk) {
throw new Error(
'The `typescript.tsdk` init option is required. It should point to a directory containing a `typescript.js` or `tsserverlibrary.js` file, such as `node_modules/typescript/lib`.',
);
}
const { typescript, diagnosticMessages } = loadTsdkByPath(tsdk, params.locale);
contentIntellisenseEnabled = params.initializationOptions?.contentIntellisense ?? false;
const collectionConfig = {
reload(folders) {
this.configs = loadCollectionConfig(folders);
},
configs: contentIntellisenseEnabled
? loadCollectionConfig(
// The vast majority of clients support workspaceFolders, but sometimes some unusual environments like tests don't
// @ts-expect-error - Just deprecated types, it's fine
params.workspaceFolders ?? (params.rootUri ? [{ uri: params.rootUri }] : []) ?? [],
)
: [],
} satisfies CollectionConfig;
function loadCollectionConfig(folders: WorkspaceFolder[] | { uri: string }[]) {
return folders.flatMap((folder) => {
try {
const folderUri = URI.parse(folder.uri);
let config = server.fileSystem.readFile(
Utils.joinPath(folderUri, '.astro/collections/collections.json'),
);
if (!config) {
// ... (91 more lines)
Domain
Dependencies
- ../../core/index.js
- ../core/frontmatterHolders.js
- ./languageServerPlugin.js
- ./utils.js
- node
- vscode-uri
Source
Frequently Asked Questions
What does nodeServer.ts do?
nodeServer.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain.
What does nodeServer.ts depend on?
nodeServer.ts imports 6 module(s): ../../core/index.js, ../core/frontmatterHolders.js, ./languageServerPlugin.js, ./utils.js, node, vscode-uri.
Where is nodeServer.ts in the architecture?
nodeServer.ts is located at packages/language-tools/language-server/src/nodeServer.ts (domain: CoreAstro, directory: packages/language-tools/language-server/src).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free