Utilities and polyfill for node.js errors
API reference: https://jchip.github.io/error
import { cleanErrorStack } from "@jchip/error";
try {
require("oops");
} catch (err) {
console.log(cleanErrorStack(err));
}
Output:
Error: Cannot find module 'oops'
Require stack:
- /Users/joel/error/test/samples.ts
at Object.<anonymous> (test/samples.js:4:3)
vs:
Error: Cannot find module 'oops'
Require stack:
- /Users/joel/error/test/samples.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:94:18)
at Object.<anonymous> (/Users/joel/error/test/samples.js:4:3)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
Generate stack with aggregate errors from AggregateError
Example:
import { aggregateErrorStack, AggregateError } from "@jchip/error";
console.log(aggregateErrorStack(new AggregateError([new Error("error 1")], "test")));
Output:
AggregateError: test
at Object.<anonymous> (/Users/joel/error/test/samples.js:3:33)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47
Error: error 1
at Object.<anonymous> (/Users/joel/error/test/samples.js:3:53)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47
- Polyfill for AggregateError
- node.js 15+ has built-in AggregateError
Example with cleanErrorStack
:
import { cleanErrorStack, AggregateError } from "@jchip/error";
try {
require("bad");
} catch (err) {
console.log(cleanErrorStack(new AggregateError([err], "require failed")));
}
Output:
AggregateError: require failed
at Object.<anonymous> (test/samples.js:12:31)
Error: Cannot find module 'bad'
Require stack:
- /Users/joel/error/test/samples.js
at Object.<anonymous> (test/samples.js:10:3)
vs:
AggregateError: require failed
at Object.<anonymous> (/Users/joel/error/test/samples.js:12:15)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47
Error: Cannot find module 'bad'
Require stack:
- /Users/joel/error/test/samples.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:94:18)
at Object.<anonymous> (/Users/joel/error/test/samples.js:10:3)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)