From 39e6a0005469240becd98fe189aeca4f2846df96 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Tue, 21 Nov 2017 15:58:11 -0800 Subject: [PATCH 1/3] Unswap arguments --- src/server/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/server.ts b/src/server/server.ts index fb0b3b781a..5330b5721c 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -573,7 +573,7 @@ namespace ts.server { } private writeToEventSocket(body: any, eventName: string): void { - this.eventSocket.write(formatMessage(toEvent(body, eventName), this.logger, this.byteLength, this.host.newLine), "utf8"); + this.eventSocket.write(formatMessage(toEvent(eventName, body), this.logger, this.byteLength, this.host.newLine), "utf8"); } exit() { From f483495408b403b34dddbe43684727cb959784fa Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Tue, 21 Nov 2017 16:24:05 -0800 Subject: [PATCH 2/3] Use {} instead of any to improve type checking --- src/server/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/server.ts b/src/server/server.ts index 5330b5721c..06d9d50a8d 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -572,7 +572,7 @@ namespace ts.server { } } - private writeToEventSocket(body: any, eventName: string): void { + private writeToEventSocket(body: {}, eventName: string): void { this.eventSocket.write(formatMessage(toEvent(eventName, body), this.logger, this.byteLength, this.host.newLine), "utf8"); } From 5ed31cff8c5ebd9059ccc14506fa510a09e41ace Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Tue, 21 Nov 2017 16:38:58 -0800 Subject: [PATCH 3/3] Use stricter types for event bodies --- src/harness/unittests/tsserverProjectSystem.ts | 2 +- src/server/server.ts | 6 +++--- src/server/session.ts | 6 +++--- tests/baselines/reference/api/tsserverlibrary.d.ts | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/harness/unittests/tsserverProjectSystem.ts b/src/harness/unittests/tsserverProjectSystem.ts index caeb3a8196..ff2db0f9ee 100644 --- a/src/harness/unittests/tsserverProjectSystem.ts +++ b/src/harness/unittests/tsserverProjectSystem.ts @@ -232,7 +232,7 @@ namespace ts.projectSystem { return this.executeCommand(request); } - public event(body: T, eventName: string) { + public event(body: T, eventName: string) { this.events.push(server.toEvent(eventName, body)); super.event(body, eventName); } diff --git a/src/server/server.ts b/src/server/server.ts index 06d9d50a8d..3bad4d0e85 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -502,7 +502,7 @@ namespace ts.server { constructor(options: IoSessionOptions) { const { host, eventPort, globalTypingsCacheLocation, typingSafeListLocation, typesMapLocation, npmLocation, canUseEvents } = options; - const event: Event | undefined = (body: {}, eventName: string) => { + const event: Event | undefined = (body: object, eventName: string) => { if (this.constructed) { this.event(body, eventName); } @@ -551,7 +551,7 @@ namespace ts.server { this.constructed = true; } - event(body: T, eventName: string): void { + event(body: T, eventName: string): void { Debug.assert(this.constructed, "Should only call `IOSession.prototype.event` on an initialized IOSession"); if (this.canUseEvents && this.eventPort) { @@ -572,7 +572,7 @@ namespace ts.server { } } - private writeToEventSocket(body: {}, eventName: string): void { + private writeToEventSocket(body: object, eventName: string): void { this.eventSocket.write(formatMessage(toEvent(eventName, body), this.logger, this.byteLength, this.host.newLine), "utf8"); } diff --git a/src/server/session.ts b/src/server/session.ts index 9e6378ebeb..309a6aef0c 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -239,14 +239,14 @@ namespace ts.server { } } - export type Event = (body: T, eventName: string) => void; + export type Event = (body: T, eventName: string) => void; export interface EventSender { event: Event; } /** @internal */ - export function toEvent(eventName: string, body: {}): protocol.Event { + export function toEvent(eventName: string, body: object): protocol.Event { return { seq: 0, type: "event", @@ -409,7 +409,7 @@ namespace ts.server { this.host.write(formatMessage(msg, this.logger, this.byteLength, this.host.newLine)); } - public event(body: T, eventName: string): void { + public event(body: T, eventName: string): void { this.send(toEvent(eventName, body)); } diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 354f239eeb..4831a20f13 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -6930,7 +6930,7 @@ declare namespace ts.server { type CommandNames = protocol.CommandTypes; const CommandNames: any; function formatMessage(msg: T, logger: server.Logger, byteLength: (s: string, encoding: string) => number, newLine: string): string; - type Event = (body: T, eventName: string) => void; + type Event = (body: T, eventName: string) => void; interface EventSender { event: Event; } @@ -6973,7 +6973,7 @@ declare namespace ts.server { private projectsUpdatedInBackgroundEvent(openFiles); logError(err: Error, cmd: string): void; send(msg: protocol.Message): void; - event(body: T, eventName: string): void; + event(body: T, eventName: string): void; /** @deprecated */ output(info: any, cmdName: string, reqSeq?: number, errorMsg?: string): void; private doOutput(info, cmdName, reqSeq, success, message?);