@@ -4,80 +4,88 @@ namespace ts.tscWatch {
4
4
path : `${ projectRoot } /tsconfig.json` ,
5
5
content : `{}`
6
6
} ;
7
- interface VerifyEmitAndErrorUpdatesWorker extends VerifyEmitAndErrorUpdates {
8
- configFile : ( ) => File ;
7
+ interface VerifyEmitAndErrorUpdates {
8
+ subScenario : string
9
+ files : ( ) => File [ ] ;
10
+ currentDirectory ?: string ;
11
+ changes : TscWatchCompileChange [ ] ;
9
12
}
10
- function verifyEmitAndErrorUpdatesWorker ( {
13
+ function verifyEmitAndErrorUpdates ( {
11
14
subScenario,
12
15
files,
13
16
currentDirectory,
14
- lib,
15
- configFile,
16
17
changes,
17
- } : VerifyEmitAndErrorUpdatesWorker ) {
18
+ } : VerifyEmitAndErrorUpdates ) {
18
19
verifyTscWatch ( {
19
20
scenario : "emitAndErrorUpdates" ,
20
- subScenario,
21
+ subScenario : `default/ ${ subScenario } ` ,
21
22
commandLineArgs : [ "--w" ] ,
22
23
sys : ( ) => createWatchedSystem (
23
- [ ... files ( ) , configFile ( ) , lib ?. ( ) || libFile ] ,
24
+ files ( ) ,
24
25
{ currentDirectory : currentDirectory || projectRoot }
25
26
) ,
26
27
changes,
27
28
baselineIncremental : true
28
29
} ) ;
29
- }
30
-
31
- function changeCompilerOptions ( input : VerifyEmitAndErrorUpdates , additionalOptions : CompilerOptions ) : File {
32
- const configFile = input . configFile ?.( ) || config ;
33
- const content = JSON . parse ( configFile . content ) ;
34
- content . compilerOptions = { ...content . compilerOptions , ...additionalOptions } ;
35
- return { path : configFile . path , content : JSON . stringify ( content ) } ;
36
- }
37
-
38
- interface VerifyEmitAndErrorUpdates {
39
- subScenario : string
40
- files : ( ) => File [ ] ;
41
- currentDirectory ?: string ;
42
- lib ?: ( ) => File ;
43
- changes : TscWatchCompileChange [ ] ;
44
- configFile ?: ( ) => File ;
45
- }
46
- function verifyEmitAndErrorUpdates ( input : VerifyEmitAndErrorUpdates ) {
47
- verifyEmitAndErrorUpdatesWorker ( {
48
- ...input ,
49
- subScenario : `default/${ input . subScenario } ` ,
50
- configFile : ( ) => input . configFile ?.( ) || config
51
- } ) ;
52
30
53
- verifyEmitAndErrorUpdatesWorker ( {
54
- ...input ,
55
- subScenario : `defaultAndD/${ input . subScenario } ` ,
56
- configFile : ( ) => changeCompilerOptions ( input , { declaration : true } )
31
+ verifyTscWatch ( {
32
+ scenario : "emitAndErrorUpdates" ,
33
+ subScenario : `defaultAndD/${ subScenario } ` ,
34
+ commandLineArgs : [ "--w" , "--d" ] ,
35
+ sys : ( ) => createWatchedSystem (
36
+ files ( ) ,
37
+ { currentDirectory : currentDirectory || projectRoot }
38
+ ) ,
39
+ changes,
40
+ baselineIncremental : true
57
41
} ) ;
58
42
59
- verifyEmitAndErrorUpdatesWorker ( {
60
- ...input ,
61
- subScenario : `isolatedModules/${ input . subScenario } ` ,
62
- configFile : ( ) => changeCompilerOptions ( input , { isolatedModules : true } )
43
+ verifyTscWatch ( {
44
+ scenario : "emitAndErrorUpdates" ,
45
+ subScenario : `isolatedModules/${ subScenario } ` ,
46
+ commandLineArgs : [ "--w" , "--isolatedModules" ] ,
47
+ sys : ( ) => createWatchedSystem (
48
+ files ( ) ,
49
+ { currentDirectory : currentDirectory || projectRoot }
50
+ ) ,
51
+ changes,
52
+ baselineIncremental : true
63
53
} ) ;
64
54
65
- verifyEmitAndErrorUpdatesWorker ( {
66
- ...input ,
67
- subScenario : `isolatedModulesAndD/${ input . subScenario } ` ,
68
- configFile : ( ) => changeCompilerOptions ( input , { isolatedModules : true , declaration : true } )
55
+ verifyTscWatch ( {
56
+ scenario : "emitAndErrorUpdates" ,
57
+ subScenario : `isolatedModulesAndD/${ subScenario } ` ,
58
+ commandLineArgs : [ "--w" , "--isolatedModules" , "--d" ] ,
59
+ sys : ( ) => createWatchedSystem (
60
+ files ( ) ,
61
+ { currentDirectory : currentDirectory || projectRoot }
62
+ ) ,
63
+ changes,
64
+ baselineIncremental : true
69
65
} ) ;
70
66
71
- verifyEmitAndErrorUpdatesWorker ( {
72
- ...input ,
73
- subScenario : `assumeChangesOnlyAffectDirectDependencies/${ input . subScenario } ` ,
74
- configFile : ( ) => changeCompilerOptions ( input , { assumeChangesOnlyAffectDirectDependencies : true } )
67
+ verifyTscWatch ( {
68
+ scenario : "emitAndErrorUpdates" ,
69
+ subScenario : `assumeChangesOnlyAffectDirectDependencies/${ subScenario } ` ,
70
+ commandLineArgs : [ "--w" , "--assumeChangesOnlyAffectDirectDependencies" ] ,
71
+ sys : ( ) => createWatchedSystem (
72
+ files ( ) ,
73
+ { currentDirectory : currentDirectory || projectRoot }
74
+ ) ,
75
+ changes,
76
+ baselineIncremental : true
75
77
} ) ;
76
78
77
- verifyEmitAndErrorUpdatesWorker ( {
78
- ...input ,
79
- subScenario : `assumeChangesOnlyAffectDirectDependenciesAndD/${ input . subScenario } ` ,
80
- configFile : ( ) => changeCompilerOptions ( input , { assumeChangesOnlyAffectDirectDependencies : true , declaration : true } )
79
+ verifyTscWatch ( {
80
+ scenario : "emitAndErrorUpdates" ,
81
+ subScenario : `assumeChangesOnlyAffectDirectDependenciesAndD/${ subScenario } ` ,
82
+ commandLineArgs : [ "--w" , "--assumeChangesOnlyAffectDirectDependencies" , "--d" ] ,
83
+ sys : ( ) => createWatchedSystem (
84
+ files ( ) ,
85
+ { currentDirectory : currentDirectory || projectRoot }
86
+ ) ,
87
+ changes,
88
+ baselineIncremental : true
81
89
} ) ;
82
90
}
83
91
@@ -93,7 +101,7 @@ console.log(b.c.d);`
93
101
function verifyDeepImportChange ( subScenario : string , bFile : File , cFile : File ) {
94
102
verifyEmitAndErrorUpdates ( {
95
103
subScenario : `deepImportChanges/${ subScenario } ` ,
96
- files : ( ) => [ aFile , bFile , cFile ] ,
104
+ files : ( ) => [ aFile , bFile , cFile , config , libFile ] ,
97
105
changes : [
98
106
{
99
107
caption : "Rename property d to d2 of class C to initialize signatures" ,
@@ -201,7 +209,7 @@ getPoint().c.x;`
201
209
} ;
202
210
verifyEmitAndErrorUpdates ( {
203
211
subScenario : "file not exporting a deep multilevel import that changes" ,
204
- files : ( ) => [ aFile , bFile , cFile , dFile , eFile ] ,
212
+ files : ( ) => [ aFile , bFile , cFile , dFile , eFile , config , libFile ] ,
205
213
changes : [
206
214
{
207
215
caption : "Rename property x2 to x of interface Coords to initialize signatures" ,
@@ -272,8 +280,7 @@ export class Data {
272
280
function verifyTransitiveExports ( subScenario : string , files : readonly File [ ] ) {
273
281
verifyEmitAndErrorUpdates ( {
274
282
subScenario : `transitive exports/${ subScenario } ` ,
275
- files : ( ) => [ lib1ToolsInterface , lib1ToolsPublic , app , lib2Public , lib1Public , ...files ] ,
276
- configFile : ( ) => config ,
283
+ files : ( ) => [ lib1ToolsInterface , lib1ToolsPublic , app , lib2Public , lib1Public , ...files , config , libFile ] ,
277
284
changes : [
278
285
{
279
286
caption : "Rename property title to title2 of interface ITest to initialize signatures" ,
@@ -344,10 +351,8 @@ export class Data2 {
344
351
verifyEmitAndErrorUpdates ( {
345
352
subScenario : "with noEmitOnError" ,
346
353
currentDirectory : `${ TestFSWithWatch . tsbuildProjectsLocation } /noEmitOnError` ,
347
- files : ( ) => [ "shared/types/db.ts" , "src/main.ts" , "src/other.ts" ]
348
- . map ( f => TestFSWithWatch . getTsBuildProjectFile ( "noEmitOnError" , f ) ) ,
349
- lib : ( ) => ( { path : libFile . path , content : libContent } ) ,
350
- configFile : ( ) => TestFSWithWatch . getTsBuildProjectFile ( "noEmitOnError" , "tsconfig.json" ) ,
354
+ files : ( ) => [ "shared/types/db.ts" , "src/main.ts" , "src/other.ts" , "tsconfig.json" ]
355
+ . map ( f => TestFSWithWatch . getTsBuildProjectFile ( "noEmitOnError" , f ) ) . concat ( { path : libFile . path , content : libContent } ) ,
351
356
changes : [
352
357
noChange ,
353
358
change ( "Fix Syntax error" , `import { A } from "../shared/types/db";
0 commit comments