( host: ts.CompilerHost, replacements: Record<string, string>, moduleResolutionCache?: ts.ModuleResolutionCache, )
| 191 | } |
| 192 | |
| 193 | export function augmentHostWithReplacements( |
| 194 | host: ts.CompilerHost, |
| 195 | replacements: Record<string, string>, |
| 196 | moduleResolutionCache?: ts.ModuleResolutionCache, |
| 197 | ): void { |
| 198 | if (Object.keys(replacements).length === 0) { |
| 199 | return; |
| 200 | } |
| 201 | |
| 202 | const normalizedReplacements: Record<string, string> = {}; |
| 203 | for (const [key, value] of Object.entries(replacements)) { |
| 204 | normalizedReplacements[normalizePath(key)] = normalizePath(value); |
| 205 | } |
| 206 | |
| 207 | const tryReplace = (resolvedModule: ts.ResolvedModule | undefined) => { |
| 208 | const replacement = resolvedModule && normalizedReplacements[resolvedModule.resolvedFileName]; |
| 209 | if (replacement) { |
| 210 | return { |
| 211 | resolvedFileName: replacement, |
| 212 | isExternalLibraryImport: /[/\\]node_modules[/\\]/.test(replacement), |
| 213 | }; |
| 214 | } else { |
| 215 | return resolvedModule; |
| 216 | } |
| 217 | }; |
| 218 | |
| 219 | augmentResolveModuleNames(host, tryReplace, moduleResolutionCache); |
| 220 | } |
| 221 | |
| 222 | export function augmentHostWithSubstitutions( |
| 223 | host: ts.CompilerHost, |
no test coverage detected