@@ -805,17 +805,9 @@ namespace ts.server {
805
805
806
806
/* @internal */
807
807
getFileNamesWithRedirectInfo ( includeProjectReferenceRedirectInfo : boolean ) {
808
- const fileNames = this . getFileNames ( ) ;
809
- if ( includeProjectReferenceRedirectInfo ) {
810
- return fileNames . map ( ( fileName ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
811
- fileName,
812
- isSourceOfProjectReferenceRedirect : this . isSourceOfProjectReferenceRedirect ( fileName )
813
- } ) ) ;
814
- }
815
-
816
- return fileNames . map ( ( fileName ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
808
+ return this . getFileNames ( ) . map ( ( fileName ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
817
809
fileName,
818
- isSourceOfProjectReferenceRedirect : false
810
+ isSourceOfProjectReferenceRedirect : includeProjectReferenceRedirectInfo && this . isSourceOfProjectReferenceRedirect ( fileName )
819
811
} ) ) ;
820
812
}
821
813
@@ -1319,9 +1311,9 @@ namespace ts.server {
1319
1311
getChangesSinceVersion ( lastKnownVersion ?: number , includeProjectReferenceRedirectInfo ?: boolean ) : ProjectFilesWithTSDiagnostics {
1320
1312
const includeProjectReferenceRedirectInfoIfRequested =
1321
1313
includeProjectReferenceRedirectInfo
1322
- ? ( files : Map < boolean > ) => arrayFrom ( files . keys ( ) , ( fileName : string ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
1314
+ ? ( files : Map < boolean > ) => arrayFrom ( files . entries ( ) , ( [ fileName , isSourceOfProjectReferenceRedirect ] ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
1323
1315
fileName,
1324
- isSourceOfProjectReferenceRedirect : files . get ( fileName ) ! // fileName guaranteed to be in files
1316
+ isSourceOfProjectReferenceRedirect
1325
1317
} ) )
1326
1318
: ( files : Map < boolean > ) => arrayFrom ( files . keys ( ) ) ;
1327
1319
@@ -1364,20 +1356,20 @@ namespace ts.server {
1364
1356
const updated : string [ ] = updatedFileNames ? arrayFrom ( updatedFileNames . keys ( ) ) : [ ] ;
1365
1357
const updatedRedirects : protocol . FileWithProjectReferenceRedirectInfo [ ] = [ ] ;
1366
1358
1367
- forEachKey ( currentFiles , id => {
1368
- if ( ! lastReportedFileNames . has ( id ) ) {
1369
- added . set ( id , currentFiles . get ( id ) ! ) ; // id guaranteed to be in currentFiles
1359
+ forEachEntry ( currentFiles , ( isSourceOfProjectReferenceRedirect , fileName ) => {
1360
+ if ( ! lastReportedFileNames . has ( fileName ) ) {
1361
+ added . set ( fileName , isSourceOfProjectReferenceRedirect ) ;
1370
1362
}
1371
- else if ( includeProjectReferenceRedirectInfo && lastReportedFileNames . get ( id ) !== currentFiles . get ( id ) ) {
1363
+ else if ( includeProjectReferenceRedirectInfo && isSourceOfProjectReferenceRedirect !== lastReportedFileNames . get ( fileName ) ) {
1372
1364
updatedRedirects . push ( {
1373
- fileName : id ,
1374
- isSourceOfProjectReferenceRedirect : currentFiles . get ( id ) ! // id guaranteed to be in currentFiles
1365
+ fileName,
1366
+ isSourceOfProjectReferenceRedirect
1375
1367
} ) ;
1376
1368
}
1377
1369
} ) ;
1378
- forEachKey ( lastReportedFileNames , id => {
1379
- if ( ! currentFiles . has ( id ) ) {
1380
- removed . set ( id , lastReportedFileNames . get ( id ) ! ) ; // id guaranteed to be in lastReportedFileNames
1370
+ forEachEntry ( lastReportedFileNames , ( isSourceOfProjectReferenceRedirect , fileName ) => {
1371
+ if ( ! currentFiles . has ( fileName ) ) {
1372
+ removed . set ( fileName , isSourceOfProjectReferenceRedirect ) ;
1381
1373
}
1382
1374
} ) ;
1383
1375
this . lastReportedFileNames = currentFiles ;
@@ -1407,7 +1399,7 @@ namespace ts.server {
1407
1399
} ) ) ;
1408
1400
const allFiles = projectFileNames . concat ( externalFiles ) ;
1409
1401
this . lastReportedFileNames = arrayToMap (
1410
- projectFileNames . concat ( externalFiles ) ,
1402
+ allFiles ,
1411
1403
info => info . fileName ,
1412
1404
info => info . isSourceOfProjectReferenceRedirect
1413
1405
) ;
0 commit comments