Skip to content

Commit d2458e3

Browse files
committed
Make tsserver a thin wrapper around tsserverlibrary
1 parent 7d0cd83 commit d2458e3

File tree

8 files changed

+151
-217
lines changed

8 files changed

+151
-217
lines changed

Herebyfile.mjs

+5-1
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ function createBundler(entrypoint, outfile, taskOptions = {}) {
177177
sourcesContent: false,
178178
treeShaking: taskOptions.treeShaking,
179179
packages: "external",
180+
external: ["typescript", "./typescript.js"],
181+
alias: {
182+
typescript: "./typescript.js",
183+
},
180184
logLevel: "warning",
181185
// legalComments: "none", // If we add copyright headers to the source files, uncomment.
182186
};
@@ -384,7 +388,7 @@ const { main: tsserver, watch: watchTsserver } = entrypointBuildTask({
384388
srcEntrypoint: "./src/tsserver/server.ts",
385389
builtEntrypoint: "./built/local/tsserver/server.js",
386390
output: "./built/local/tsserver.js",
387-
mainDeps: [generateLibs],
391+
mainDeps: [generateLibs, services],
388392
});
389393
export { tsserver, watchTsserver };
390394

src/tsconfig-eslint.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"extends": "./tsconfig-base",
33
"compilerOptions": {
4-
"types": ["node", "mocha", "chai"]
4+
"types": ["node", "mocha", "chai"],
5+
"paths": {
6+
"typescript": ["./typescript/typescript"]
7+
}
58
}
69
}

src/tsserver/_namespaces/ts.server.ts

-6
This file was deleted.

src/tsserver/_namespaces/ts.ts

-8
This file was deleted.

src/tsserver/common.ts

+15-21
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
1-
import { LanguageServiceMode } from "./_namespaces/ts";
2-
import {
3-
Logger,
4-
LogLevel,
5-
ServerCancellationToken,
6-
SessionOptions,
7-
} from "./_namespaces/ts.server";
1+
import * as ts from "typescript";
82

93
/** @internal */
104
export function getLogLevel(level: string | undefined) {
115
if (level) {
126
const l = level.toLowerCase();
13-
for (const name in LogLevel) {
7+
for (const name in ts.server.LogLevel) {
148
if (isNaN(+name) && l === name.toLowerCase()) {
15-
return LogLevel[name] as any as LogLevel;
9+
return ts.server.LogLevel[name] as any as ts.server.LogLevel;
1610
}
1711
}
1812
}
@@ -21,22 +15,22 @@ export function getLogLevel(level: string | undefined) {
2115

2216
/** @internal */
2317
export interface StartSessionOptions {
24-
globalPlugins: SessionOptions["globalPlugins"];
25-
pluginProbeLocations: SessionOptions["pluginProbeLocations"];
26-
allowLocalPluginLoads: SessionOptions["allowLocalPluginLoads"];
27-
useSingleInferredProject: SessionOptions["useSingleInferredProject"];
28-
useInferredProjectPerProjectRoot: SessionOptions["useInferredProjectPerProjectRoot"];
29-
suppressDiagnosticEvents: SessionOptions["suppressDiagnosticEvents"];
30-
noGetErrOnBackgroundUpdate: SessionOptions["noGetErrOnBackgroundUpdate"];
31-
serverMode: SessionOptions["serverMode"];
18+
globalPlugins: ts.server.SessionOptions["globalPlugins"];
19+
pluginProbeLocations: ts.server.SessionOptions["pluginProbeLocations"];
20+
allowLocalPluginLoads: ts.server.SessionOptions["allowLocalPluginLoads"];
21+
useSingleInferredProject: ts.server.SessionOptions["useSingleInferredProject"];
22+
useInferredProjectPerProjectRoot: ts.server.SessionOptions["useInferredProjectPerProjectRoot"];
23+
suppressDiagnosticEvents: ts.server.SessionOptions["suppressDiagnosticEvents"];
24+
noGetErrOnBackgroundUpdate: ts.server.SessionOptions["noGetErrOnBackgroundUpdate"];
25+
serverMode: ts.server.SessionOptions["serverMode"];
3226
}
3327

3428
/** @internal */
3529
export interface StartInput {
3630
args: readonly string[];
37-
logger: Logger;
38-
cancellationToken: ServerCancellationToken;
39-
serverMode: LanguageServiceMode | undefined;
31+
logger: ts.server.Logger;
32+
cancellationToken: ts.server.ServerCancellationToken;
33+
serverMode: ts.LanguageServiceMode | undefined;
4034
unknownServerMode?: string;
41-
startSession: (option: StartSessionOptions, logger: Logger, cancellationToken: ServerCancellationToken) => void;
35+
startSession: (option: StartSessionOptions, logger: ts.server.Logger, cancellationToken: ts.server.ServerCancellationToken) => void;
4236
}

0 commit comments

Comments
 (0)