server.ts — astro Source File
Architecture documentation for server.ts, a typescript file in the astro codebase. 7 imports, 20 dependents.
Entity Profile
Dependency Diagram
graph LR 923db4e1_01a0_98ab_9c38_dfe16dd4bada["server.ts"] 349a6247_7703_ff13_e2b6_d319130ff2f9["node:crypto"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> 349a6247_7703_ff13_e2b6_d319130ff2f9 c52a5f83_66e3_37d7_9ebb_767f7129bc62["node:path"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> c52a5f83_66e3_37d7_9ebb_767f7129bc62 d9a92db9_c95e_9165_13ac_24b3d859d946["node:url"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> d9a92db9_c95e_9165_13ac_24b3d859d946 26192125_b6ed_271b_07a8_88803009cd6b["test-utils"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> 26192125_b6ed_271b_07a8_88803009cd6b 6e765aa6_fd52_dae5_82dc_1b4b5e92a527["node.js"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> 6e765aa6_fd52_dae5_82dc_1b4b5e92a527 2accdca4_fb80_ff68_515c_f646abc72243["vscode-languageserver-textdocument"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> 2accdca4_fb80_ff68_515c_f646abc72243 abeb339e_cdba_0d7f_6b7f_3696c1eb86f9["vscode-uri"] 923db4e1_01a0_98ab_9c38_dfe16dd4bada --> abeb339e_cdba_0d7f_6b7f_3696c1eb86f9 38eb43bb_eb3b_a13c_c79f_a35b90ae04ef["caching.test.ts"] 38eb43bb_eb3b_a13c_c79f_a35b90ae04ef --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada 4c7e91a1_f86d_6b8e_b0f0_4a15ccae8a23["completions.test.ts"] 4c7e91a1_f86d_6b8e_b0f0_4a15ccae8a23 --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada b47c660d_464d_f6b4_cbf1_a369558fa472["definitions.test.ts"] b47c660d_464d_f6b4_cbf1_a369558fa472 --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada 93e35a50_6bb5_f8d8_542c_bf8226444c1c["diagnostics.test.ts"] 93e35a50_6bb5_f8d8_542c_bf8226444c1c --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada 2b5cae3f_5d71_9efa_3b70_0869ac653520["hover.test.ts"] 2b5cae3f_5d71_9efa_3b70_0869ac653520 --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c["completions.test.ts"] bfeaa1d4_2b1c_7a2f_d4cf_493c45ab804c --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada 8417bd9c_0fe1_3e38_0582_22df592195a3["hover.test.ts"] 8417bd9c_0fe1_3e38_0582_22df592195a3 --> 923db4e1_01a0_98ab_9c38_dfe16dd4bada style 923db4e1_01a0_98ab_9c38_dfe16dd4bada fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { createHash } from 'node:crypto';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import type { LanguageServerHandle } from '@volar/test-utils';
import { startLanguageServer } from '@volar/test-utils';
import * as protocol from 'vscode-languageserver-protocol/node.js';
import type { TextDocument } from 'vscode-languageserver-textdocument';
import { URI } from 'vscode-uri';
let serverHandle: LanguageServerHandle | undefined;
let initializeResult: protocol.InitializeResult | undefined;
export type LanguageServer = {
handle: LanguageServerHandle;
initializeResult: protocol.InitializeResult;
openFakeDocument: (content: string, languageId: string) => Promise<TextDocument>;
};
export async function getLanguageServer(): Promise<LanguageServer> {
if (!serverHandle) {
serverHandle = startLanguageServer(
path.resolve('./bin/nodeServer.js'),
fileURLToPath(new URL('./fixture', import.meta.url)),
);
initializeResult = await serverHandle.initialize(
URI.file(fileURLToPath(new URL('./fixture', import.meta.url))).toString(),
{
typescript: {
tsdk: path.join(
path.dirname(fileURLToPath(import.meta.url)),
'../',
'node_modules',
'typescript',
'lib',
),
},
contentIntellisense: true,
},
{
textDocument: {
definition: {
linkSupport: true,
},
},
workspace: {
// Needed for tests that use didChangeWatchedFiles
didChangeWatchedFiles: {},
configuration: true,
},
},
);
// Ensure that our first test does not suffer from a TypeScript overhead
await serverHandle.sendCompletionRequest(
'file://doesnt-exists',
protocol.Position.create(0, 0),
);
}
if (!initializeResult || !serverHandle) {
throw new Error('Server not initialized');
}
return {
handle: serverHandle,
initializeResult: initializeResult,
openFakeDocument: async (content: string, languageId: string) => {
const hash = createHash('sha256').update(content).digest('base64url');
const uri = URI.file(`does-not-exists-${hash}-.astro`).toString();
const textDocument = await serverHandle!.openInMemoryDocument(uri, languageId, content);
return textDocument;
},
};
}
Domain
Subdomains
Functions
Types
Dependencies
- node.js
- node:crypto
- node:path
- node:url
- test-utils
- vscode-languageserver-textdocument
- vscode-uri
Imported By
- packages/language-tools/language-server/test/typescript/caching.test.ts
- packages/language-tools/language-server/test/content-intellisense/caching.test.ts
- packages/language-tools/language-server/test/content-intellisense/completions.test.ts
- packages/language-tools/language-server/test/typescript-addons/completions.test.ts
- packages/language-tools/language-server/test/css/completions.test.ts
- packages/language-tools/language-server/test/typescript/completions.test.ts
- packages/language-tools/language-server/test/html/completions.test.ts
- packages/language-tools/language-server/test/html/custom-data.test.ts
- packages/language-tools/language-server/test/content-intellisense/definitions.test.ts
- packages/language-tools/language-server/test/typescript/diagnostics.test.ts
- packages/language-tools/language-server/test/content-intellisense/diagnostics.test.ts
- packages/language-tools/language-server/test/html/hover.test.ts
- packages/language-tools/language-server/test/css/hover.test.ts
- packages/language-tools/language-server/test/content-intellisense/hover.test.ts
- packages/language-tools/language-server/test/misc/init.test.ts
- packages/language-tools/language-server/test/typescript/organize-imports.test.ts
- packages/language-tools/language-server/test/misc/prettier-format.test.ts
- packages/language-tools/language-server/test/typescript/renames.test.ts
- packages/language-tools/language-server/test/typescript/scripts.test.ts
- packages/language-tools/language-server/test/misc/teardown.ts
Source
Frequently Asked Questions
What does server.ts do?
server.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RoutingSystem subdomain.
What functions are defined in server.ts?
server.ts defines 2 function(s): content, getLanguageServer.
What does server.ts depend on?
server.ts imports 7 module(s): node.js, node:crypto, node:path, node:url, test-utils, vscode-languageserver-textdocument, vscode-uri.
What files import server.ts?
server.ts is imported by 20 file(s): caching.test.ts, caching.test.ts, completions.test.ts, completions.test.ts, completions.test.ts, completions.test.ts, completions.test.ts, custom-data.test.ts, and 12 more.
Where is server.ts in the architecture?
server.ts is located at packages/language-tools/language-server/test/server.ts (domain: CoreAstro, subdomain: RoutingSystem, directory: packages/language-tools/language-server/test).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free