@riddance/env
Version:
It slows you down, creates risks, increases maintainability burdens. So let's commit less of it.
38 lines • 5.93 kB
JavaScript
/* eslint-disable unicorn/no-null */
import { relative } from 'node:path';
import { fileURLToPath } from 'node:url';
import { install, wrapCallSite } from 'source-map-support';
install({
environment: 'node',
hookRequire: false,
});
if (!process.env.STACK_TRACE_FULL_PATH) {
const cwd = process.cwd();
Error.prepareStackTrace = (error, stack) => {
const errorString = `${error.name}: ${error.message}`;
const state = { nextPosition: null, curPosition: null };
const processedStack = [];
stack.toReversed().forEach(inner => {
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
const wrapped = wrapCallSite(inner, state);
const innerSourceUrl = wrapped.getScriptNameOrSourceURL?.bind(wrapped);
if (wrapped !== inner && innerSourceUrl) {
wrapped.getScriptNameOrSourceURL = function () {
const original = innerSourceUrl();
if (original.startsWith('file://')) {
return relative(cwd, fileURLToPath(original));
}
return original;
};
}
// eslint-disable-next-line @typescript-eslint/no-base-to-string
processedStack.push(wrapped.toString());
state.nextPosition = state.curPosition;
});
state.curPosition = state.nextPosition = null;
processedStack.reverse();
const newLine = '\n at ';
return `${errorString}${newLine}${processedStack.join(newLine)}`;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcC1zdXBwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlLW1hcC1zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUUxRCxPQUFPLENBQUM7SUFDSixXQUFXLEVBQUUsTUFBTTtJQUNuQixXQUFXLEVBQUUsS0FBSztDQUNyQixDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUN6QixLQUFLLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxXQUFXLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUVyRCxNQUFNLEtBQUssR0FBRyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFBO1FBQ3ZELE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQTtRQUNuQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLHFHQUFxRztZQUNyRyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsS0FBWSxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ2pELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDdEUsSUFBSSxPQUFPLEtBQUssS0FBSyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUN0QyxPQUFPLENBQUMsd0JBQXdCLEdBQUc7b0JBQy9CLE1BQU0sUUFBUSxHQUFHLGNBQWMsRUFBRSxDQUFBO29CQUNqQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDakMsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO29CQUNqRCxDQUFDO29CQUNELE9BQU8sUUFBUSxDQUFBO2dCQUNuQixDQUFDLENBQUE7WUFDTCxDQUFDO1lBQ0QsZ0VBQWdFO1lBQ2hFLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDdkMsS0FBSyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFBO1FBQzFDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUM3QyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFBO1FBQzNCLE9BQU8sR0FBRyxXQUFXLEdBQUcsT0FBTyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQTtJQUNwRSxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdW5pY29ybi9uby1udWxsICovXG5pbXBvcnQgeyByZWxhdGl2ZSB9IGZyb20gJ25vZGU6cGF0aCdcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICdub2RlOnVybCdcbmltcG9ydCB7IGluc3RhbGwsIHdyYXBDYWxsU2l0ZSB9IGZyb20gJ3NvdXJjZS1tYXAtc3VwcG9ydCdcblxuaW5zdGFsbCh7XG4gICAgZW52aXJvbm1lbnQ6ICdub2RlJyxcbiAgICBob29rUmVxdWlyZTogZmFsc2UsXG59KVxuXG5pZiAoIXByb2Nlc3MuZW52LlNUQUNLX1RSQUNFX0ZVTExfUEFUSCkge1xuICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IChlcnJvciwgc3RhY2spID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JTdHJpbmcgPSBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWBcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHsgbmV4dFBvc2l0aW9uOiBudWxsLCBjdXJQb3NpdGlvbjogbnVsbCB9XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZFN0YWNrOiBzdHJpbmdbXSA9IFtdXG4gICAgICAgIHN0YWNrLnRvUmV2ZXJzZWQoKS5mb3JFYWNoKGlubmVyID0+IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFyZ3VtZW50LCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVkID0gd3JhcENhbGxTaXRlKGlubmVyIGFzIGFueSwgc3RhdGUpXG4gICAgICAgICAgICBjb25zdCBpbm5lclNvdXJjZVVybCA9IHdyYXBwZWQuZ2V0U2NyaXB0TmFtZU9yU291cmNlVVJMPy5iaW5kKHdyYXBwZWQpXG4gICAgICAgICAgICBpZiAod3JhcHBlZCAhPT0gaW5uZXIgJiYgaW5uZXJTb3VyY2VVcmwpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVkLmdldFNjcmlwdE5hbWVPclNvdXJjZVVSTCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBpbm5lclNvdXJjZVVybCgpXG4gICAgICAgICAgICAgICAgICAgIGlmIChvcmlnaW5hbC5zdGFydHNXaXRoKCdmaWxlOi8vJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWxhdGl2ZShjd2QsIGZpbGVVUkxUb1BhdGgob3JpZ2luYWwpKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYmFzZS10by1zdHJpbmdcbiAgICAgICAgICAgIHByb2Nlc3NlZFN0YWNrLnB1c2god3JhcHBlZC50b1N0cmluZygpKVxuICAgICAgICAgICAgc3RhdGUubmV4dFBvc2l0aW9uID0gc3RhdGUuY3VyUG9zaXRpb25cbiAgICAgICAgfSlcbiAgICAgICAgc3RhdGUuY3VyUG9zaXRpb24gPSBzdGF0ZS5uZXh0UG9zaXRpb24gPSBudWxsXG4gICAgICAgIHByb2Nlc3NlZFN0YWNrLnJldmVyc2UoKVxuICAgICAgICBjb25zdCBuZXdMaW5lID0gJ1xcbiAgICBhdCAnXG4gICAgICAgIHJldHVybiBgJHtlcnJvclN0cmluZ30ke25ld0xpbmV9JHtwcm9jZXNzZWRTdGFjay5qb2luKG5ld0xpbmUpfWBcbiAgICB9XG59XG4iXX0=