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;