From 6c775ebf97f714c856f2cabf14e63d4151b026b2 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Fri, 8 Jul 2016 16:47:51 -0700 Subject: [PATCH] move max uncompressed message size out of the session --- src/harness/harness.ts | 4 +++- src/harness/harnessLanguageService.ts | 1 + src/server/server.ts | 4 +++- src/server/session.ts | 1 + tests/cases/unittests/session.ts | 6 +++--- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 8726bf69da5..04bfbba4266 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -71,9 +71,11 @@ namespace Utils { } export function compress(s: string): any { - return Buffer ? new Buffer(s, "utf8") : { s, length: s.length }; + return Buffer ? new Buffer(s, "utf8") : { data: s, length: s.length }; } + export const maxUncompressedMessageSize = Number.MAX_VALUE; + export function evalFile(fileContents: string, fileName: string, nodeContext?: any) { const environment = getExecutionEnvironment(); switch (environment) { diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 7ca3c832377..e6e27582925 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -693,6 +693,7 @@ namespace Harness.LanguageService { { isCancellationRequested: () => false }, /*useOneInferredProject*/ false, Utils.byteLength, + Utils.maxUncompressedMessageSize, Utils.compress, process.hrtime, serverHost); diff --git a/src/server/server.ts b/src/server/server.ts index 6be185b148f..b072b2516a4 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -20,6 +20,8 @@ namespace ts.server { return { data, length: data.length, compressionKind: "gzip" }; } + const maxUncompressedMessageSize = 84000; + class Logger implements ts.server.Logger { private fd = -1; private seq = 0; @@ -99,7 +101,7 @@ namespace ts.server { class IOSession extends Session { constructor(host: ServerHost, cancellationToken: HostCancellationToken, useSingleInferredProject: boolean, logger: ts.server.Logger) { - super(host, cancellationToken, useSingleInferredProject, Buffer.byteLength, compress, process.hrtime, logger); + super(host, cancellationToken, useSingleInferredProject, Buffer.byteLength, maxUncompressedMessageSize, compress, process.hrtime, logger); } exit() { diff --git a/src/server/session.ts b/src/server/session.ts index 878f501c783..a71704c176c 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -199,6 +199,7 @@ namespace ts.server { cancellationToken: HostCancellationToken, useSingleInferredProject: boolean, private byteLength: (buf: string, encoding?: string) => number, + private maxUncompressedMessageSize: number, private compress: (s: string) => CompressedData, private hrtime: (start?: number[]) => number[], private logger: Logger) { diff --git a/tests/cases/unittests/session.ts b/tests/cases/unittests/session.ts index 3eb928a0462..3aebd28df9a 100644 --- a/tests/cases/unittests/session.ts +++ b/tests/cases/unittests/session.ts @@ -43,7 +43,7 @@ namespace ts.server { let lastSent: protocol.Message; beforeEach(() => { - session = new Session(mockHost, nullCancellationToken, /*useOneInferredProject*/ false, Utils.byteLength, Utils.compress, process.hrtime, mockLogger); + session = new Session(mockHost, nullCancellationToken, /*useOneInferredProject*/ false, Utils.byteLength, Utils.maxUncompressedMessageSize, Utils.compress, process.hrtime, mockLogger); session.send = (msg: protocol.Message) => { lastSent = msg; }; @@ -268,7 +268,7 @@ namespace ts.server { lastSent: protocol.Message; customHandler = "testhandler"; constructor() { - super(mockHost, nullCancellationToken, /*useOneInferredProject*/ false, Utils.byteLength, Utils.compress, process.hrtime, mockLogger); + super(mockHost, nullCancellationToken, /*useOneInferredProject*/ false, Utils.byteLength, Utils.maxUncompressedMessageSize, Utils.compress, process.hrtime, mockLogger); this.addProtocolHandler(this.customHandler, () => { return { response: undefined, responseRequired: true }; }); @@ -326,7 +326,7 @@ namespace ts.server { class InProcSession extends Session { private queue: protocol.Request[] = []; constructor(private client: InProcClient) { - super(mockHost, nullCancellationToken, /*useOneInferredProject*/ false, Utils.byteLength, Utils.compress, process.hrtime, mockLogger); + super(mockHost, nullCancellationToken, /*useOneInferredProject*/ false, Utils.byteLength, Utils.maxUncompressedMessageSize, Utils.compress, process.hrtime, mockLogger); this.addProtocolHandler("echo", (req: protocol.Request) => ({ response: req.arguments, responseRequired: true