rxtutils 1.1.4-beta.15 → 1.1.4-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,13 +2,13 @@
2
2
  * IndexedDB 存储类
3
3
  * 提供了对 IndexedDB 数据库操作的简单封装
4
4
  */
5
- var IndexedDBStorage = /** @class */ (function () {
5
+ class IndexedDBStorage {
6
6
  /**
7
7
  * 构造函数
8
8
  * @param dbName 数据库名称
9
9
  * @param storeName 存储对象名称
10
10
  */
11
- function IndexedDBStorage(dbName, storeName) {
11
+ constructor(dbName, storeName) {
12
12
  /** 数据库连接实例 */
13
13
  this.db = null;
14
14
  this.dbName = dbName;
@@ -20,28 +20,26 @@ var IndexedDBStorage = /** @class */ (function () {
20
20
  * @private
21
21
  * @returns Promise<IDBDatabase> 数据库连接实例
22
22
  */
23
- IndexedDBStorage.prototype._open = function () {
24
- var _this = this;
25
- return new Promise(function (resolve, reject) {
26
- if (_this.db) {
27
- resolve(_this.db);
23
+ _open() {
24
+ return new Promise((resolve, reject) => {
25
+ if (this.db) {
26
+ resolve(this.db);
28
27
  return;
29
28
  }
30
- var request = indexedDB.open(_this.dbName);
31
- request.onupgradeneeded = function (event) {
32
- var db = event.target.result;
33
- db.createObjectStore(_this.storeName, { keyPath: 'key' });
29
+ const request = indexedDB.open(this.dbName);
30
+ request.onupgradeneeded = (event) => {
31
+ const db = event.target.result;
32
+ db.createObjectStore(this.storeName, { keyPath: 'key' });
34
33
  };
35
- request.onerror = function () {
36
- var _a;
37
- reject("IndexedDB open request error: ".concat((_a = request.error) === null || _a === void 0 ? void 0 : _a.message));
34
+ request.onerror = () => {
35
+ reject(`IndexedDB open request error: ${request.error?.message}`);
38
36
  };
39
- request.onsuccess = function (event) {
40
- _this.db = event.target.result;
41
- resolve(_this.db);
37
+ request.onsuccess = (event) => {
38
+ this.db = event.target.result;
39
+ resolve(this.db);
42
40
  };
43
41
  });
44
- };
42
+ }
45
43
  /**
46
44
  * 获取存储对象
47
45
  * @param mode 事务模式,默认为只读模式
@@ -50,14 +48,12 @@ var IndexedDBStorage = /** @class */ (function () {
50
48
  * @private
51
49
  * @returns Promise<IDBObjectStore> 存储对象实例
52
50
  */
53
- IndexedDBStorage.prototype._getStore = function (mode) {
54
- var _this = this;
55
- if (mode === void 0) { mode = 'readonly'; }
56
- return this._open().then(function (db) {
57
- var transaction = db.transaction(_this.storeName, mode);
58
- return transaction.objectStore(_this.storeName);
51
+ _getStore(mode = 'readonly') {
52
+ return this._open().then((db) => {
53
+ const transaction = db.transaction(this.storeName, mode);
54
+ return transaction.objectStore(this.storeName);
59
55
  });
60
- };
56
+ }
61
57
  /**
62
58
  * 设置键值对
63
59
  * @param key 键名
@@ -65,15 +61,15 @@ var IndexedDBStorage = /** @class */ (function () {
65
61
  * @returns Promise<void> 存储操作的结果
66
62
  * @throws 当存储操作失败时抛出错误
67
63
  */
68
- IndexedDBStorage.prototype.setItem = function (key, value) {
69
- return this._getStore('readwrite').then(function (store) {
70
- return new Promise(function (resolve, reject) {
71
- var request = store.put({ key: key, value: value });
72
- request.onsuccess = function () { return resolve(); };
73
- request.onerror = function () { var _a; return reject("Could not set the item: ".concat((_a = request.error) === null || _a === void 0 ? void 0 : _a.message)); };
64
+ setItem(key, value) {
65
+ return this._getStore('readwrite').then((store) => {
66
+ return new Promise((resolve, reject) => {
67
+ const request = store.put({ key, value });
68
+ request.onsuccess = () => resolve();
69
+ request.onerror = () => reject(`Could not set the item: ${request.error?.message}`);
74
70
  });
75
71
  });
76
- };
72
+ }
77
73
  /**
78
74
  * 获取键对应的值
79
75
  * @param key 要获取的键名
@@ -81,18 +77,15 @@ var IndexedDBStorage = /** @class */ (function () {
81
77
  * @throws 当获取操作失败时抛出错误
82
78
  * @template T 存储值的类型,默认为 any
83
79
  */
84
- IndexedDBStorage.prototype.getItem = function (key) {
85
- return this._getStore().then(function (store) {
86
- return new Promise(function (resolve, reject) {
87
- var request = store.get(key);
88
- request.onsuccess = function () {
89
- return resolve(request.result ? request.result.value : undefined);
90
- };
91
- request.onerror = function () { var _a; return reject("Could not get the item: ".concat((_a = request.error) === null || _a === void 0 ? void 0 : _a.message)); };
80
+ getItem(key) {
81
+ return this._getStore().then((store) => {
82
+ return new Promise((resolve, reject) => {
83
+ const request = store.get(key);
84
+ request.onsuccess = () => resolve(request.result ? request.result.value : undefined);
85
+ request.onerror = () => reject(`Could not get the item: ${request.error?.message}`);
92
86
  });
93
87
  });
94
- };
95
- return IndexedDBStorage;
96
- }());
88
+ }
89
+ }
97
90
 
98
91
  export { IndexedDBStorage };
@@ -7,27 +7,22 @@ import { useState, useCallback, useMemo } from 'react';
7
7
  * @param param onChange 值改变时的回调
8
8
  * @returns value: 组件应该采用的值,onChange:值改变时的回调,处理非受控值与向父组件传递值的逻辑
9
9
  */
10
- function useCombineControlValue(_a, resolveFn) {
11
- var props = _a.props, _b = _a.valueKey, valueKey = _b === void 0 ? 'value' : _b, defaultValue = _a.defaultValue, onChange = _a.onChange;
12
- var _c = props, _d = valueKey, value = _c[_d];
13
- var hasValue = Object.prototype.hasOwnProperty.call(props, valueKey);
14
- var _e = useState(value !== null && value !== void 0 ? value : defaultValue), internalValue = _e[0], setInternalValue = _e[1];
15
- var handleChange = useCallback(function () {
16
- var params = [];
17
- for (var _i = 0; _i < arguments.length; _i++) {
18
- params[_i] = arguments[_i];
19
- }
20
- var realNextVal;
10
+ function useCombineControlValue({ props, valueKey = 'value', defaultValue, onChange }, resolveFn) {
11
+ const { [valueKey]: value } = props;
12
+ const hasValue = Object.prototype.hasOwnProperty.call(props, valueKey);
13
+ const [internalValue, setInternalValue] = useState(value ?? defaultValue);
14
+ const handleChange = useCallback((...params) => {
15
+ let realNextVal;
21
16
  if (typeof resolveFn === 'function') {
22
- realNextVal = resolveFn.apply(void 0, params);
17
+ realNextVal = resolveFn(...params);
23
18
  }
24
19
  else {
25
20
  realNextVal = params[0];
26
21
  }
27
22
  setInternalValue(realNextVal);
28
- onChange === null || onChange === void 0 ? void 0 : onChange.apply(void 0, params);
23
+ onChange?.(...params);
29
24
  }, [onChange, resolveFn]);
30
- var finalValue = useMemo(function () {
25
+ const finalValue = useMemo(() => {
31
26
  if (hasValue)
32
27
  return value;
33
28
  return internalValue;
@@ -6,7 +6,7 @@
6
6
  * @param code 业务错误码
7
7
  */
8
8
  function _defaultErrorCodeHandler(defaultMessageShower, code) {
9
- defaultMessageShower("\u8BF7\u6C42\u51FA\u9519\uFF0C\u9519\u8BEF\u7801\uFF1A".concat(code, "\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"));
9
+ defaultMessageShower(`请求出错,错误码:${code},请稍后再试`);
10
10
  }
11
11
  /**
12
12
  * 默认 HTTP 错误码处理函数
@@ -16,7 +16,7 @@ function _defaultErrorCodeHandler(defaultMessageShower, code) {
16
16
  * @param code HTTP 状态码
17
17
  */
18
18
  function _defaultHttpErrorCodeHandler(defaultMessageShower, code) {
19
- defaultMessageShower("\u670D\u52A1\u7AEF\u8BF7\u6C42\u51FA\u9519\uFF0CHttp\u9519\u8BEF\u7801\uFF1A".concat(String(code), "\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5"));
19
+ defaultMessageShower(`服务端请求出错,Http错误码:${String(code)},请稍后再试`);
20
20
  }
21
21
  /**
22
22
  * 默认其他错误处理函数
@@ -26,7 +26,7 @@ function _defaultHttpErrorCodeHandler(defaultMessageShower, code) {
26
26
  * @param error 错误对象
27
27
  */
28
28
  function _defaultOtherErrorCodeHandler(defaultMessageShower, error) {
29
- defaultMessageShower("\u672A\u77E5\u8BF7\u6C42\u51FA\u9519\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5");
29
+ defaultMessageShower(`未知请求出错,请稍后再试`);
30
30
  }
31
31
 
32
32
  export { _defaultErrorCodeHandler, _defaultHttpErrorCodeHandler, _defaultOtherErrorCodeHandler };
@@ -1,5 +1,3 @@
1
- import { __extends } from 'tslib';
2
-
3
1
  /**
4
2
  * 请求错误类
5
3
  * 用于统一处理请求过程中的各种错误
@@ -7,22 +5,19 @@ import { __extends } from 'tslib';
7
5
  * @template Data 错误数据类型
8
6
  * @extends Error
9
7
  */
10
- var RequestError = /** @class */ (function (_super) {
11
- __extends(RequestError, _super);
8
+ class RequestError extends Error {
12
9
  /**
13
10
  * 构造函数
14
11
  * @param message 错误消息
15
12
  * @param type 错误类型
16
13
  * @param data 错误相关的数据
17
14
  */
18
- function RequestError(message, type, data) {
19
- var _this = _super.call(this, message) || this;
20
- _this.name = 'RequestError';
21
- _this.type = type;
22
- _this.data = data;
23
- return _this;
15
+ constructor(message, type, data) {
16
+ super(message);
17
+ this.name = 'RequestError';
18
+ this.type = type;
19
+ this.data = data;
24
20
  }
25
- return RequestError;
26
- }(Error));
21
+ }
27
22
 
28
23
  export { RequestError as default };
@@ -119,6 +119,20 @@ interface Options<Params = any, Data = any> {
119
119
  requestOptions?: RequestOptions<Params>;
120
120
  })[];
121
121
  retryTimes?: number;
122
+ /**
123
+ * 请求参数或数据转换函数
124
+ * 可以在发送请求前对参数或数据进行处理
125
+ * @param paramsOrData 请求参数或数据
126
+ * @returns 处理后的参数或数据
127
+ */
128
+ requestParamsOrDataTransfer?: (paramsOrData: Params) => any;
129
+ /**
130
+ * 响应数据转换函数
131
+ * 可以在接收响应数据后对数据进行处理
132
+ * @param data 响应数据
133
+ * @returns 处理后的响应数据
134
+ */
135
+ responseTransfer?: (data: any) => Data;
122
136
  }
123
137
  /**
124
138
  * 请求参数接口
@@ -1,4 +1,3 @@
1
- import { __assign, __awaiter, __generator } from 'tslib';
2
1
  import axios from 'axios';
3
2
  import at from 'lodash-es/at';
4
3
  import { _defaultErrorCodeHandler, _defaultHttpErrorCodeHandler, _defaultOtherErrorCodeHandler } from './defaultHandlers.mjs';
@@ -12,11 +11,10 @@ import RequestError from './error.mjs';
12
11
  * @returns 请求创建函数
13
12
  */
14
13
  function createBaseRequest(baseOptions) {
15
- var baseURL = Object(baseOptions).baseURL;
16
- // 创建新的 Axios 实例并配置基础URL和跨域凭证
17
- var instance = axios.create({
14
+ const { baseURL } = Object(baseOptions);
15
+ // 创建新的 Axios 实例并配置基础URL
16
+ const instance = axios.create({
18
17
  baseURL: baseURL,
19
- withCredentials: true,
20
18
  });
21
19
  /**
22
20
  * 创建请求函数
@@ -27,166 +25,153 @@ function createBaseRequest(baseOptions) {
27
25
  * @returns 发送请求的函数
28
26
  */
29
27
  return function createRequest(requestOptions, createOptions) {
30
- var _a = __assign({}, requestOptions), method = _a.method, url = _a.url;
31
- var _b = __assign(__assign({}, baseOptions), createOptions), baseURL = _b.baseURL, _c = _b.cacheDataKey, cacheDataKey = _c === void 0 ? "".concat(method, ":").concat(baseURL).concat(url) : _c, cacheDataInStorage = _b.cacheDataInStorage, _d = _b.cacheKeyEquals, cacheKeyEquals = _d === void 0 ? defaultEquals : _d, cacheTime = _b.cacheTime, _e = _b.indexDBName, indexDBName = _e === void 0 ? "__apiCacheDatabase__" : _e;
32
- var cache = new Cache(cacheDataInStorage, cacheDataKey, cacheTime, indexDBName, cacheKeyEquals);
33
- function request(requestParam, options) {
34
- return __awaiter(this, void 0, void 0, function () {
35
- function retry() {
36
- if (retryTimes > 0) {
37
- return request(requestParam, __assign(__assign({}, options), { retryTimes: retryTimes - 1 }));
28
+ const { method, url } = { ...requestOptions };
29
+ const { baseURL, cacheDataKey = `${method}:${baseURL}${url}`, cacheDataInStorage, cacheKeyEquals = defaultEquals, cacheTime, indexDBName = "__apiCacheDatabase__", } = {
30
+ ...baseOptions,
31
+ ...createOptions,
32
+ };
33
+ const cache = new Cache(cacheDataInStorage, cacheDataKey, cacheTime, indexDBName, cacheKeyEquals);
34
+ async function request(requestParam, options) {
35
+ const mergedOptions = {
36
+ ...baseOptions,
37
+ ...createOptions,
38
+ ...options,
39
+ };
40
+ let { requestMiddlewares = [], axiosOptions: finalAxiosOptions = {}, requestParamsOrDataTransfer, responseTransfer } = mergedOptions;
41
+ let finalRequestOptions = { ...requestOptions, ...requestParam };
42
+ for (const middleware of requestMiddlewares) {
43
+ const { axiosOptions: nextAxiosOptions = finalAxiosOptions, requestOptions: nextRequestOptions = finalRequestOptions } = await middleware({ ...mergedOptions, axiosOptions: finalAxiosOptions }, finalRequestOptions);
44
+ finalAxiosOptions = nextAxiosOptions;
45
+ finalRequestOptions = nextRequestOptions;
46
+ }
47
+ const { method, url, data = {}, params = {}, } = finalRequestOptions;
48
+ let requestDataOrParams = params;
49
+ if (method.toLowerCase() === "post") {
50
+ requestDataOrParams = data;
51
+ }
52
+ const { defaultMessageShower = console.error } = {
53
+ ...baseOptions,
54
+ ...createOptions,
55
+ ...options,
56
+ };
57
+ const { enableCache = false, cacheData = false, defaultErrorCodeHandler = _defaultErrorCodeHandler.bind(null, defaultMessageShower), defaultHttpErrorCodeHandler = _defaultHttpErrorCodeHandler.bind(null, defaultMessageShower), otherErrorHandler = _defaultOtherErrorCodeHandler.bind(null, defaultMessageShower), errorCodePath = "code", cacheTime = 60, errorCodeMap = {}, successCodes = ["0", "200"], httpErrorCodeMap = {},
58
+ // axiosOptions = {},
59
+ throwError = true, retryTimes = 0 } = { ...baseOptions, ...createOptions, ...options };
60
+ if (enableCache) {
61
+ const cacheItem = cache.getCache(requestDataOrParams);
62
+ if (cacheItem) {
63
+ return Promise.resolve(cacheItem);
64
+ }
65
+ }
66
+ function retry() {
67
+ if (retryTimes > 0) {
68
+ return request(requestParam, { ...options, retryTimes: retryTimes - 1 });
69
+ }
70
+ return null;
71
+ }
72
+ return instance
73
+ .request({
74
+ method,
75
+ url,
76
+ data: data ?? (requestParamsOrDataTransfer ? requestParamsOrDataTransfer(data) : data),
77
+ params: params ?? (requestParamsOrDataTransfer ? requestParamsOrDataTransfer(params) : params),
78
+ ...finalAxiosOptions,
79
+ })
80
+ .then(async (res) => {
81
+ const errorCode = String(at(res.data, errorCodePath));
82
+ let finalData = responseTransfer ? responseTransfer(res.data) : res.data;
83
+ if (successCodes.includes(errorCode)) {
84
+ if (cacheData) {
85
+ cache.setCache(requestDataOrParams, finalData, { cacheTime });
38
86
  }
39
- return null;
87
+ return finalData;
88
+ }
89
+ // 不在成功 code 中,意味着请求失败
90
+ const { [errorCode]: customHandler = defaultErrorCodeHandler } = errorCodeMap;
91
+ const err = new RequestError("服务端错误", "server", res);
92
+ if (typeof customHandler === "string") {
93
+ defaultMessageShower(customHandler);
94
+ const retryTask = retry();
95
+ if (retryTask)
96
+ return retryTask;
97
+ }
98
+ else {
99
+ const { replaceResData = res.data, throwError: handlerThrowError = "default", } = Object((await customHandler(errorCode, res.data, res, {
100
+ ...requestOptions,
101
+ ...requestParam,
102
+ })));
103
+ const retryTask = retry();
104
+ if (retryTask)
105
+ return retryTask;
106
+ res.data = replaceResData;
107
+ switch (handlerThrowError) {
108
+ case true:
109
+ throw err;
110
+ case false:
111
+ return res.data;
112
+ }
113
+ }
114
+ if (throwError) {
115
+ throw err;
40
116
  }
41
- var _a, _b, requestMiddlewares, _c, finalAxiosOptions, finalRequestOptions, _i, requestMiddlewares_1, middleware, _d, _e, nextAxiosOptions, _f, nextRequestOptions, method, url, _g, data, _h, params, requestDataOrParams, _j, defaultMessageShower, _k, _l, enableCache, _m, cacheData, _o, defaultErrorCodeHandler, _p, defaultHttpErrorCodeHandler, _q, otherErrorHandler, _r, errorCodePath, _s, cacheTime, _t, errorCodeMap, _u, successCodes, _v, httpErrorCodeMap, _w,
42
- // axiosOptions = {},
43
- throwError, _x, retryTimes, cacheItem;
44
- var _this = this;
45
- return __generator(this, function (_y) {
46
- switch (_y.label) {
47
- case 0:
48
- _a = __assign(__assign(__assign({}, baseOptions), createOptions), options), _b = _a.requestMiddlewares, requestMiddlewares = _b === void 0 ? [] : _b, _c = _a.axiosOptions, finalAxiosOptions = _c === void 0 ? {} : _c;
49
- finalRequestOptions = __assign(__assign({}, requestOptions), requestParam);
50
- _i = 0, requestMiddlewares_1 = requestMiddlewares;
51
- _y.label = 1;
52
- case 1:
53
- if (!(_i < requestMiddlewares_1.length)) return [3 /*break*/, 4];
54
- middleware = requestMiddlewares_1[_i];
55
- return [4 /*yield*/, middleware(finalAxiosOptions, finalRequestOptions)];
56
- case 2:
57
- _d = _y.sent(), _e = _d.axiosOptions, nextAxiosOptions = _e === void 0 ? finalAxiosOptions : _e, _f = _d.requestOptions, nextRequestOptions = _f === void 0 ? finalRequestOptions : _f;
58
- finalAxiosOptions = nextAxiosOptions;
59
- finalRequestOptions = nextRequestOptions;
60
- _y.label = 3;
61
- case 3:
62
- _i++;
63
- return [3 /*break*/, 1];
64
- case 4:
65
- method = finalRequestOptions.method, url = finalRequestOptions.url, _g = finalRequestOptions.data, data = _g === void 0 ? {} : _g, _h = finalRequestOptions.params, params = _h === void 0 ? {} : _h;
66
- requestDataOrParams = params;
67
- if (method.toLowerCase() === "post") {
68
- requestDataOrParams = data;
69
- }
70
- _j = __assign(__assign(__assign({}, baseOptions), createOptions), options).defaultMessageShower, defaultMessageShower = _j === void 0 ? console.error : _j;
71
- _k = __assign(__assign(__assign({}, baseOptions), createOptions), options), _l = _k.enableCache, enableCache = _l === void 0 ? false : _l, _m = _k.cacheData, cacheData = _m === void 0 ? false : _m, _o = _k.defaultErrorCodeHandler, defaultErrorCodeHandler = _o === void 0 ? _defaultErrorCodeHandler.bind(null, defaultMessageShower) : _o, _p = _k.defaultHttpErrorCodeHandler, defaultHttpErrorCodeHandler = _p === void 0 ? _defaultHttpErrorCodeHandler.bind(null, defaultMessageShower) : _p, _q = _k.otherErrorHandler, otherErrorHandler = _q === void 0 ? _defaultOtherErrorCodeHandler.bind(null, defaultMessageShower) : _q, _r = _k.errorCodePath, errorCodePath = _r === void 0 ? "code" : _r, _s = _k.cacheTime, cacheTime = _s === void 0 ? 60 : _s, _t = _k.errorCodeMap, errorCodeMap = _t === void 0 ? {} : _t, _u = _k.successCodes, successCodes = _u === void 0 ? ["0", "200"] : _u, _v = _k.httpErrorCodeMap, httpErrorCodeMap = _v === void 0 ? {} : _v, _w = _k.throwError, throwError = _w === void 0 ? true : _w, _x = _k.retryTimes, retryTimes = _x === void 0 ? 0 : _x;
72
- if (enableCache) {
73
- cacheItem = cache.getCache(requestDataOrParams);
74
- if (cacheItem) {
75
- return [2 /*return*/, Promise.resolve(cacheItem)];
76
- }
77
- }
78
- return [2 /*return*/, instance
79
- .request(__assign({ method: method, url: url, data: data, params: params }, finalAxiosOptions))
80
- .then(function (res) { return __awaiter(_this, void 0, void 0, function () {
81
- var errorCode, _a, _b, _c, customHandler, err, retryTask, _d, _e, replaceResData, _f, handlerThrowError, _g, retryTask;
82
- return __generator(this, function (_h) {
83
- switch (_h.label) {
84
- case 0:
85
- errorCode = String(at(res.data, errorCodePath));
86
- if (successCodes.includes(errorCode)) {
87
- if (cacheData) {
88
- cache.setCache(requestDataOrParams, res.data, { cacheTime: cacheTime });
89
- }
90
- return [2 /*return*/, res.data];
91
- }
92
- _a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
93
- err = new RequestError("服务端错误", "server", res);
94
- if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
95
- defaultMessageShower(customHandler);
96
- retryTask = retry();
97
- if (retryTask)
98
- return [2 /*return*/, retryTask];
99
- return [3 /*break*/, 3];
100
- case 1:
101
- _g = Object;
102
- return [4 /*yield*/, customHandler(errorCode, res.data, res, __assign(__assign({}, requestOptions), requestParam))];
103
- case 2:
104
- _d = _g.apply(void 0, [(_h.sent())]), _e = _d.replaceResData, replaceResData = _e === void 0 ? res.data : _e, _f = _d.throwError, handlerThrowError = _f === void 0 ? "default" : _f;
105
- retryTask = retry();
106
- if (retryTask)
107
- return [2 /*return*/, retryTask];
108
- res.data = replaceResData;
109
- switch (handlerThrowError) {
110
- case true:
111
- throw err;
112
- case false:
113
- return [2 /*return*/, res.data];
114
- }
115
- _h.label = 3;
116
- case 3:
117
- if (throwError) {
118
- throw err;
119
- }
120
- return [2 /*return*/, res.data];
121
- }
122
- });
123
- }); }, function (error) { return __awaiter(_this, void 0, void 0, function () {
124
- var resData, _a, _b, _c, customHandler, err, retryTask, _d, _e, replaceResData, _f, handlerThrowError, _g, retryTask, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l, retryTask;
125
- return __generator(this, function (_m) {
126
- switch (_m.label) {
127
- case 0:
128
- if (!error.response) return [3 /*break*/, 4];
129
- resData = error;
130
- _a = httpErrorCodeMap, _b = error.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
131
- err = new RequestError("服务端错误", "http", error);
132
- if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
133
- defaultMessageShower(customHandler);
134
- retryTask = retry();
135
- if (retryTask)
136
- return [2 /*return*/, retryTask];
137
- return [3 /*break*/, 3];
138
- case 1:
139
- _g = Object;
140
- return [4 /*yield*/, customHandler(error.response.status, error, __assign(__assign({}, requestOptions), requestParam))];
141
- case 2:
142
- _d = _g.apply(void 0, [(_m.sent())]), _e = _d.replaceResData, replaceResData = _e === void 0 ? error : _e, _f = _d.throwError, handlerThrowError = _f === void 0 ? "default" : _f;
143
- retryTask = retry();
144
- if (retryTask)
145
- return [2 /*return*/, retryTask];
146
- resData = replaceResData;
147
- switch (handlerThrowError) {
148
- case true:
149
- throw err;
150
- case false:
151
- return [2 /*return*/, resData];
152
- }
153
- _m.label = 3;
154
- case 3:
155
- if (throwError) {
156
- throw err;
157
- }
158
- return [2 /*return*/, resData];
159
- case 4:
160
- resData = error;
161
- err = new RequestError("服务端错误", "http", error);
162
- err.type = "http";
163
- err.data = error;
164
- _l = Object;
165
- return [4 /*yield*/, otherErrorHandler(error)];
166
- case 5:
167
- _h = (_l.apply(void 0, [(_m.sent())])), _j = _h.replaceResData, replaceResData = _j === void 0 ? error : _j, _k = _h.throwError, handlerThrowError = _k === void 0 ? "default" : _k;
168
- retryTask = retry();
169
- if (retryTask)
170
- return [2 /*return*/, retryTask];
171
- resData = replaceResData;
172
- switch (handlerThrowError) {
173
- case true:
174
- throw err;
175
- case false:
176
- return [2 /*return*/, resData];
177
- }
178
- if (throwError) {
179
- throw err;
180
- }
181
- return [2 /*return*/, resData];
182
- }
183
- });
184
- }); })];
117
+ return res.data;
118
+ }, async (error) => {
119
+ if (error.response) {
120
+ // 请求成功发出且服务器也响应了状态码,但状态代码超出了 2xx 的范围
121
+ let resData = error;
122
+ const { [error.response.status]: customHandler = defaultHttpErrorCodeHandler, } = httpErrorCodeMap;
123
+ const err = new RequestError("服务端错误", "http", error);
124
+ if (typeof customHandler === "string") {
125
+ defaultMessageShower(customHandler);
126
+ const retryTask = retry();
127
+ if (retryTask)
128
+ return retryTask;
185
129
  }
186
- });
130
+ else {
131
+ const { replaceResData = error, throwError: handlerThrowError = "default", } = Object((await customHandler(error.response.status, error, {
132
+ ...requestOptions,
133
+ ...requestParam,
134
+ })));
135
+ const retryTask = retry();
136
+ if (retryTask)
137
+ return retryTask;
138
+ resData = replaceResData;
139
+ switch (handlerThrowError) {
140
+ case true:
141
+ throw err;
142
+ case false:
143
+ return resData;
144
+ }
145
+ }
146
+ if (throwError) {
147
+ throw err;
148
+ }
149
+ return resData;
150
+ }
151
+ else {
152
+ let resData = error;
153
+ const err = new RequestError("服务端错误", "http", error);
154
+ err.type = "http";
155
+ err.data = error;
156
+ const { replaceResData = error, throwError: handlerThrowError = "default", } = (Object((await otherErrorHandler(error))));
157
+ const retryTask = retry();
158
+ if (retryTask)
159
+ return retryTask;
160
+ resData = replaceResData;
161
+ switch (handlerThrowError) {
162
+ case true:
163
+ throw err;
164
+ case false:
165
+ return resData;
166
+ }
167
+ if (throwError) {
168
+ throw err;
169
+ }
170
+ return resData;
171
+ }
187
172
  });
188
173
  }
189
- request.clearCache = function () {
174
+ request.clearCache = () => {
190
175
  cache.clear();
191
176
  };
192
177
  return request;
@@ -7,11 +7,11 @@ import { useMemo } from 'react';
7
7
  * @param getterNameMaps 将 getter 函数和 getter 名称一一映射
8
8
  * @returns getter object
9
9
  */
10
- var createStoreGetter = function (store, getters, getterNameMaps) {
11
- var gettersObj = {};
12
- Object.keys(getters).forEach(function (key) {
10
+ const createStoreGetter = (store, getters, getterNameMaps) => {
11
+ const gettersObj = {};
12
+ Object.keys(getters).forEach((key) => {
13
13
  Object.defineProperty(gettersObj, getterNameMaps[key], {
14
- get: function () { return getters[key](store.get()); }
14
+ get: () => getters[key](store.get())
15
15
  });
16
16
  });
17
17
  return gettersObj;
@@ -23,14 +23,14 @@ var createStoreGetter = function (store, getters, getterNameMaps) {
23
23
  * @param getterNameMaps 将 getter 函数和 getter 名称一一映射
24
24
  * @returns getter memo hook
25
25
  */
26
- var createStoreGetterMemo = function (store, getters, getterNameMaps) {
26
+ const createStoreGetterMemo = (store, getters, getterNameMaps) => {
27
27
  // 创建缓存数据 hook
28
- return function () {
29
- var storeData = store.use()[0];
30
- var reducedData = useMemo(function () {
31
- return Object.keys(getters).reduce(function (acc, key) {
32
- var mappedKey = getterNameMaps[key];
33
- var getterValue = getters[key](storeData);
28
+ return () => {
29
+ const [storeData] = store.use();
30
+ const reducedData = useMemo(() => {
31
+ return Object.keys(getters).reduce((acc, key) => {
32
+ const mappedKey = getterNameMaps[key];
33
+ const getterValue = getters[key](storeData);
34
34
  acc[mappedKey] = getterValue;
35
35
  return acc;
36
36
  }, {});