( name string, containingDirectory string, isTypeReferenceDirective bool, resolutionMode core.ResolutionMode, compilerOptions *core.CompilerOptions, redirectedReference ResolvedProjectReference, resolver *Resolver, traceBuilder *tracer, )
| 97 | } |
| 98 | |
| 99 | func newResolutionState( |
| 100 | name string, |
| 101 | containingDirectory string, |
| 102 | isTypeReferenceDirective bool, |
| 103 | resolutionMode core.ResolutionMode, |
| 104 | compilerOptions *core.CompilerOptions, |
| 105 | redirectedReference ResolvedProjectReference, |
| 106 | resolver *Resolver, |
| 107 | traceBuilder *tracer, |
| 108 | ) *resolutionState { |
| 109 | state := &resolutionState{ |
| 110 | name: name, |
| 111 | containingDirectory: containingDirectory, |
| 112 | compilerOptions: GetCompilerOptionsWithRedirect(compilerOptions, redirectedReference), |
| 113 | resolver: resolver, |
| 114 | tracer: traceBuilder, |
| 115 | } |
| 116 | |
| 117 | if isTypeReferenceDirective { |
| 118 | state.extensions = extensionsDeclaration |
| 119 | } else if compilerOptions.NoDtsResolution == core.TSTrue { |
| 120 | state.extensions = extensionsImplementationFiles |
| 121 | } else { |
| 122 | state.extensions = extensionsTypeScript | extensionsJavaScript | extensionsDeclaration |
| 123 | } |
| 124 | |
| 125 | if !isTypeReferenceDirective && compilerOptions.GetResolveJsonModule() { |
| 126 | state.extensions |= extensionsJson |
| 127 | } |
| 128 | |
| 129 | switch compilerOptions.GetModuleResolutionKind() { |
| 130 | case core.ModuleResolutionKindNode16: |
| 131 | state.features = NodeResolutionFeaturesNode16Default |
| 132 | state.esmMode = resolutionMode == core.ModuleKindESNext |
| 133 | state.conditions = GetConditions(compilerOptions, resolutionMode) |
| 134 | case core.ModuleResolutionKindNodeNext: |
| 135 | state.features = NodeResolutionFeaturesNodeNextDefault |
| 136 | state.esmMode = resolutionMode == core.ModuleKindESNext |
| 137 | state.conditions = GetConditions(compilerOptions, resolutionMode) |
| 138 | case core.ModuleResolutionKindBundler: |
| 139 | state.features = getNodeResolutionFeatures(compilerOptions) |
| 140 | state.conditions = GetConditions(compilerOptions, resolutionMode) |
| 141 | } |
| 142 | return state |
| 143 | } |
| 144 | |
| 145 | func GetCompilerOptionsWithRedirect(compilerOptions *core.CompilerOptions, redirectedReference ResolvedProjectReference) *core.CompilerOptions { |
| 146 | if redirectedReference == nil { |
no test coverage detected