@@ -368,7 +368,41 @@ namespace ts.server {
368
368
protected logger : Logger ;
369
369
private canUseEvents : boolean ;
370
370
371
- constructor ( opts : SessionOptions ) {
371
+ // New ctor
372
+ constructor ( opts : SessionOptions ) ;
373
+ // Back-compat ctor, remove / deprecate
374
+ constructor (
375
+ /*0*/ host : ServerHost ,
376
+ /*1*/ cancellationToken : ServerCancellationToken ,
377
+ /*2*/ useSingleInferredProject : boolean ,
378
+ /*3*/ typingsInstaller : ITypingsInstaller ,
379
+ /*4*/ byteLength : ( buf : string , encoding ?: string ) => number ,
380
+ /*5*/ hrtime : ( start ?: number [ ] ) => number [ ] ,
381
+ /*6*/ logger : server . Logger ,
382
+ /*7*/ canUseEvents : boolean ,
383
+ /*8*/ eventHandler ?: ProjectServiceEventHandler ,
384
+ /*9*/ throttleWaitMilliseconds ?: number ) ;
385
+ // Implementation
386
+ constructor ( optsOrArg : SessionOptions | ServerHost ) {
387
+ let opts : SessionOptions ;
388
+ if ( arguments . length === 1 ) {
389
+ opts = optsOrArg as SessionOptions ;
390
+ }
391
+ else {
392
+ opts = {
393
+ host : arguments [ 0 ] ,
394
+ cancellationToken : arguments [ 1 ] ,
395
+ useSingleInferredProject : arguments [ 2 ] ,
396
+ typingsInstaller : arguments [ 3 ] ,
397
+ byteLength : arguments [ 4 ] ,
398
+ hrtime : arguments [ 5 ] ,
399
+ logger : arguments [ 6 ] ,
400
+ canUseEvents : arguments [ 7 ] ,
401
+ eventHandler : arguments [ 8 ] ,
402
+ throttleWaitMilliseconds : arguments [ 9 ]
403
+ } ;
404
+ }
405
+
372
406
this . host = opts . host ;
373
407
this . cancellationToken = opts . cancellationToken ;
374
408
this . typingsInstaller = opts . typingsInstaller ;
0 commit comments