@@ -59,7 +59,7 @@ export interface IEmitOutput extends ts.EmitOutput {
59
59
60
60
export class ModuleResolutionHost implements ts . ModuleResolutionHost {
61
61
servicesHost : Host ;
62
- resolutionCache : { [ fileName : string ] : string } = { } ;
62
+ resolutionCache : { [ fileName : string ] : ts . ResolvedModuleWithFailedLookupLocations } = { } ;
63
63
64
64
constructor ( servicesHost : Host ) {
65
65
this . servicesHost = servicesHost ;
@@ -120,30 +120,33 @@ export class Host implements ts.LanguageServiceHost {
120
120
}
121
121
122
122
resolveModuleNames ( moduleNames : string [ ] , containingFile : string ) {
123
- let resolvedFileNames : string [ ] = [ ] ;
123
+ let resolvedModules : ts . ResolvedModule [ ] = [ ] ;
124
124
125
125
for ( let moduleName of moduleNames ) {
126
126
let resolvedFileName : string ;
127
+ let resolvedModule : ts . ResolvedModuleWithFailedLookupLocations ;
127
128
try {
128
129
resolvedFileName = this . state . resolver ( containingFile , moduleName )
129
- if ( ! resolvedFileName . match ( / \. t s x ? $ / ) ) resolvedFileName = null ;
130
+ if ( ! resolvedFileName . match ( / \. t s x ? $ / ) ) {
131
+ resolvedFileName = null ;
132
+ }
130
133
}
131
- catch ( e ) { resolvedFileName = null }
132
-
133
- if ( ! resolvedFileName ) {
134
- resolvedFileName = this . state . ts . resolveModuleName (
135
- moduleName ,
136
- containingFile ,
137
- this . state . options ,
138
- this . moduleResolutionHost
139
- ) . resolvedFileName
134
+ catch ( e ) {
135
+ resolvedFileName = null
140
136
}
141
137
142
- this . moduleResolutionHost . resolutionCache [ `${ containingFile } ::${ moduleName } ` ] = resolvedFileName ;
143
- resolvedFileNames . push ( resolvedFileName ) ;
138
+ resolvedModule = this . state . ts . resolveModuleName (
139
+ resolvedFileName || moduleName ,
140
+ containingFile ,
141
+ this . state . options ,
142
+ this . moduleResolutionHost
143
+ ) ;
144
+
145
+ this . moduleResolutionHost . resolutionCache [ `${ containingFile } ::${ moduleName } ` ] = resolvedModule ;
146
+ resolvedModules . push ( resolvedModule . resolvedModule ) ;
144
147
}
145
148
146
- return resolvedFileNames ;
149
+ return resolvedModules ;
147
150
}
148
151
149
152
log ( message ) {
0 commit comments