From b681e919c40fbf7abd109d0cb4f0caf2fd5553e5 Mon Sep 17 00:00:00 2001 From: Ayush Gupta Date: Mon, 20 Aug 2018 14:32:23 +0530 Subject: [PATCH] Adding isAxiosError flag to errors thrown by axios (#1419) --- index.d.ts | 1 + lib/core/enhanceError.js | 3 +++ test/specs/core/createError.spec.js | 3 ++- test/specs/core/enhanceError.spec.js | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index 4c7b53e..a4a20e9 100644 --- a/index.d.ts +++ b/index.d.ts @@ -81,6 +81,7 @@ export interface AxiosError extends Error { code?: string; request?: any; response?: AxiosResponse; + isAxiosError: boolean; } export interface AxiosPromise extends Promise> { diff --git a/lib/core/enhanceError.js b/lib/core/enhanceError.js index 05f0fc4..02fbbd6 100644 --- a/lib/core/enhanceError.js +++ b/lib/core/enhanceError.js @@ -15,8 +15,11 @@ module.exports = function enhanceError(error, config, code, request, response) { if (code) { error.code = code; } + error.request = request; error.response = response; + error.isAxiosError = true; + error.toJSON = function() { return { // Standard diff --git a/test/specs/core/createError.spec.js b/test/specs/core/createError.spec.js index d78dc9a..53f708b 100644 --- a/test/specs/core/createError.spec.js +++ b/test/specs/core/createError.spec.js @@ -1,7 +1,7 @@ var createError = require('../../../lib/core/createError'); describe('core::createError', function() { - it('should create an Error with message, config, code, request and response', function() { + it('should create an Error with message, config, code, request, response and isAxiosError', function() { var request = { path: '/foo' }; var response = { status: 200, data: { foo: 'bar' } }; var error = createError('Boom!', { foo: 'bar' }, 'ESOMETHING', request, response); @@ -11,6 +11,7 @@ describe('core::createError', function() { expect(error.code).toBe('ESOMETHING'); expect(error.request).toBe(request); expect(error.response).toBe(response); + expect(error.isAxiosError).toBe(true); }); it('should create an Error that can be serialized to JSON', function() { // Attempting to serialize request and response results in diff --git a/test/specs/core/enhanceError.spec.js b/test/specs/core/enhanceError.spec.js index 0b7c936..f8e24d1 100644 --- a/test/specs/core/enhanceError.spec.js +++ b/test/specs/core/enhanceError.spec.js @@ -11,6 +11,7 @@ describe('core::enhanceError', function() { expect(error.code).toBe('ESOMETHING'); expect(error.request).toBe(request); expect(error.response).toBe(response); + expect(error.isAxiosError).toBe(true); }); it('should return error', function() {