axios-better-stacktrace
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.1 • Public • Published

    axios-better-stacktrace

    Axios plugin that provides better stack traces for axios errors.

    Check this axios issue for more details.

    npm npm ci npm

    Installation

    NPM

    npm install axios-better-stacktrace

    Yarn

    yarn add axios-better-stacktrace

    Note

    It was tested with axios 0.21.0.

    Usage

    // 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.

    Options

    Name Type Default Description
    errorMsg String Axios Better Stacktrace Error message to show next to the original one in the output.

    Example

    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)
        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)
    

    Install

    npm i axios-better-stacktrace

    DownloadsWeekly Downloads

    8,412

    Version

    2.1.1

    License

    MIT

    Unpacked Size

    27 kB

    Total Files

    9

    Last publish

    Collaborators

    • svsool