Skip to content

Commit 35d4b72

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 42b025a commit 35d4b72

File tree

3 files changed

+32
-25
lines changed

3 files changed

+32
-25
lines changed

Diff for: 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";

Diff for: 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+
}

Diff for: 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)