Axios plugin that provides better stack traces for axios errors
Axios plugin that provides better stack traces for axios errors.
Check this axios issue for more details.
NPM
npm install axios-better-stacktrace
Yarn
yarn add axios-better-stacktrace
It was tested with axios 0.21.0
.
// CommonJS
// const axiosBetterStacktrace = require('axios-better-stacktrace').default;
// ES6
import axiosBetterStacktrace from 'axios-better-stacktrace';
// use it before any other interceptors
axiosBetterStacktrace(axiosAgent);
// when using promises response error will get an enhanced stack trace automatically
axiosAgent.get('https://npmjs.com/<not-found>/').catch(enhancedError => console.error(enhancedError));
// or using async/await
(async () => {
try {
await axiosAgent.get('https://npmjs.com/<not-found>/');
} catch (enhancedError) {
console.error(enhancedError);
}
})();
// or using a response interceptor and an error callback (e.g. could be useful with a logging middleware)
axiosAgent.interceptors.response.use(response => response, enhancedError => {
console.error(enhancedError);
return result;
});
// you can restore original agent behavior if needed
const restoreAgent = axiosBetterStacktrace(axiosAgent);
// some code here...
restoreAgent && restoreAgent();
See also demo.
Name | Type | Default | Description |
---|---|---|---|
errorMsg | String |
Axios Better Stacktrace |
Error message to show next to the original one in the output. |
Default axios error without an axios-better-stacktrace
plugin:
Error: Request failed with status code 404
at createError (./node_modules/axios/lib/core/createError.js:16:15)
at settle (./node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (./node_modules/axios/lib/adapters/http.js:244:11)
at IncomingMessage.emit (node:events:388:22)
at IncomingMessage.EventEmitter.emit (node:domain:470:12)
at endReadableNT (node:internal/streams/readable:1294:12)
at processTicksAndRejections (node:internal/process/task_queues:80:21)
Enhanced axios error with an axios-better-stacktrace
plugin (run yarn demo
to see):
Error: Request failed with status code 404
at createError (./node_modules/axios/lib/core/createError.js:16:15)
at settle (./node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (./node_modules/axios/lib/adapters/http.js:244:11)
at IncomingMessage.emit (node:events:388:22)
at IncomingMessage.EventEmitter.emit (node:domain:470:12)
at endReadableNT (node:internal/streams/readable:1294:12)
at processTicksAndRejections (node:internal/process/task_queues:80:21)
Error: Axios Better Stacktrace
at Function.axiosBetterStacktraceMethodProxy [as get] (./src/axiosBetterStacktrace.ts:167:15)
at getNpmPage (./demo/index.ts:10:35) <---- this is what usually useful to know for further debugging and this plugin adds 🙂
at ./demo/index.ts:13:9
at step (./demo/index.ts:33:23)
at Object.next (./demo/index.ts:14:53)
at ./demo/index.ts:8:71
at new Promise (<anonymous>)
at __awaiter (./demo/index.ts:4:12)
at ./demo/index.ts:12:2
at Object.<anonymous> (./demo/index.ts:16:3)