@@ -1052,12 +1052,6 @@ export function loadWithModeAwareCache<Entry, SourceFile, ResolutionCache, Resol
1052
1052
return resolutions ;
1053
1053
}
1054
1054
1055
- function getLibFileName ( libReference : FileReference ) {
1056
- const libName = toFileNameLowerCase ( libReference . fileName ) ;
1057
- const libFileName = libMap . get ( libName ) ;
1058
- return { libName, libFileName } ;
1059
- }
1060
-
1061
1055
/** @internal */
1062
1056
export function forEachResolvedProjectReference < T > (
1063
1057
resolvedProjectReferences : readonly ( ResolvedProjectReference | undefined ) [ ] | undefined ,
@@ -1107,11 +1101,33 @@ function forEachProjectReference<T>(
1107
1101
export const inferredTypesContainingFile = "__inferred type names__.ts" ;
1108
1102
1109
1103
/** @internal */
1110
- export function getInferredLibrarayNameResolveFrom ( options : CompilerOptions , currentDirectory : string , libFileName : string ) {
1104
+ export function getInferredLibraryNameResolveFrom ( options : CompilerOptions , currentDirectory : string , libFileName : string ) {
1111
1105
const containingDirectory = options . configFilePath ? getDirectoryPath ( options . configFilePath ) : currentDirectory ;
1112
1106
return combinePaths ( containingDirectory , `__lib_node_modules_lookup_${ libFileName } __.ts` ) ;
1113
1107
}
1114
1108
1109
+ /** @internal */
1110
+ export function getLibraryNameFromLibFileName ( libFileName : string ) {
1111
+ // Support resolving to lib.dom.d.ts -> @typescript/lib-dom, and
1112
+ // lib.dom.iterable.d.ts -> @typescript/lib-dom/iterable
1113
+ // lib.es2015.symbol.wellknown.d.ts -> @typescript/lib-es2015/symbol-wellknown
1114
+ const components = libFileName . split ( "." ) ;
1115
+ let path = components [ 1 ] ;
1116
+ let i = 2 ;
1117
+ while ( components [ i ] && components [ i ] !== "d" ) {
1118
+ path += ( i === 2 ? "/" : "-" ) + components [ i ] ;
1119
+ i ++ ;
1120
+ }
1121
+ return "@typescript/lib-" + path ;
1122
+ }
1123
+
1124
+ /** @internal */
1125
+ export function getLibFileNameFromLibReference ( libReference : FileReference ) {
1126
+ const libName = toFileNameLowerCase ( libReference . fileName ) ;
1127
+ const libFileName = libMap . get ( libName ) ;
1128
+ return { libName, libFileName } ;
1129
+ }
1130
+
1115
1131
interface DiagnosticCache < T extends Diagnostic > {
1116
1132
perFile ?: Map < Path , readonly T [ ] > ;
1117
1133
allDiagnostics ?: readonly T [ ] ;
@@ -1229,7 +1245,7 @@ export function isProgramUptoDate(
1229
1245
return ! sourceFileVersionUptoDate ( sourceFile ) ||
1230
1246
hasInvalidatedResolutions ( sourceFile . path ) ||
1231
1247
some ( sourceFile . libReferenceDirectives , libRef => {
1232
- const { libFileName } = getLibFileName ( libRef ) ;
1248
+ const { libFileName } = getLibFileNameFromLibReference ( libRef ) ;
1233
1249
return ! ! libFileName && hasInvalidatedLibResolutions ( libFileName ) ;
1234
1250
} ) ;
1235
1251
}
@@ -2472,7 +2488,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
2472
2488
// Do this resolution if necessary to determine reconstruction of program
2473
2489
if ( structureIsReused !== StructureIsReused . Completely &&
2474
2490
some ( newSourceFile . libReferenceDirectives , libReference => {
2475
- const { libFileName } = getLibFileName ( libReference ) ;
2491
+ const { libFileName } = getLibFileNameFromLibReference ( libReference ) ;
2476
2492
return ! ! libFileName &&
2477
2493
pathForLibFileWorker ( libFileName ) . actual !== oldProgram ?. resolvedLibReferences ?. get ( libFileName ) ?. actual ;
2478
2494
} ) ) {
@@ -3362,7 +3378,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
3362
3378
}
3363
3379
3364
3380
function getLibFileFromReference ( ref : FileReference ) {
3365
- const { libFileName } = getLibFileName ( ref ) ;
3381
+ const { libFileName } = getLibFileNameFromLibReference ( ref ) ;
3366
3382
const actualFileName = libFileName && resolvedLibReferences ?. get ( libFileName ) ?. actual ;
3367
3383
return actualFileName !== undefined ? getSourceFile ( actualFileName ) : undefined ;
3368
3384
}
@@ -3867,20 +3883,6 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
3867
3883
return result . actual ;
3868
3884
}
3869
3885
3870
- function getLibraryName ( libFileName : string ) {
3871
- // Support resolving to lib.dom.d.ts -> @typescript/lib-dom, and
3872
- // lib.dom.iterable.d.ts -> @typescript/lib-dom/iterable
3873
- // lib.es2015.symbol.wellknown.d.ts -> @typescript/lib-es2015/symbol-wellknown
3874
- const components = libFileName . split ( "." ) ;
3875
- let path = components [ 1 ] ;
3876
- let i = 2 ;
3877
- while ( components [ i ] && components [ i ] !== "d" ) {
3878
- path += ( i === 2 ? "/" : "-" ) + components [ i ] ;
3879
- i ++ ;
3880
- }
3881
- return "@typescript/lib-" + path ;
3882
- }
3883
-
3884
3886
function pathForLibFileWorker ( libFileName : string ) : LibResolution {
3885
3887
const existing = resolvedLibProcessing ?. get ( libFileName ) ;
3886
3888
if ( existing ) return existing ;
@@ -3889,8 +3891,8 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
3889
3891
const oldResolution = oldProgram . resolvedLibReferences ?. get ( libFileName ) ;
3890
3892
if ( oldResolution ) {
3891
3893
if ( oldResolution . resolution && isTraceEnabled ( options , host ) ) {
3892
- const libraryName = getLibraryName ( libFileName ) ;
3893
- const resolveFrom = getInferredLibrarayNameResolveFrom ( options , currentDirectory , libFileName ) ;
3894
+ const libraryName = getLibraryNameFromLibFileName ( libFileName ) ;
3895
+ const resolveFrom = getInferredLibraryNameResolveFrom ( options , currentDirectory , libFileName ) ;
3894
3896
trace ( host ,
3895
3897
oldResolution . resolution . resolvedModule ?
3896
3898
oldResolution . resolution . resolvedModule . packageId ?
@@ -3908,8 +3910,8 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
3908
3910
}
3909
3911
}
3910
3912
3911
- const libraryName = getLibraryName ( libFileName ) ;
3912
- const resolveFrom = getInferredLibrarayNameResolveFrom ( options , currentDirectory , libFileName ) ;
3913
+ const libraryName = getLibraryNameFromLibFileName ( libFileName ) ;
3914
+ const resolveFrom = getInferredLibraryNameResolveFrom ( options , currentDirectory , libFileName ) ;
3913
3915
const resolution = actualResolveLibrary ( libraryName , resolveFrom , options , libFileName ) ;
3914
3916
const result : LibResolution = {
3915
3917
resolution,
@@ -3923,7 +3925,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
3923
3925
3924
3926
function processLibReferenceDirectives ( file : SourceFile ) {
3925
3927
forEach ( file . libReferenceDirectives , ( libReference , index ) => {
3926
- const { libName, libFileName } = getLibFileName ( libReference ) ;
3928
+ const { libName, libFileName } = getLibFileNameFromLibReference ( libReference ) ;
3927
3929
if ( libFileName ) {
3928
3930
// we ignore any 'no-default-lib' reference set on this file.
3929
3931
processRootFile ( pathForLibFile ( libFileName ) , /*isDefaultLib*/ true , /*ignoreNoDefaultLib*/ true , { kind : FileIncludeKind . LibReferenceDirective , file : file . path , index, } ) ;
0 commit comments