@@ -5,11 +5,12 @@ import { exposeRpc } from '../../rpc';
5
5
import { invalidateArtifacts , registerArtifacts } from './lib/artifacts' ;
6
6
import {
7
7
didConfigFileChanged ,
8
+ didDependenciesProbablyChanged ,
8
9
didRootFilesChanged ,
9
10
getParseConfigIssues ,
10
11
invalidateConfig ,
11
12
} from './lib/config' ;
12
- import { invalidateDependencies } from './lib/dependencies' ;
13
+ import { getDependencies , invalidateDependencies } from './lib/dependencies' ;
13
14
import { getIssues , invalidateDiagnostics } from './lib/diagnostics' ;
14
15
import {
15
16
disablePerformanceIfNeeded ,
@@ -28,15 +29,12 @@ import { dumpTracingLegendIfNeeded } from './lib/tracing';
28
29
import { invalidateTsBuildInfo } from './lib/tsbuildinfo' ;
29
30
import { config } from './lib/worker-config' ;
30
31
31
- const getIssuesWorker = async (
32
- { changedFiles = [ ] , deletedFiles = [ ] } : FilesChange ,
33
- watching : boolean
34
- ) : Promise < Issue [ ] > => {
32
+ const getIssuesWorker = async ( change : FilesChange , watching : boolean ) : Promise < Issue [ ] > => {
35
33
system . invalidateCache ( ) ;
36
- invalidateDependencies ( ) ;
37
34
38
- if ( didConfigFileChanged ( { changedFiles , deletedFiles } ) ) {
35
+ if ( didConfigFileChanged ( change ) ) {
39
36
invalidateConfig ( ) ;
37
+ invalidateDependencies ( ) ;
40
38
invalidateArtifacts ( ) ;
41
39
invalidateDiagnostics ( ) ;
42
40
@@ -45,11 +43,15 @@ const getIssuesWorker = async (
45
43
invalidateSolutionBuilder ( true ) ;
46
44
47
45
invalidateTsBuildInfo ( ) ;
48
- } else if ( didRootFilesChanged ( ) ) {
46
+ } else if ( didDependenciesProbablyChanged ( getDependencies ( ) , change ) ) {
47
+ invalidateConfig ( ) ;
48
+ invalidateDependencies ( ) ;
49
49
invalidateArtifacts ( ) ;
50
50
51
- invalidateWatchProgramRootFileNames ( ) ;
52
- invalidateSolutionBuilder ( ) ;
51
+ if ( didRootFilesChanged ( ) ) {
52
+ invalidateWatchProgramRootFileNames ( ) ;
53
+ invalidateSolutionBuilder ( ) ;
54
+ }
53
55
}
54
56
55
57
registerArtifacts ( ) ;
@@ -71,11 +73,11 @@ const getIssuesWorker = async (
71
73
}
72
74
73
75
// simulate file system events
74
- changedFiles . forEach ( ( changedFile ) => {
76
+ change . changedFiles ? .forEach ( ( changedFile ) => {
75
77
system ?. invokeFileChanged ( changedFile ) ;
76
78
} ) ;
77
- deletedFiles . forEach ( ( removedFile ) => {
78
- system ?. invokeFileDeleted ( removedFile ) ;
79
+ change . deletedFiles ? .forEach ( ( deletedFile ) => {
80
+ system ?. invokeFileDeleted ( deletedFile ) ;
79
81
} ) ;
80
82
81
83
// wait for all queued events to be processed
0 commit comments