diff --git a/scripts/test.utils.ts b/scripts/test.utils.ts index ba8bdb4..f97c96b 100644 --- a/scripts/test.utils.ts +++ b/scripts/test.utils.ts @@ -23,13 +23,6 @@ export function captureError(fn: () => void) { } } -export function checkStack(error: Error) { - if (error.stack) { - return error.stack.indexOf('at') === error.stack.indexOf('at /'); - } - return true; -} - export function noop() { return; } diff --git a/src/helpers/error.ts b/src/helpers/error.ts index af5cfc9..f8ba1ff 100644 --- a/src/helpers/error.ts +++ b/src/helpers/error.ts @@ -5,19 +5,5 @@ export function assert(condition: boolean, msg: string) { } export function throwError(msg: string): void { - const error = new Error(`[axios-miniprogram]: ${msg}`); - cleanStack(error); - throw error; -} - -export function cleanStack(error: Error) { - const { stack } = error; - if (stack) { - const start = stack.indexOf('at'); - const end = stack.search(/at ([\w-_.]+:)?\//i); - if (start < end) { - const removed = stack.slice(start, end); - error.stack = stack.replace(removed, ''); - } - } + throw new Error(`[axios-miniprogram]: ${msg}`); } diff --git a/src/request/createError.ts b/src/request/createError.ts index 6cd715b..15ef9b3 100644 --- a/src/request/createError.ts +++ b/src/request/createError.ts @@ -1,4 +1,3 @@ -import { cleanStack } from '../helpers/error'; import { AxiosAdapterPlatformTask } from '../adpater/createAdapter'; import { AxiosRequestConfig, @@ -35,9 +34,7 @@ export function createError( response: AxiosErrorResponse, request: AxiosAdapterPlatformTask, ) { - const axiosError = new AxiosError(message, config, response, request); - cleanStack(axiosError); - return axiosError; + return new AxiosError(message, config, response, request); } export function isAxiosError(value: unknown): value is AxiosError { diff --git a/test/helpers/error.test.ts b/test/helpers/error.test.ts index 5b88823..a04f876 100644 --- a/test/helpers/error.test.ts +++ b/test/helpers/error.test.ts @@ -1,6 +1,5 @@ import { describe, test, expect } from 'vitest'; -import { captureError, checkStack } from 'scripts/test.utils'; -import { assert, throwError, cleanStack } from '@/helpers/error'; +import { assert, throwError } from '@/helpers/error'; describe('src/helpers/error.ts', () => { test('第一个参数为 true 时应该无事发生', () => { @@ -9,7 +8,6 @@ describe('src/helpers/error.ts', () => { test('第一个参数为 false 时应该抛出异常', () => { expect(() => assert(false, '')).toThrowError(); - expect(checkStack(captureError(() => assert(false, '')))).toBeTruthy(); }); test('应该抛出异常', () => { @@ -19,31 +17,5 @@ describe('src/helpers/error.ts', () => { expect(() => throwError('error')).toThrowErrorMatchingInlineSnapshot( '"[axios-miniprogram]: error"', ); - expect(checkStack(captureError(() => throwError('error')))).toBeTruthy(); - }); - - test('应该支持空错误栈', () => { - const ce = () => { - const error = new Error(); - error.stack = undefined; - return error; - }; - const error = ce(); - - cleanStack(error); - - expect(checkStack(error)).toBeTruthy(); - expect(error.stack).toBeUndefined(); - }); - - test('应该清掉多余的错误栈', () => { - const ce = () => new Error(); - const error = ce(); - - expect(checkStack(error)).toBeFalsy(); - - cleanStack(error); - - expect(checkStack(error)).toBeTruthy(); }); }); diff --git a/test/request/createError.test.ts b/test/request/createError.test.ts index b9b719e..0b1f29d 100644 --- a/test/request/createError.test.ts +++ b/test/request/createError.test.ts @@ -1,5 +1,4 @@ import { describe, test, expect } from 'vitest'; -import { checkStack } from 'scripts/test.utils'; import { createError, isAxiosError } from '@/request/createError'; describe('src/request/createError.ts', () => { @@ -11,7 +10,6 @@ describe('src/request/createError.ts', () => { expect(err.message).toBe('error'); expect(err.config).toBe(c); expect(err.response).toBe(r); - expect(checkStack(err)).toBeTruthy(); }); test('应该支持传递更多参数', () => {