Skip to content

Commit 500db6f

Browse files
committed
Export ts namespace from tsserver for hacky-post patching
Unlike our other exectuables, tsserver is used in web, which means that there actually would have been a "ts" variable declared for those users (e.g. in a web worker). It looks like VS Code needs this variable to be declared, so change this bundle to look the same as other libraries. Note that in Node, the IIFE will never actually return, so this can have no effect. On web, it will return in order to yield control back to the event loop (as on web, postMessage is used to communicate).
1 parent c735079 commit 500db6f

File tree

3 files changed

+32
-25
lines changed

3 files changed

+32
-25
lines changed

src/tsserver/_namespaces/ts.server.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ export * from "../../server/_namespaces/ts.server";
55
export * from "../../webServer/_namespaces/ts.server";
66
export * from "../nodeServer";
77
export * from "../webServer";
8-
export * from "../server";
8+
export * from "../common";

src/tsserver/common.ts

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import {
2+
Logger, LogLevel, ServerCancellationToken, StartSessionOptions,
3+
} from "./_namespaces/ts.server";
4+
import { LanguageServiceMode } from "./_namespaces/ts";
5+
6+
/** @internal */
7+
export function getLogLevel(level: string | undefined) {
8+
if (level) {
9+
const l = level.toLowerCase();
10+
for (const name in LogLevel) {
11+
if (isNaN(+name) && l === name.toLowerCase()) {
12+
return LogLevel[name] as any as LogLevel;
13+
}
14+
}
15+
}
16+
return undefined;
17+
}
18+
19+
/** @internal */
20+
export interface StartInput {
21+
args: readonly string[];
22+
logger: Logger;
23+
cancellationToken: ServerCancellationToken;
24+
serverMode: LanguageServiceMode | undefined;
25+
unknownServerMode?: string;
26+
startSession: (option: StartSessionOptions, logger: Logger, cancellationToken: ServerCancellationToken) => void;
27+
}

src/tsserver/server.ts

+4-24
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import {
2-
emptyArray, findArgument, hasArgument, initializeNodeSystem, initializeWebSystem, Logger, LogLevel, Msg,
3-
ServerCancellationToken, StartSessionOptions,
2+
emptyArray, findArgument, hasArgument, initializeNodeSystem, initializeWebSystem, Msg,
3+
StartInput,
44
} from "./_namespaces/ts.server";
5-
import { Debug, getNodeMajorVersion, LanguageServiceMode, setStackTraceLimit, sys, version } from "./_namespaces/ts";
5+
import { Debug, getNodeMajorVersion, setStackTraceLimit, sys, version } from "./_namespaces/ts";
6+
export * from "./_namespaces/ts";
67

78
declare const addEventListener: any;
89
declare const removeEventListener: any;
@@ -14,28 +15,7 @@ function findArgumentStringArray(argName: string): readonly string[] {
1415
return arg.split(",").filter(name => name !== "");
1516
}
1617

17-
/** @internal */
18-
export function getLogLevel(level: string | undefined) {
19-
if (level) {
20-
const l = level.toLowerCase();
21-
for (const name in LogLevel) {
22-
if (isNaN(+name) && l === name.toLowerCase()) {
23-
return LogLevel[name] as any as LogLevel;
24-
}
25-
}
26-
}
27-
return undefined;
28-
}
2918

30-
/** @internal */
31-
export interface StartInput {
32-
args: readonly string[];
33-
logger: Logger;
34-
cancellationToken: ServerCancellationToken;
35-
serverMode: LanguageServiceMode | undefined;
36-
unknownServerMode?: string;
37-
startSession: (option: StartSessionOptions, logger: Logger, cancellationToken: ServerCancellationToken) => void;
38-
}
3919
function start({ args, logger, cancellationToken, serverMode, unknownServerMode, startSession: startServer }: StartInput, platform: string) {
4020
const syntaxOnly = hasArgument("--syntaxOnly");
4121

0 commit comments

Comments
 (0)