1- /// <reference types="node" />
21/// <reference path="..\compiler\commandLineParser.ts" />
32/// <reference path="..\services\services.ts" />
43/// <reference path="protocol.ts" />
54/// <reference path="editorServices.ts" />
65
76namespace ts . server {
8-
9- interface NodeSocket {
10- write ( data : string , encoding : string ) : boolean ;
11- }
12-
13- const net : {
14- connect ( options : { port : number } , onConnect ?: ( ) => void ) : NodeSocket
15- } = require ( "net" ) ;
16-
177 interface StackTraceError extends Error {
188 stack ?: string ;
199 }
@@ -255,50 +245,6 @@ namespace ts.server {
255245 event : Event ;
256246 }
257247
258- /** @internal */
259- export class SocketEventSender implements EventSender {
260- private host : ServerHost ;
261- private logger : Logger ;
262- private eventPort : number ;
263- private eventSocket : NodeSocket | undefined ;
264- private socketEventQueue : { body : any , eventName : string } [ ] | undefined ;
265-
266- constructor ( host : ServerHost , logger : Logger , eventPort : number ) {
267- this . host = host ;
268- this . logger = logger ;
269- this . eventPort = eventPort ;
270-
271- const s = net . connect ( { port : this . eventPort } , ( ) => {
272- this . eventSocket = s ;
273- if ( this . socketEventQueue ) {
274- // flush queue.
275- for ( const event of this . socketEventQueue ) {
276- this . writeToEventSocket ( event . body , event . eventName ) ;
277- }
278- this . socketEventQueue = undefined ;
279- }
280- } ) ;
281- }
282-
283- public event = < T > ( body : T , eventName : string ) => {
284- if ( ! this . eventSocket ) {
285- if ( this . logger . hasLevel ( LogLevel . verbose ) ) {
286- this . logger . info ( `eventPort: event "${ eventName } " queued, but socket not yet initialized` ) ;
287- }
288- ( this . socketEventQueue || ( this . socketEventQueue = [ ] ) ) . push ( { body, eventName } ) ;
289- return ;
290- }
291- else {
292- Debug . assert ( this . socketEventQueue === undefined ) ;
293- this . writeToEventSocket ( body , eventName ) ;
294- }
295- }
296-
297- private writeToEventSocket ( body : any , eventName : string ) : void {
298- this . eventSocket . write ( formatMessage ( { seq : 0 , type : "event" , event : eventName , body } , this . logger , Buffer . byteLength , this . host . newLine ) , "utf8" ) ;
299- }
300- }
301-
302248 export interface SessionOptions {
303249 host : ServerHost ;
304250 cancellationToken : ServerCancellationToken ;
@@ -312,11 +258,6 @@ namespace ts.server {
312258 * If falsy, all events are suppressed.
313259 */
314260 canUseEvents : boolean ;
315- /**
316- * If defined, specifies the socket to send events to the client.
317- * Otherwise, events are sent through the host.
318- */
319- eventPort ?: number ;
320261 /**
321262 * An optional callback overriding the default behavior for sending events.
322263 * if set, `canUseEvents` and `eventPort` are ignored.
@@ -348,7 +289,6 @@ namespace ts.server {
348289 protected logger : Logger ;
349290
350291 private canUseEvents : boolean ;
351- private eventPort : number | undefined ;
352292 private eventHandler : ProjectServiceEventHandler ;
353293
354294 constructor ( opts : SessionOptions ) {
@@ -358,18 +298,13 @@ namespace ts.server {
358298 this . byteLength = opts . byteLength ;
359299 this . hrtime = opts . hrtime ;
360300 this . logger = opts . logger ;
361- this . eventPort = opts . eventPort ;
362301 this . canUseEvents = opts . canUseEvents || ! ! opts . event ;
363302
364303 const { throttleWaitMilliseconds } = opts ;
365304
366305 if ( opts . event ) {
367306 this . event = opts . event ;
368307 }
369- else if ( this . eventPort && this . canUseEvents ) {
370- const eventSender = new SocketEventSender ( this . host , this . logger , this . eventPort ) ;
371- this . event = eventSender . event ;
372- }
373308 else {
374309 this . event = function < T > ( body : T , eventName : string ) : void {
375310 const ev : protocol . Event = {
0 commit comments