@@ -31,6 +31,20 @@ namespace ts.projectSystem {
3131 }
3232 }
3333
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+
3448 describe ( "for configured projects" , ( ) => {
3549 let moduleFile1 : FileOrFolder ;
3650 let file1Consumer1 : FileOrFolder ;
@@ -113,7 +127,7 @@ namespace ts.projectSystem {
113127 it ( "should contains only itself if a module file's shape didn't change, and all files referencing it if its shape changed" , ( ) => {
114128 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
115129 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 ) ;
117131
118132 openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
119133
@@ -138,7 +152,7 @@ namespace ts.projectSystem {
138152 it ( "should be up-to-date with the reference map changes" , ( ) => {
139153 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
140154 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 ) ;
142156
143157 openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
144158
@@ -185,7 +199,7 @@ namespace ts.projectSystem {
185199 it ( "should be up-to-date with changes made in non-open files" , ( ) => {
186200 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
187201 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 ) ;
189203
190204 openFilesForSession ( [ moduleFile1 ] , session ) ;
191205
@@ -203,7 +217,7 @@ namespace ts.projectSystem {
203217 it ( "should be up-to-date with deleted files" , ( ) => {
204218 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
205219 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 ) ;
207221
208222 openFilesForSession ( [ moduleFile1 ] , session ) ;
209223 sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 , file1Consumer2 ] } ] ) ;
@@ -218,7 +232,7 @@ namespace ts.projectSystem {
218232 it ( "should be up-to-date with newly created files" , ( ) => {
219233 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
220234 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 ) ;
222236
223237 openFilesForSession ( [ moduleFile1 ] , session ) ;
224238 sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 , file1Consumer2 ] } ] ) ;
@@ -255,7 +269,7 @@ namespace ts.projectSystem {
255269
256270 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , configFile , libFile ] ) ;
257271 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 ) ;
259273
260274 openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
261275 sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 ] } ] ) ;
@@ -272,7 +286,7 @@ namespace ts.projectSystem {
272286 it ( "should return all files if a global file changed shape" , ( ) => {
273287 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , globalFile3 , moduleFile2 , configFile , libFile ] ) ;
274288 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 ) ;
276290
277291 openFilesForSession ( [ globalFile3 ] , session ) ;
278292 const changeGlobalFile3ShapeRequest = makeSessionRequest < server . protocol . ChangeRequestArgs > ( CommandNames . Change , {
@@ -298,7 +312,7 @@ namespace ts.projectSystem {
298312
299313 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer2 , configFile , libFile ] ) ;
300314 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 ) ;
302316 openFilesForSession ( [ moduleFile1 ] , session ) ;
303317 sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ ] ) ;
304318 } ) ;
@@ -316,7 +330,7 @@ namespace ts.projectSystem {
316330
317331 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , configFile , libFile ] ) ;
318332 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 ) ;
320334 openFilesForSession ( [ moduleFile1 ] , session ) ;
321335
322336 const file1ChangeShapeRequest = makeSessionRequest < server . protocol . ChangeRequestArgs > ( CommandNames . Change , {
@@ -345,7 +359,7 @@ namespace ts.projectSystem {
345359
346360 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , configFile , libFile ] ) ;
347361 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 ) ;
349363 openFilesForSession ( [ moduleFile1 ] , session ) ;
350364
351365 const file1ChangeShapeRequest = makeSessionRequest < server . protocol . ChangeRequestArgs > ( CommandNames . Change , {
@@ -367,7 +381,7 @@ namespace ts.projectSystem {
367381 } ;
368382 const host = createServerHost ( [ moduleFile1 , file1Consumer1 , file1Consumer1Consumer1 , globalFile3 , configFile , libFile ] ) ;
369383 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 ) ;
371385
372386 openFilesForSession ( [ moduleFile1 , file1Consumer1 ] , session ) ;
373387 sendAffectedFileRequestAndCheckResult ( session , moduleFile1FileListRequest , [ { projectFileName : configFile . path , files : [ moduleFile1 , file1Consumer1 , file1Consumer1Consumer1 ] } ] ) ;
@@ -400,7 +414,7 @@ namespace ts.projectSystem {
400414 } ;
401415 const host = createServerHost ( [ file1 , file2 , configFile ] ) ;
402416 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 ) ;
404418
405419 openFilesForSession ( [ file1 , file2 ] , session ) ;
406420 const file1AffectedListRequest = makeSessionRequest < server . protocol . FileRequestArgs > ( CommandNames . CompileOnSaveAffectedFileList , { file : file1 . path } ) ;
@@ -513,7 +527,7 @@ namespace ts.projectSystem {
513527 } ;
514528 const host = createServerHost ( [ file1 , file2 , configFile , libFile ] , { newLine : "\r\n" } ) ;
515529 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 ) ;
517531
518532 openFilesForSession ( [ file1 , file2 ] , session ) ;
519533 const compileFileRequest = makeSessionRequest < server . protocol . CompileOnSaveEmitFileRequestArgs > ( CommandNames . CompileOnSaveEmitFile , { file : file1 . path , projectFileName : configFile . path } ) ;
0 commit comments