Skip to content
This repository was archived by the owner on Aug 12, 2025. It is now read-only.

Commit 8513634

Browse files
committed
Merge branch 'master' into feat/fast-login
2 parents d72edda + 905ae53 commit 8513634

File tree

8 files changed

+47
-39
lines changed

8 files changed

+47
-39
lines changed

example/xconsole-example/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "xconsole",
3-
"version": "2.3.42",
3+
"version": "2.3.43",
44
"description": "",
55
"main": "src/index.js",
66
"scripts": {
@@ -20,7 +20,7 @@
2020
],
2121
"author": "",
2222
"dependencies": {
23-
"@alicloud/xconsole": "^2.3.42",
23+
"@alicloud/xconsole": "^2.3.43",
2424
"lodash": "^4.17.4",
2525
"moment": "^2.22.1",
2626
"prop-types": "^15.6.1",

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
"tagVersionPrefix": ""
1414
}
1515
},
16-
"version": "2.3.42",
16+
"version": "2.3.43",
1717
"lerna": "2.11.0"
1818
}

packages/console-utils/xconsole-service/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
22
"name": "@alicloud/xconsole-service",
3-
"version": "2.3.42",
3+
"version": "2.3.43",
44
"main": "lib/index.js",
55
"module": "es/index.js",
66
"types": "lib/index.d.ts",
77
"scripts": {
8-
"prepublish": "rm -rf ./lib ./es ./dist && npm build && npm run babel && npm run babel:esm",
8+
"prepublish": "rm -rf ./lib ./es ./dist && npm run build && npm run babel && npm run babel:esm",
99
"test": "jest --no-cache --env=jest-environment-jsdom-sixteen",
10-
"build": "breezr build --engine rollup",
10+
"build": "breezr build --engine webpack",
1111
"start": "breezr start-storybook",
1212
"babel": "breezr build --engine babel && tsc --emitDeclarationOnly -d true --declarationDir ./lib",
1313
"babel:esm": "breezr build --engine babel --es-module"

packages/console-utils/xconsole-service/src/interceptors/consoleInterceptor/response.ts

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { IError, IResponse, IResponseData } from '../../types';
33
import { ApiType } from '../../const/index';
44
import { AxiosResponse } from 'axios';
55

6-
76
const injectErrorPromptAdaptor = (error: IError, response: AxiosResponse) => {
87
error.response = response;
98
error.code = response.data?.code;
@@ -21,17 +20,14 @@ function consoleResponseInterceptor(
2120
): IResponse<IResponseData> {
2221
const {
2322
data: apiResponseData,
24-
config: { apiType, ignoreError, risk = {} },
23+
config: { apiType, ignoreError, disableThrowResponseError, risk = {} },
2524
} = response;
2625

2726
if (apiType === ApiType.custom) return response;
2827

29-
if (
30-
// Single api succeeded -> code 200, withFailedRequest undefined
31-
// Multi api succeeded -> code 200, withFailedRequest false
32-
apiResponseData.code === '200' &&
33-
apiResponseData.withFailedRequest !== true
34-
) {
28+
// Single api succeeded -> code 200, withFailedRequest undefined
29+
// Multi api succeeded -> code 200, withFailedRequest false
30+
if (apiResponseData.code === '200' && apiResponseData.withFailedRequest !== true ) {
3531
return response;
3632
}
3733

@@ -41,36 +37,29 @@ function consoleResponseInterceptor(
4137
return response;
4238
}
4339

44-
if (
45-
// Multi api with failed request
46-
apiResponseData.code === '200' &&
47-
apiResponseData.withFailedRequest === true
48-
) {
49-
const error: IError = new Error('Multi OpenAPI calls with failed request.');
50-
injectErrorPromptAdaptor(error, response);
51-
if (ignoreError !== true) {
52-
throw error;
53-
}
54-
return response;
40+
let error: IError = new Error('OpenAPI failed without a message.');
41+
42+
// Multi api with failed request
43+
if (apiResponseData.code === '200' && apiResponseData.withFailedRequest === true ) {
44+
error = new Error('Multi OpenAPI calls with failed request.');
5545
}
5646

47+
// Single api failed with an error message
5748
if (apiResponseData.message) {
58-
// Single api failed with an error message
59-
const error: IError = new Error(apiResponseData.message);
60-
injectErrorPromptAdaptor(error, response);
61-
if (ignoreError !== true) {
62-
throw error;
63-
}
64-
return response;
49+
error = new Error(apiResponseData.message);
6550
}
66-
// Single api failed without an error message
67-
const error: IError = new Error('OpenAPI failed without a message.');
51+
52+
// 适配 error-proxy
6853
injectErrorPromptAdaptor(error, response);
6954

70-
if (ignoreError !== true) {
55+
// 历史有个 ignoreError 的配置 已经被 deprecate 掉了,为了兼容历史逻辑。本身是 widget 里面给弹窗使用的
56+
// 新的参数都是 disableThrowResponseError, 在设置了 disableThrowResponseError 会不 throw error
57+
if (!disableThrowResponseError && ignoreError !== true) {
7158
throw error;
7259
}
7360

61+
response.config.rawResponseData = disableThrowResponseError;
62+
7463
return response;
7564
}
7665

packages/console-utils/xconsole-service/src/service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ const createDefaultService = <R, P>(requestInstance: AxiosInstance, product: str
7272
risk: opts.risk,
7373
} as AxiosRequestConfig);
7474

75-
return opts?.rawResponseData ? res.data : res.data.data;
75+
//@ts-ignore
76+
return res.config.rawResponseData ? res.data : res.data.data;
7677
};
7778
}
7879

packages/console-utils/xconsole-service/src/types.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ export interface IOptions extends AxiosRequestConfig {
4545
mock?: boolean;
4646
region?: string;
4747
rawResponseData?: boolean;
48+
/**
49+
* 在请求失败的时候不 throw Error 而是直接返回请求对象
50+
*/
51+
disableThrowResponseError?: boolean;
4852
throwDoubleConfirmError?: boolean;
4953
}
5054

packages/console-utils/xconsole-service/stories/index.stories.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,21 @@ storiesOf('XConsole Service', module)
4545
})
4646
.add('createService', () => {
4747
useEffect(() => {
48-
createService('xxxx', 'test', {apiType: ApiType.open})({ xxxx:1 })
48+
(async () => {
49+
try {
50+
const a = await createService('xxxx', 'test', {apiType: ApiType.open, disableThrowResponseError: true})({ xxxx:1 })
51+
console.log('a', a)
52+
const b = await createService('xxxx', 'test', {apiType: ApiType.open, ignoreError: true})({ xxxx:1 })
53+
console.log('b', b)
54+
const c = await createService('ecs', 'DescribeInstances', {apiType: ApiType.open, rawResponseData: true})({ xxxx:1 })
55+
console.log('c', c)
56+
const e = await createService('ecs', 'DescribeInstances', {apiType: ApiType.open})({ xxxx:1 })
57+
console.log('e', e)
58+
await createService('xxxx', 'test', {apiType: ApiType.open})({ xxxx:1 })
59+
} catch (e) {
60+
console.error('d', e)
61+
}
62+
})()
4963
});
5064

5165
return <div></div>

packages/xconsole/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@alicloud/xconsole",
3-
"version": "2.3.42",
3+
"version": "2.3.43",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/aliyun/alibabacloud-console-design.git"
@@ -76,7 +76,7 @@
7676
"@alicloud/xconsole-rc-page-header": "^2.3.30",
7777
"@alicloud/xconsole-rc-result": "^2.3.30",
7878
"@alicloud/xconsole-rc-step": "^1.0.0-beta.1",
79-
"@alicloud/xconsole-service": "^2.3.42",
79+
"@alicloud/xconsole-service": "^2.3.43",
8080
"babel-preset-breezr-wind": "^1.0.0-rc.7",
8181
"commander": "^2.20.0",
8282
"dva": "2.6.0-beta.20",

0 commit comments

Comments
 (0)