diff --git a/index.d.ts b/index.d.ts index 4c7b53ef5b..a4a20e984c 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 05f0fc493c..02fbbd6a99 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 d78dc9a35e..53f708badd 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 0b7c936cb1..f8e24d108e 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() {