2.0.0 • Published 2 years ago

@leocode/better-axios-error v2.0.0

Weekly downloads
18
License
MIT
Repository
-
Last release
2 years ago

better-axios-errors

Enhance your axios errors in a simple way

Typical axios error looks like this:

Error: Request failed with status code 404
  at createError (/home/leocode/Leocode/better-axios-error/node_modules/axios/lib/core/createError.js:16:15)
  at settle (/home/leocode/Leocode/better-axios-error/node_modules/axios/lib/core/settle.js:17:12)
  at IncomingMessage.handleStreamEnd (/home/leocode/Leocode/better-axios-error/node_modules/axios/lib/adapters/http.js:244:11)
  at IncomingMessage.emit (events.js:327:22)
  at endReadableNT (internal/streams/readable.js:1327:12)
  at processTicksAndRejections (internal/process/task_queues.js:80:21)

Without any useful information about where in the code the error happened.

After adding simple

const axios = enhanceAxios(Axios.create())

Calling axios with errors results in

Error: Request failed with status code 404
    at createError (/home/leocode/Leocode/better-axios-error/node_modules/axios/lib/core/createError.js:16:15)
    at settle (/home/leocode/Leocode/better-axios-error/node_modules/axios/lib/core/settle.js:17:12)
    at IncomingMessage.handleStreamEnd (/home/leocode/Leocode/better-axios-error/node_modules/axios/lib/adapters/http.js:244:11)
    at IncomingMessage.emit (events.js:327:22)
    at endReadableNT (internal/streams/readable.js:1327:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Thrown at:
    at async hahaNobodyWillSeeMe (/home/leocode/Leocode/better-axios-error/tests/test.js:6:3)
    at async /home/leocode/Leocode/better-axios-error/tests/test.js:16:3

So the stack trace of code that caused a problem is included, and we see that hahaNobodyWillSeeMe method was responsible!

Installation

yarn add @leocode/better-axios-errors axios

or

npm install --save @leocode/better-axios-errors axios

Usage

Instead of importing axios directly from library, create a file, that will export enhanced one!

import axios from 'axios';
import { enhanceAxios } from '@leocode/better-axios-errors';

export const enhancedAxios = enhanceAxios(axios.create());

Now you can use enhancedAxios as normal axios instance.

Also, if you want to import enhanced axios instance, you can do it directly:

import { axios } from '@leocode/better-axios-errors';