( typeReferenceDirectiveName string, containingFile string, resolutionMode core.ResolutionMode, redirectedReference ResolvedProjectReference, )
| 223 | } |
| 224 | |
| 225 | func (r *Resolver) ResolveTypeReferenceDirective( |
| 226 | typeReferenceDirectiveName string, |
| 227 | containingFile string, |
| 228 | resolutionMode core.ResolutionMode, |
| 229 | redirectedReference ResolvedProjectReference, |
| 230 | ) (*ResolvedTypeReferenceDirective, []DiagAndArgs) { |
| 231 | containingDirectory := tspath.GetDirectoryPath(containingFile) |
| 232 | traceBuilder := r.newTraceBuilder() |
| 233 | |
| 234 | fromInferredTypesContainingFile := strings.HasSuffix(containingFile, InferredTypesContainingFile) |
| 235 | |
| 236 | cacheKey := typeRefDirectiveResolutionCacheKey{ |
| 237 | containingDirectory: containingDirectory, |
| 238 | typeReferenceName: typeReferenceDirectiveName, |
| 239 | resolutionMode: resolutionMode, |
| 240 | redirectConfigName: getRedirectConfigName(redirectedReference), |
| 241 | fromInferredTypesContainingFile: fromInferredTypesContainingFile, |
| 242 | } |
| 243 | |
| 244 | if traceBuilder == nil { |
| 245 | if cached, ok := r.typeRefDirectiveResolutionCache.Get(cacheKey); ok { |
| 246 | return cached, nil |
| 247 | } |
| 248 | } |
| 249 | |
| 250 | compilerOptions := GetCompilerOptionsWithRedirect(r.compilerOptions, redirectedReference) |
| 251 | |
| 252 | typeRoots, fromConfig := compilerOptions.GetEffectiveTypeRoots(r.host.GetCurrentDirectory()) |
| 253 | if traceBuilder != nil { |
| 254 | traceBuilder.write(diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2, typeReferenceDirectiveName, containingFile, strings.Join(typeRoots, ",")) |
| 255 | traceBuilder.traceResolutionUsingProjectReference(redirectedReference) |
| 256 | } |
| 257 | |
| 258 | state := newResolutionState(typeReferenceDirectiveName, containingDirectory, true /*isTypeReferenceDirective*/, resolutionMode, compilerOptions, redirectedReference, r, traceBuilder) |
| 259 | result := state.resolveTypeReferenceDirective(typeRoots, fromConfig, fromInferredTypesContainingFile) |
| 260 | |
| 261 | if traceBuilder != nil { |
| 262 | traceBuilder.traceTypeReferenceDirectiveResult(typeReferenceDirectiveName, result) |
| 263 | } |
| 264 | |
| 265 | r.typeRefDirectiveResolutionCache.Set(cacheKey, result) |
| 266 | |
| 267 | return result, traceBuilder.getTraces() |
| 268 | } |
| 269 | |
| 270 | func (r *Resolver) ResolveModuleName(moduleName string, containingFile string, resolutionMode core.ResolutionMode, redirectedReference ResolvedProjectReference) (*ResolvedModule, []DiagAndArgs) { |
| 271 | containingDirectory := tspath.GetDirectoryPath(containingFile) |
no test coverage detected