@@ -31,6 +31,20 @@ namespace ts.projectSystem {
31
31
}
32
32
}
33
33
34
+ function createSession ( host : server . ServerHost , typingsInstaller ?: server . ITypingsInstaller ) : server . Session {
35
+ const opts : server . SessionOptions = {
36
+ host,
37
+ cancellationToken : nullCancellationToken ,
38
+ useSingleInferredProject : false ,
39
+ typingsInstaller : typingsInstaller || server . nullTypingsInstaller ,
40
+ byteLength : Utils . byteLength ,
41
+ hrtime : process . hrtime ,
42
+ logger : nullLogger ,
43
+ canUseEvents : false
44
+ } ;
45
+ return new server . Session ( opts ) ;
46
+ }
47
+
34
48
describe ( "for configured projects" , ( ) => {
35
49
let moduleFile1 : FileOrFolder ;
36
50
let file1Consumer1 : FileOrFolder ;
@@ -113,7 +127,7 @@ namespace ts.projectSystem {
113
127
it ( "should contains only itself if a module file's shape didn't change, and all files referencing it if its shape changed" , ( ) => {
114
128
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
115
129
const typingsInstaller = createTestTypingsInstaller ( host ) ;
116
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
130
+ const session = createSession ( host , typingsInstaller ) ;
117
131
118
132
openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
119
133
@@ -138,7 +152,7 @@ namespace ts.projectSystem {
138
152
it ( "should be up-to-date with the reference map changes" , ( ) => {
139
153
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
140
154
const typingsInstaller = createTestTypingsInstaller ( host ) ;
141
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
155
+ const session = createSession ( host , typingsInstaller ) ;
142
156
143
157
openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
144
158
@@ -185,7 +199,7 @@ namespace ts.projectSystem {
185
199
it ( "should be up-to-date with changes made in non-open files" , ( ) => {
186
200
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
187
201
const typingsInstaller = createTestTypingsInstaller ( host ) ;
188
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
202
+ const session = createSession ( host , typingsInstaller ) ;
189
203
190
204
openFilesForSession ( [ moduleFile1 ] , session ) ;
191
205
@@ -203,7 +217,7 @@ namespace ts.projectSystem {
203
217
it ( "should be up-to-date with deleted files" , ( ) => {
204
218
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
205
219
const typingsInstaller = createTestTypingsInstaller ( host ) ;
206
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
220
+ const session = createSession ( host , typingsInstaller ) ;
207
221
208
222
openFilesForSession ( [ moduleFile1 ] , session ) ;
209
223
sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 , file1Consumer2 ] } ] ) ;
@@ -218,7 +232,7 @@ namespace ts.projectSystem {
218
232
it ( "should be up-to-date with newly created files" , ( ) => {
219
233
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
220
234
const typingsInstaller = createTestTypingsInstaller ( host ) ;
221
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
235
+ const session = createSession ( host , typingsInstaller ) ;
222
236
223
237
openFilesForSession ( [ moduleFile1 ] , session ) ;
224
238
sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 , file1Consumer2 ] } ] ) ;
@@ -255,7 +269,7 @@ namespace ts.projectSystem {
255
269
256
270
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , configFile , libFile ] ) ;
257
271
const typingsInstaller = createTestTypingsInstaller ( host ) ;
258
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
272
+ const session = createSession ( host , typingsInstaller ) ;
259
273
260
274
openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
261
275
sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 ] } ] ) ;
@@ -272,7 +286,7 @@ namespace ts.projectSystem {
272
286
it ( "should return all files if a global file changed shape" , ( ) => {
273
287
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
274
288
const typingsInstaller = createTestTypingsInstaller ( host ) ;
275
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
289
+ const session = createSession ( host , typingsInstaller ) ;
276
290
277
291
openFilesForSession ( [ globalFile3 ] , session ) ;
278
292
const changeGlobalFile3ShapeRequest = makeSessionRequest < server . protocol . ChangeRequestArgs > ( CommandNames . Change , {
@@ -298,7 +312,7 @@ namespace ts.projectSystem {
298
312
299
313
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , configFile , libFile ] ) ;
300
314
const typingsInstaller = createTestTypingsInstaller ( host ) ;
301
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
315
+ const session = createSession ( host , typingsInstaller ) ;
302
316
openFilesForSession ( [ moduleFile1 ] , session ) ;
303
317
sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ ] ) ;
304
318
} ) ;
@@ -316,7 +330,7 @@ namespace ts.projectSystem {
316
330
317
331
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , configFile , libFile ] ) ;
318
332
const typingsInstaller = createTestTypingsInstaller ( host ) ;
319
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
333
+ const session = createSession ( host , typingsInstaller ) ;
320
334
openFilesForSession ( [ moduleFile1 ] , session ) ;
321
335
322
336
const file1ChangeShapeRequest = makeSessionRequest < server . protocol . ChangeRequestArgs > ( CommandNames . Change , {
@@ -345,7 +359,7 @@ namespace ts.projectSystem {
345
359
346
360
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , configFile , libFile ] ) ;
347
361
const typingsInstaller = createTestTypingsInstaller ( host ) ;
348
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
362
+ const session = createSession ( host , typingsInstaller ) ;
349
363
openFilesForSession ( [ moduleFile1 ] , session ) ;
350
364
351
365
const file1ChangeShapeRequest = makeSessionRequest < server . protocol . ChangeRequestArgs > ( CommandNames . Change , {
@@ -367,7 +381,7 @@ namespace ts.projectSystem {
367
381
} ;
368
382
const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer1Consumer1 , globalFile3 , configFile , libFile ] ) ;
369
383
const typingsInstaller = createTestTypingsInstaller ( host ) ;
370
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
384
+ const session = createSession ( host , typingsInstaller ) ;
371
385
372
386
openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
373
387
sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 , file1Consumer1Consumer1 ] } ] ) ;
@@ -400,7 +414,7 @@ namespace ts.projectSystem {
400
414
} ;
401
415
const host = createServerHost ( [ file1 , file2 , configFile ] ) ;
402
416
const typingsInstaller = createTestTypingsInstaller ( host ) ;
403
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
417
+ const session = createSession ( host , typingsInstaller ) ;
404
418
405
419
openFilesForSession ( [ file1 , file2 ] , session ) ;
406
420
const file1AffectedListRequest = makeSessionRequest < server . protocol . FileRequestArgs > ( CommandNames . CompileOnSaveAffectedFileList , { file : file1 . path } ) ;
@@ -513,7 +527,7 @@ namespace ts.projectSystem {
513
527
} ;
514
528
const host = createServerHost ( [ file1 , file2 , configFile , libFile ] , { newLine : "\r\n" } ) ;
515
529
const typingsInstaller = createTestTypingsInstaller ( host ) ;
516
- const session = new server . Session ( host , nullCancellationToken , /*useSingleInferredProject*/ false , typingsInstaller , Utils . byteLength , process . hrtime , nullLogger , /*canUseEvents*/ false ) ;
530
+ const session = createSession ( host , typingsInstaller ) ;
517
531
518
532
openFilesForSession ( [ file1 , file2 ] , session ) ;
519
533
const compileFileRequest = makeSessionRequest < server . protocol . CompileOnSaveEmitFileRequestArgs > ( CommandNames . CompileOnSaveEmitFile , { file : file1 . path , projectFileName : configFile . path } ) ;
0 commit comments