diff --git a/Jakefile.js b/Jakefile.js index 9a2f39ee130..ee0a84987ad 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -100,7 +100,6 @@ var serverSources = [ "editorServices.ts", "protocol.d.ts", "session.ts", - "nodeimpl.ts", "server.ts" ].map(function (f) { return path.join(serverDirectory, f); @@ -112,7 +111,7 @@ var languageServiceLibrarySources = [ "session.ts" ].map(function (f) { return path.join(serverDirectory, f); -}); +}).concat(servicesSources); var harnessSources = [ "harness.ts", @@ -146,7 +145,6 @@ var harnessSources = [ "protocol.d.ts", "session.ts", "client.ts", - "nodeimpl.ts", "editorServices.ts", ].map(function (f) { return path.join(serverDirectory, f); @@ -383,7 +381,7 @@ var lsslFile = path.join(builtLocalDirectory, "tslssl.js"); compileFile( lsslFile, languageServiceLibrarySources, - [builtLocalDirectory, copyright].concat(serverSources).concat(languageServiceLibrarySources), + [builtLocalDirectory, copyright].concat(languageServiceLibrarySources), /*prefixes*/ [copyright], /*useBuiltCompiler*/ true, /*noOutFile*/ false, diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 3796c84863b..8eb77817533 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -583,7 +583,7 @@ module Harness.LanguageService { // This host is just a proxy for the clientHost, it uses the client // host to answer server queries about files on disk var serverHost = new SessionServerHost(clientHost); - var server = new ts.server.Session(serverHost, new ts.server.NodeEnvironment(), serverHost); + var server = new ts.server.Session(serverHost, Buffer.byteLength, process.hrtime, serverHost); // Fake the connection between the client and the server serverHost.writeMessage = client.onMessage.bind(client); diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index d31ea53b5f9..53cab79f9af 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -1262,7 +1262,7 @@ module ts.server { versions: LineIndexSnapshot[] = []; minVersion = 0; // no versions earlier than min version will maintain change history private currentVersion = 0; - private host: System; + private host: ServerHost; static changeNumberThreshold = 8; static changeLengthThreshold = 256; diff --git a/src/server/nodeimpl.ts b/src/server/nodeimpl.ts deleted file mode 100644 index 9694b49aa85..00000000000 --- a/src/server/nodeimpl.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// -module ts.server { - export class NodeEnvironment implements Environment { - byteLength = Buffer.byteLength; - hrtime = process.hrtime; - } -} \ No newline at end of file diff --git a/src/server/server.ts b/src/server/server.ts index d9737a554d0..e2d195284f5 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -173,8 +173,8 @@ module ts.server { } class IOSession extends Session { - constructor(host: ServerHost, env: NodeEnvironment, logger: ts.server.Logger) { - super(host, env, logger); + constructor(host: ServerHost, logger: ts.server.Logger) { + super(host, Buffer.byteLength, process.hrtime, logger); } exit() { @@ -265,7 +265,7 @@ module ts.server { } }; - var ioSession = new IOSession(ts.sys, new NodeEnvironment(), logger); + var ioSession = new IOSession(ts.sys, logger); process.on('uncaughtException', function(err: Error) { ioSession.logError(err, "unknown"); }); diff --git a/src/server/session.ts b/src/server/session.ts index 60ae0b8ee21..09c6d70a070 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -107,21 +107,6 @@ module ts.server { export interface ServerHost extends ts.System { } - - export interface Environment { - byteLength: (buf: string, encoding?: string) => number; - hrtime: (start?: number[]) => number[]; //array of seconds, nanoseconds - } - - export interface Message { - type: string, - seq: number - } - - export interface Event extends Message { - event: string; - body?: any; - } export class Session { projectService: ProjectService; @@ -132,7 +117,12 @@ module ts.server { immediateId: any; changeSeq = 0; - constructor(private host: ServerHost, private environment: Environment, private logger: Logger) { + constructor( + private host: ServerHost, + private byteLength: (buf: string, encoding?: string) => number, + private hrtime: (start?: number[]) => number[], + private logger: Logger + ) { this.projectService = new ProjectService(host, logger, (eventName,project,fileName) => { this.handleEvent(eventName, project, fileName); @@ -163,17 +153,17 @@ module ts.server { this.host.write(line + this.host.newLine); } - send(msg: Message) { + send(msg: protocol.Message) { var json = JSON.stringify(msg); if (this.logger.isVerbose()) { this.logger.info(msg.type + ": " + json); } - this.sendLineToClient('Content-Length: ' + (1 + this.environment.byteLength(json, 'utf8')) + + this.sendLineToClient('Content-Length: ' + (1 + this.byteLength(json, 'utf8')) + '\r\n\r\n' + json); } event(info: any, eventName: string) { - var ev: Event = { + var ev: protocol.Event = { seq: 0, type: "event", event: eventName, @@ -852,7 +842,7 @@ module ts.server { onMessage(message: string) { if (this.logger.isVerbose()) { this.logger.info("request: " + message); - var start = this.environment.hrtime(); + var start = this.hrtime(); } try { var request = JSON.parse(message); @@ -994,7 +984,7 @@ module ts.server { } if (this.logger.isVerbose()) { - var elapsed = this.environment.hrtime(start); + var elapsed = this.hrtime(start); var seconds = elapsed[0] var nanoseconds = elapsed[1]; var elapsedMs = ((1e9 * seconds) + nanoseconds)/1000000.0;