(error, fileMapping)
| 414 | * @returns {Error} - Error with fixed stack trace |
| 415 | */ |
| 416 | export function fixErrorStack(error, fileMapping) { |
| 417 | if (!error.stack || !fileMapping) return error |
| 418 | |
| 419 | let stack = error.stack |
| 420 | |
| 421 | // Create reverse mapping (temp.mjs -> original.ts) |
| 422 | const reverseMap = new Map() |
| 423 | for (const [tsFile, mjsFile] of fileMapping.entries()) { |
| 424 | reverseMap.set(mjsFile, tsFile) |
| 425 | } |
| 426 | |
| 427 | // Replace all temp.mjs references with original .ts files |
| 428 | for (const [mjsFile, tsFile] of reverseMap.entries()) { |
| 429 | const mjsPattern = mjsFile.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') |
| 430 | stack = stack.replace(new RegExp(mjsPattern, 'g'), tsFile) |
| 431 | } |
| 432 | |
| 433 | error.stack = stack |
| 434 | return error |
| 435 | } |
| 436 | |
| 437 | /** |
| 438 | * Clean up temporary transpiled files |
no test coverage detected