@@ -109,6 +109,8 @@ type Resolver struct {
109
109
caches
110
110
host ResolutionHost
111
111
compilerOptions * core.CompilerOptions
112
+ TypingsLocation string
113
+ ProjectName string
112
114
// reportDiagnostic: DiagnosticReporter
113
115
}
114
116
@@ -229,6 +231,36 @@ func (r *Resolver) ResolveModuleName(moduleName string, containingFile string, r
229
231
}
230
232
}
231
233
234
+ return r .tryResolveFromTypingsLocation (moduleName , containingDirectory , result )
235
+ }
236
+
237
+ func (r * Resolver ) tryResolveFromTypingsLocation (moduleName string , containingDirectory string , originalResult * ResolvedModule ) * ResolvedModule {
238
+ if r .TypingsLocation == "" ||
239
+ tspath .IsExternalModuleNameRelative (moduleName ) ||
240
+ (originalResult .ResolvedFileName != "" && tspath .ExtensionIsOneOf (originalResult .Extension , tspath .SupportedTSExtensionsWithJsonFlat )) {
241
+ return originalResult
242
+ }
243
+
244
+ state := newResolutionState (
245
+ moduleName ,
246
+ containingDirectory ,
247
+ false , /*isTypeReferenceDirective*/
248
+ core .ModuleKindNone , // resolutionMode,
249
+ r .compilerOptions ,
250
+ nil , // redirectedReference,
251
+ r ,
252
+ )
253
+ if r .traceEnabled () {
254
+ r .host .Trace (diagnostics .Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2 .Format (r .ProjectName , moduleName , r .TypingsLocation ))
255
+ }
256
+ globalResolved := state .loadModuleFromImmediateNodeModulesDirectory (extensionsDeclaration , r .TypingsLocation , false )
257
+ if globalResolved == nil {
258
+ return originalResult
259
+ }
260
+ result := state .createResolvedModule (globalResolved , true )
261
+ result .FailedLookupLocations = append (originalResult .FailedLookupLocations , result .FailedLookupLocations ... )
262
+ result .AffectingLocations = append (originalResult .AffectingLocations , result .AffectingLocations ... )
263
+ result .ResolutionDiagnostics = append (originalResult .ResolutionDiagnostics , result .ResolutionDiagnostics ... )
232
264
return result
233
265
}
234
266
0 commit comments