From a02a4c7e4f9257b430cf3fda9902882e5b0e6ae2 Mon Sep 17 00:00:00 2001 From: zjx0905 <954270063@qq.com> Date: Fri, 7 Apr 2023 21:24:23 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B7=BB=E5=8A=A0=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E7=9A=84=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/adapter.ts | 38 ++++++++++++++------------------------ src/core/request.ts | 13 ++++--------- test/core/request.test.ts | 2 +- 3 files changed, 19 insertions(+), 34 deletions(-) diff --git a/src/adapter.ts b/src/adapter.ts index f95a157..79bc77e 100644 --- a/src/adapter.ts +++ b/src/adapter.ts @@ -252,31 +252,21 @@ export function createAdapter(platform: AxiosPlatform): AxiosAdapter { } function transformResult(result: AnyObject): void { - result.status = result.status || isUndefined(result.data) ? 400 : 200; - if (result.statusCode) { - result.status = result.statusCode; - delete result.statusCode; - } + result.status = + result.status ?? result.statusCode ?? isUndefined(result.data) + ? 400 + : 200; + result.statusText = + result.status === 200 + ? 'OK' + : result.status === 400 + ? 'Bad Adapter' + : result.errMsg; + result.headers = result.headers || result.header; - if (isUndefined(result.statusText)) { - result.statusText = - result.status === 200 - ? 'OK' - : result.status === 400 - ? 'Bad Adapter' - : ''; - } - - result.headers = result.headers || {}; - if (result.header) { - result.headers = result.header; - delete result.header; - } - - if (result.errMsg) { - result.statusText = result.errMsg; - delete result.errMsg; - } + if (result.statusCode) delete result.statusCode; + if (result.errMsg) delete result.errMsg; + if (result.header) delete result.header; } function transformOptions( diff --git a/src/core/request.ts b/src/core/request.ts index c6d6d7c..70682c1 100644 --- a/src/core/request.ts +++ b/src/core/request.ts @@ -60,13 +60,10 @@ export function request( const response = _ as AxiosResponse; response.config = config; response.request = adapterTask; - if ( - !isFunction(config.validateStatus) || - config.validateStatus(response.status) - ) { + if (config.validateStatus?.(response.status) ?? true) { resolve(response); } else { - catchError('请求失败', response); + catchError('validate status fail', response); } } @@ -75,7 +72,7 @@ export function request( responseError.isFail = true; responseError.config = config; responseError.request = adapterTask; - catchError('网络错误', responseError); + catchError(responseError.statusText, responseError); } function catchError( @@ -95,9 +92,7 @@ export function request( if (isPlainObject(adapterTask)) { tryToggleProgressUpdate(adapterConfig, adapterTask.offProgressUpdate); - if (isFunction(adapterTask.abort)) { - adapterTask.abort(); - } + adapterTask?.abort?.(); } reject(reason); diff --git a/test/core/request.test.ts b/test/core/request.test.ts index 0798355..a6fa76b 100644 --- a/test/core/request.test.ts +++ b/test/core/request.test.ts @@ -65,6 +65,6 @@ describe('src/core/request.ts', () => { url: '/test', method: 'get', }), - ).rejects.toThrowErrorMatchingInlineSnapshot('"网络错误"'); + ).rejects.toThrowErrorMatchingInlineSnapshot('"FAIL"'); }); });