rxtutils 1.1.4-beta.7 → 1.1.4-beta.9
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.
- package/cjs/_utils/deepAssign.cjs +25 -0
- package/cjs/hooks/useCombineControlValue.d.ts +1 -1
- package/cjs/request/index.cjs +125 -97
- package/cjs/request/index.d.ts +7 -0
- package/es/_utils/deepAssign.mjs +23 -0
- package/es/hooks/useCombineControlValue.d.ts +1 -1
- package/es/request/index.d.ts +7 -0
- package/es/request/index.mjs +125 -97
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function deepAssign(target) {
|
|
4
|
+
var sources = [];
|
|
5
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
6
|
+
sources[_i - 1] = arguments[_i];
|
|
7
|
+
}
|
|
8
|
+
for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {
|
|
9
|
+
var source = sources_1[_a];
|
|
10
|
+
for (var key in source) {
|
|
11
|
+
var val = source[key];
|
|
12
|
+
if (val &&
|
|
13
|
+
typeof val === 'object' &&
|
|
14
|
+
!Array.isArray(val)) {
|
|
15
|
+
target[key] = deepAssign(target[key] || {}, val);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
target[key] = val;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return target;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
exports.deepAssign = deepAssign;
|
|
@@ -14,7 +14,7 @@ type UseCombineControlValueResolveResult<V, R extends (...args: any[]) => any> =
|
|
|
14
14
|
};
|
|
15
15
|
declare function useCombineControlValue<V>(options: UseCombineControlValueOptions<V>): UseCombineControlValueEasyResult<V>;
|
|
16
16
|
declare function useCombineControlValue<V, R extends (...args: any[]) => any>(options: Omit<UseCombineControlValueOptions<V>, 'onChange'> & {
|
|
17
|
-
onChange
|
|
17
|
+
onChange?: (...args: Parameters<R>) => void;
|
|
18
18
|
}, resolveFn: (...args: Parameters<R>) => V): UseCombineControlValueResolveResult<V, R>;
|
|
19
19
|
|
|
20
20
|
export { useCombineControlValue };
|
package/cjs/request/index.cjs
CHANGED
|
@@ -7,6 +7,7 @@ var defaultHandlers = require('./defaultHandlers.cjs');
|
|
|
7
7
|
var defaultEquals = require('../_utils/defaultEquals.cjs');
|
|
8
8
|
var index = require('../cache/index.cjs');
|
|
9
9
|
var error = require('./error.cjs');
|
|
10
|
+
var deepAssign = require('../_utils/deepAssign.cjs');
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* 创建基础请求实例
|
|
@@ -33,112 +34,139 @@ function createBaseRequest(baseOptions) {
|
|
|
33
34
|
var _b = tslib.__assign(tslib.__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;
|
|
34
35
|
var cache = new index.default(cacheDataInStorage, cacheDataKey, cacheTime, indexDBName, cacheKeyEquals);
|
|
35
36
|
function request(requestParam, options) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var _e = tslib.__assign(tslib.__assign(tslib.__assign({}, baseOptions), createOptions), options), _f = _e.enableCache, enableCache = _f === void 0 ? false : _f, _g = _e.cacheData, cacheData = _g === void 0 ? false : _g, _h = _e.defaultErrorCodeHandler, defaultErrorCodeHandler = _h === void 0 ? defaultHandlers._defaultErrorCodeHandler.bind(null, defaultMessageShower) : _h, _j = _e.defaultHttpErrorCodeHandler, defaultHttpErrorCodeHandler = _j === void 0 ? defaultHandlers._defaultHttpErrorCodeHandler.bind(null, defaultMessageShower) : _j, _k = _e.otherErrorHandler, otherErrorHandler = _k === void 0 ? defaultHandlers._defaultOtherErrorCodeHandler.bind(null, defaultMessageShower) : _k, _l = _e.errorCodePath, errorCodePath = _l === void 0 ? "code" : _l, _m = _e.cacheTime, cacheTime = _m === void 0 ? 60 : _m, _o = _e.errorCodeMap, errorCodeMap = _o === void 0 ? {} : _o, _p = _e.successCodes, successCodes = _p === void 0 ? ["0", "200"] : _p, _q = _e.httpErrorCodeMap, httpErrorCodeMap = _q === void 0 ? {} : _q, _r = _e.axiosOptions, axiosOptions = _r === void 0 ? {} : _r, _s = _e.throwError, throwError = _s === void 0 ? true : _s;
|
|
44
|
-
if (enableCache) {
|
|
45
|
-
var cacheItem = cache.getCache(requestDataOrParams);
|
|
46
|
-
if (cacheItem) {
|
|
47
|
-
return Promise.resolve(cacheItem);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return instance
|
|
51
|
-
.request(tslib.__assign({ method: method, url: url, data: data, params: params }, axiosOptions))
|
|
52
|
-
.then(function (res) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
53
|
-
var errorCode, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g;
|
|
54
|
-
return tslib.__generator(this, function (_h) {
|
|
55
|
-
switch (_h.label) {
|
|
37
|
+
return tslib.__awaiter(this, void 0, void 0, function () {
|
|
38
|
+
var _a, _b, requestMiddlewares, _c, finalAxiosOptions, finalRequestOptions, _i, requestMiddlewares_1, middleware, _d, nextAxiosOptions, nextRequestOptions, method, url, _e, data, _f, params, requestDataOrParams, _g, defaultMessageShower, _h, _j, enableCache, _k, cacheData, _l, defaultErrorCodeHandler, _m, defaultHttpErrorCodeHandler, _o, otherErrorHandler, _p, errorCodePath, _q, cacheTime, _r, errorCodeMap, _s, successCodes, _t, httpErrorCodeMap, _u,
|
|
39
|
+
// axiosOptions = {},
|
|
40
|
+
throwError, cacheItem;
|
|
41
|
+
var _this = this;
|
|
42
|
+
return tslib.__generator(this, function (_v) {
|
|
43
|
+
switch (_v.label) {
|
|
56
44
|
case 0:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
return [2 /*return*/, res.data];
|
|
63
|
-
}
|
|
64
|
-
_a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
|
|
65
|
-
err = new error("服务端错误", "server", res);
|
|
66
|
-
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
67
|
-
defaultMessageShower(customHandler);
|
|
68
|
-
return [3 /*break*/, 3];
|
|
45
|
+
_a = tslib.__assign(tslib.__assign(tslib.__assign({}, baseOptions), createOptions), options), _b = _a.requestMiddlewares, requestMiddlewares = _b === void 0 ? [] : _b, _c = _a.axiosOptions, finalAxiosOptions = _c === void 0 ? {} : _c;
|
|
46
|
+
finalRequestOptions = tslib.__assign(tslib.__assign({}, requestOptions), requestParam);
|
|
47
|
+
_i = 0, requestMiddlewares_1 = requestMiddlewares;
|
|
48
|
+
_v.label = 1;
|
|
69
49
|
case 1:
|
|
70
|
-
|
|
71
|
-
|
|
50
|
+
if (!(_i < requestMiddlewares_1.length)) return [3 /*break*/, 4];
|
|
51
|
+
middleware = requestMiddlewares_1[_i];
|
|
52
|
+
return [4 /*yield*/, middleware(finalAxiosOptions, finalRequestOptions)];
|
|
72
53
|
case 2:
|
|
73
|
-
_d =
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
throw err;
|
|
78
|
-
case false:
|
|
79
|
-
return [2 /*return*/, res.data];
|
|
80
|
-
}
|
|
81
|
-
_h.label = 3;
|
|
54
|
+
_d = _v.sent(), nextAxiosOptions = _d.axiosOptions, nextRequestOptions = _d.requestOptions;
|
|
55
|
+
deepAssign.deepAssign({}, finalAxiosOptions, nextAxiosOptions);
|
|
56
|
+
deepAssign.deepAssign({}, finalRequestOptions, nextRequestOptions);
|
|
57
|
+
_v.label = 3;
|
|
82
58
|
case 3:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
return [2 /*return*/, res.data];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}); }, function (error$1) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
90
|
-
var resData, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l;
|
|
91
|
-
return tslib.__generator(this, function (_m) {
|
|
92
|
-
switch (_m.label) {
|
|
93
|
-
case 0:
|
|
94
|
-
if (!error$1.response) return [3 /*break*/, 4];
|
|
95
|
-
resData = error$1;
|
|
96
|
-
_a = httpErrorCodeMap, _b = error$1.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
|
|
97
|
-
err = new error("服务端错误", "http", error$1);
|
|
98
|
-
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
99
|
-
defaultMessageShower(customHandler);
|
|
100
|
-
return [3 /*break*/, 3];
|
|
101
|
-
case 1:
|
|
102
|
-
_g = Object;
|
|
103
|
-
return [4 /*yield*/, customHandler(error$1.response.status, error$1, tslib.__assign(tslib.__assign({}, requestOptions), requestParam))];
|
|
104
|
-
case 2:
|
|
105
|
-
_d = _g.apply(void 0, [(_m.sent())]), _e = _d.replaceResData, replaceResData = _e === void 0 ? error$1 : _e, _f = _d.throwError, handlerThrowError = _f === void 0 ? "default" : _f;
|
|
106
|
-
resData = replaceResData;
|
|
107
|
-
switch (handlerThrowError) {
|
|
108
|
-
case true:
|
|
109
|
-
throw err;
|
|
110
|
-
case false:
|
|
111
|
-
return [2 /*return*/, resData];
|
|
112
|
-
}
|
|
113
|
-
_m.label = 3;
|
|
114
|
-
case 3:
|
|
115
|
-
if (throwError) {
|
|
116
|
-
throw err;
|
|
117
|
-
}
|
|
118
|
-
return [2 /*return*/, resData];
|
|
59
|
+
_i++;
|
|
60
|
+
return [3 /*break*/, 1];
|
|
119
61
|
case 4:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
_l = Object;
|
|
125
|
-
return [4 /*yield*/, otherErrorHandler(error$1)];
|
|
126
|
-
case 5:
|
|
127
|
-
_h = (_l.apply(void 0, [(_m.sent())])), _j = _h.replaceResData, replaceResData = _j === void 0 ? error$1 : _j, _k = _h.throwError, handlerThrowError = _k === void 0 ? "default" : _k;
|
|
128
|
-
resData = replaceResData;
|
|
129
|
-
switch (handlerThrowError) {
|
|
130
|
-
case true:
|
|
131
|
-
throw err;
|
|
132
|
-
case false:
|
|
133
|
-
return [2 /*return*/, resData];
|
|
62
|
+
method = finalRequestOptions.method, url = finalRequestOptions.url, _e = finalRequestOptions.data, data = _e === void 0 ? {} : _e, _f = finalRequestOptions.params, params = _f === void 0 ? {} : _f;
|
|
63
|
+
requestDataOrParams = params;
|
|
64
|
+
if (method.toLowerCase() === "post") {
|
|
65
|
+
requestDataOrParams = data;
|
|
134
66
|
}
|
|
135
|
-
|
|
136
|
-
|
|
67
|
+
_g = tslib.__assign(tslib.__assign(tslib.__assign({}, baseOptions), createOptions), options).defaultMessageShower, defaultMessageShower = _g === void 0 ? console.error : _g;
|
|
68
|
+
_h = tslib.__assign(tslib.__assign(tslib.__assign({}, baseOptions), createOptions), options), _j = _h.enableCache, enableCache = _j === void 0 ? false : _j, _k = _h.cacheData, cacheData = _k === void 0 ? false : _k, _l = _h.defaultErrorCodeHandler, defaultErrorCodeHandler = _l === void 0 ? defaultHandlers._defaultErrorCodeHandler.bind(null, defaultMessageShower) : _l, _m = _h.defaultHttpErrorCodeHandler, defaultHttpErrorCodeHandler = _m === void 0 ? defaultHandlers._defaultHttpErrorCodeHandler.bind(null, defaultMessageShower) : _m, _o = _h.otherErrorHandler, otherErrorHandler = _o === void 0 ? defaultHandlers._defaultOtherErrorCodeHandler.bind(null, defaultMessageShower) : _o, _p = _h.errorCodePath, errorCodePath = _p === void 0 ? "code" : _p, _q = _h.cacheTime, cacheTime = _q === void 0 ? 60 : _q, _r = _h.errorCodeMap, errorCodeMap = _r === void 0 ? {} : _r, _s = _h.successCodes, successCodes = _s === void 0 ? ["0", "200"] : _s, _t = _h.httpErrorCodeMap, httpErrorCodeMap = _t === void 0 ? {} : _t, _u = _h.throwError, throwError = _u === void 0 ? true : _u;
|
|
69
|
+
if (enableCache) {
|
|
70
|
+
cacheItem = cache.getCache(requestDataOrParams);
|
|
71
|
+
if (cacheItem) {
|
|
72
|
+
return [2 /*return*/, Promise.resolve(cacheItem)];
|
|
73
|
+
}
|
|
137
74
|
}
|
|
138
|
-
return [2 /*return*/,
|
|
75
|
+
return [2 /*return*/, instance
|
|
76
|
+
.request(tslib.__assign({ method: method, url: url, data: data, params: params }, finalAxiosOptions))
|
|
77
|
+
.then(function (res) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
78
|
+
var errorCode, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g;
|
|
79
|
+
return tslib.__generator(this, function (_h) {
|
|
80
|
+
switch (_h.label) {
|
|
81
|
+
case 0:
|
|
82
|
+
errorCode = String(at(res.data, errorCodePath));
|
|
83
|
+
if (successCodes.includes(errorCode)) {
|
|
84
|
+
if (cacheData) {
|
|
85
|
+
cache.setCache(requestDataOrParams, res.data, { cacheTime: cacheTime });
|
|
86
|
+
}
|
|
87
|
+
return [2 /*return*/, res.data];
|
|
88
|
+
}
|
|
89
|
+
_a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
|
|
90
|
+
err = new error("服务端错误", "server", res);
|
|
91
|
+
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
92
|
+
defaultMessageShower(customHandler);
|
|
93
|
+
return [3 /*break*/, 3];
|
|
94
|
+
case 1:
|
|
95
|
+
_g = Object;
|
|
96
|
+
return [4 /*yield*/, customHandler(errorCode, res.data, res, tslib.__assign(tslib.__assign({}, requestOptions), requestParam))];
|
|
97
|
+
case 2:
|
|
98
|
+
_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;
|
|
99
|
+
res.data = replaceResData;
|
|
100
|
+
switch (handlerThrowError) {
|
|
101
|
+
case true:
|
|
102
|
+
throw err;
|
|
103
|
+
case false:
|
|
104
|
+
return [2 /*return*/, res.data];
|
|
105
|
+
}
|
|
106
|
+
_h.label = 3;
|
|
107
|
+
case 3:
|
|
108
|
+
if (throwError) {
|
|
109
|
+
throw err;
|
|
110
|
+
}
|
|
111
|
+
return [2 /*return*/, res.data];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}); }, function (error$1) { return tslib.__awaiter(_this, void 0, void 0, function () {
|
|
115
|
+
var resData, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l;
|
|
116
|
+
return tslib.__generator(this, function (_m) {
|
|
117
|
+
switch (_m.label) {
|
|
118
|
+
case 0:
|
|
119
|
+
if (!error$1.response) return [3 /*break*/, 4];
|
|
120
|
+
resData = error$1;
|
|
121
|
+
_a = httpErrorCodeMap, _b = error$1.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
|
|
122
|
+
err = new error("服务端错误", "http", error$1);
|
|
123
|
+
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
124
|
+
defaultMessageShower(customHandler);
|
|
125
|
+
return [3 /*break*/, 3];
|
|
126
|
+
case 1:
|
|
127
|
+
_g = Object;
|
|
128
|
+
return [4 /*yield*/, customHandler(error$1.response.status, error$1, tslib.__assign(tslib.__assign({}, requestOptions), requestParam))];
|
|
129
|
+
case 2:
|
|
130
|
+
_d = _g.apply(void 0, [(_m.sent())]), _e = _d.replaceResData, replaceResData = _e === void 0 ? error$1 : _e, _f = _d.throwError, handlerThrowError = _f === void 0 ? "default" : _f;
|
|
131
|
+
resData = replaceResData;
|
|
132
|
+
switch (handlerThrowError) {
|
|
133
|
+
case true:
|
|
134
|
+
throw err;
|
|
135
|
+
case false:
|
|
136
|
+
return [2 /*return*/, resData];
|
|
137
|
+
}
|
|
138
|
+
_m.label = 3;
|
|
139
|
+
case 3:
|
|
140
|
+
if (throwError) {
|
|
141
|
+
throw err;
|
|
142
|
+
}
|
|
143
|
+
return [2 /*return*/, resData];
|
|
144
|
+
case 4:
|
|
145
|
+
resData = error$1;
|
|
146
|
+
err = new error("服务端错误", "http", error$1);
|
|
147
|
+
err.type = "http";
|
|
148
|
+
err.data = error$1;
|
|
149
|
+
_l = Object;
|
|
150
|
+
return [4 /*yield*/, otherErrorHandler(error$1)];
|
|
151
|
+
case 5:
|
|
152
|
+
_h = (_l.apply(void 0, [(_m.sent())])), _j = _h.replaceResData, replaceResData = _j === void 0 ? error$1 : _j, _k = _h.throwError, handlerThrowError = _k === void 0 ? "default" : _k;
|
|
153
|
+
resData = replaceResData;
|
|
154
|
+
switch (handlerThrowError) {
|
|
155
|
+
case true:
|
|
156
|
+
throw err;
|
|
157
|
+
case false:
|
|
158
|
+
return [2 /*return*/, resData];
|
|
159
|
+
}
|
|
160
|
+
if (throwError) {
|
|
161
|
+
throw err;
|
|
162
|
+
}
|
|
163
|
+
return [2 /*return*/, resData];
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}); })];
|
|
139
167
|
}
|
|
140
168
|
});
|
|
141
|
-
});
|
|
169
|
+
});
|
|
142
170
|
}
|
|
143
171
|
request.clearCache = function () {
|
|
144
172
|
cache.clear();
|
package/cjs/request/index.d.ts
CHANGED
|
@@ -111,6 +111,13 @@ interface Options<Params = any, Data = any> {
|
|
|
111
111
|
*/
|
|
112
112
|
otherErrorHandler?: (error: any) => Promise<ErrorHandlerReturnType<Data> | void>;
|
|
113
113
|
axiosOptions?: Omit<AxiosRequestConfig<Params>, "method" | "url" | "params" | "data">;
|
|
114
|
+
requestMiddlewares?: ((options: Options<Params, Data>, requestOptions: RequestOptions<Params>) => Promise<{
|
|
115
|
+
axiosOptions?: Options<Params, Data>["axiosOptions"];
|
|
116
|
+
requestOptions?: RequestOptions<Params>;
|
|
117
|
+
}> | {
|
|
118
|
+
axiosOptions: Options<Params, Data>["axiosOptions"];
|
|
119
|
+
requestOptions?: RequestOptions<Params>;
|
|
120
|
+
})[];
|
|
114
121
|
}
|
|
115
122
|
/**
|
|
116
123
|
* 请求参数接口
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function deepAssign(target) {
|
|
2
|
+
var sources = [];
|
|
3
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
4
|
+
sources[_i - 1] = arguments[_i];
|
|
5
|
+
}
|
|
6
|
+
for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {
|
|
7
|
+
var source = sources_1[_a];
|
|
8
|
+
for (var key in source) {
|
|
9
|
+
var val = source[key];
|
|
10
|
+
if (val &&
|
|
11
|
+
typeof val === 'object' &&
|
|
12
|
+
!Array.isArray(val)) {
|
|
13
|
+
target[key] = deepAssign(target[key] || {}, val);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
target[key] = val;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return target;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { deepAssign };
|
|
@@ -14,7 +14,7 @@ type UseCombineControlValueResolveResult<V, R extends (...args: any[]) => any> =
|
|
|
14
14
|
};
|
|
15
15
|
declare function useCombineControlValue<V>(options: UseCombineControlValueOptions<V>): UseCombineControlValueEasyResult<V>;
|
|
16
16
|
declare function useCombineControlValue<V, R extends (...args: any[]) => any>(options: Omit<UseCombineControlValueOptions<V>, 'onChange'> & {
|
|
17
|
-
onChange
|
|
17
|
+
onChange?: (...args: Parameters<R>) => void;
|
|
18
18
|
}, resolveFn: (...args: Parameters<R>) => V): UseCombineControlValueResolveResult<V, R>;
|
|
19
19
|
|
|
20
20
|
export { useCombineControlValue };
|
package/es/request/index.d.ts
CHANGED
|
@@ -111,6 +111,13 @@ interface Options<Params = any, Data = any> {
|
|
|
111
111
|
*/
|
|
112
112
|
otherErrorHandler?: (error: any) => Promise<ErrorHandlerReturnType<Data> | void>;
|
|
113
113
|
axiosOptions?: Omit<AxiosRequestConfig<Params>, "method" | "url" | "params" | "data">;
|
|
114
|
+
requestMiddlewares?: ((options: Options<Params, Data>, requestOptions: RequestOptions<Params>) => Promise<{
|
|
115
|
+
axiosOptions?: Options<Params, Data>["axiosOptions"];
|
|
116
|
+
requestOptions?: RequestOptions<Params>;
|
|
117
|
+
}> | {
|
|
118
|
+
axiosOptions: Options<Params, Data>["axiosOptions"];
|
|
119
|
+
requestOptions?: RequestOptions<Params>;
|
|
120
|
+
})[];
|
|
114
121
|
}
|
|
115
122
|
/**
|
|
116
123
|
* 请求参数接口
|
package/es/request/index.mjs
CHANGED
|
@@ -5,6 +5,7 @@ import { _defaultErrorCodeHandler, _defaultHttpErrorCodeHandler, _defaultOtherEr
|
|
|
5
5
|
import defaultEquals from '../_utils/defaultEquals.mjs';
|
|
6
6
|
import Cache from '../cache/index.mjs';
|
|
7
7
|
import RequestError from './error.mjs';
|
|
8
|
+
import { deepAssign } from '../_utils/deepAssign.mjs';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* 创建基础请求实例
|
|
@@ -31,112 +32,139 @@ function createBaseRequest(baseOptions) {
|
|
|
31
32
|
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
33
|
var cache = new Cache(cacheDataInStorage, cacheDataKey, cacheTime, indexDBName, cacheKeyEquals);
|
|
33
34
|
function request(requestParam, options) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var _e = __assign(__assign(__assign({}, baseOptions), createOptions), options), _f = _e.enableCache, enableCache = _f === void 0 ? false : _f, _g = _e.cacheData, cacheData = _g === void 0 ? false : _g, _h = _e.defaultErrorCodeHandler, defaultErrorCodeHandler = _h === void 0 ? _defaultErrorCodeHandler.bind(null, defaultMessageShower) : _h, _j = _e.defaultHttpErrorCodeHandler, defaultHttpErrorCodeHandler = _j === void 0 ? _defaultHttpErrorCodeHandler.bind(null, defaultMessageShower) : _j, _k = _e.otherErrorHandler, otherErrorHandler = _k === void 0 ? _defaultOtherErrorCodeHandler.bind(null, defaultMessageShower) : _k, _l = _e.errorCodePath, errorCodePath = _l === void 0 ? "code" : _l, _m = _e.cacheTime, cacheTime = _m === void 0 ? 60 : _m, _o = _e.errorCodeMap, errorCodeMap = _o === void 0 ? {} : _o, _p = _e.successCodes, successCodes = _p === void 0 ? ["0", "200"] : _p, _q = _e.httpErrorCodeMap, httpErrorCodeMap = _q === void 0 ? {} : _q, _r = _e.axiosOptions, axiosOptions = _r === void 0 ? {} : _r, _s = _e.throwError, throwError = _s === void 0 ? true : _s;
|
|
42
|
-
if (enableCache) {
|
|
43
|
-
var cacheItem = cache.getCache(requestDataOrParams);
|
|
44
|
-
if (cacheItem) {
|
|
45
|
-
return Promise.resolve(cacheItem);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return instance
|
|
49
|
-
.request(__assign({ method: method, url: url, data: data, params: params }, axiosOptions))
|
|
50
|
-
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
51
|
-
var errorCode, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g;
|
|
52
|
-
return __generator(this, function (_h) {
|
|
53
|
-
switch (_h.label) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
36
|
+
var _a, _b, requestMiddlewares, _c, finalAxiosOptions, finalRequestOptions, _i, requestMiddlewares_1, middleware, _d, nextAxiosOptions, nextRequestOptions, method, url, _e, data, _f, params, requestDataOrParams, _g, defaultMessageShower, _h, _j, enableCache, _k, cacheData, _l, defaultErrorCodeHandler, _m, defaultHttpErrorCodeHandler, _o, otherErrorHandler, _p, errorCodePath, _q, cacheTime, _r, errorCodeMap, _s, successCodes, _t, httpErrorCodeMap, _u,
|
|
37
|
+
// axiosOptions = {},
|
|
38
|
+
throwError, cacheItem;
|
|
39
|
+
var _this = this;
|
|
40
|
+
return __generator(this, function (_v) {
|
|
41
|
+
switch (_v.label) {
|
|
54
42
|
case 0:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
return [2 /*return*/, res.data];
|
|
61
|
-
}
|
|
62
|
-
_a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
|
|
63
|
-
err = new RequestError("服务端错误", "server", res);
|
|
64
|
-
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
65
|
-
defaultMessageShower(customHandler);
|
|
66
|
-
return [3 /*break*/, 3];
|
|
43
|
+
_a = __assign(__assign(__assign({}, baseOptions), createOptions), options), _b = _a.requestMiddlewares, requestMiddlewares = _b === void 0 ? [] : _b, _c = _a.axiosOptions, finalAxiosOptions = _c === void 0 ? {} : _c;
|
|
44
|
+
finalRequestOptions = __assign(__assign({}, requestOptions), requestParam);
|
|
45
|
+
_i = 0, requestMiddlewares_1 = requestMiddlewares;
|
|
46
|
+
_v.label = 1;
|
|
67
47
|
case 1:
|
|
68
|
-
|
|
69
|
-
|
|
48
|
+
if (!(_i < requestMiddlewares_1.length)) return [3 /*break*/, 4];
|
|
49
|
+
middleware = requestMiddlewares_1[_i];
|
|
50
|
+
return [4 /*yield*/, middleware(finalAxiosOptions, finalRequestOptions)];
|
|
70
51
|
case 2:
|
|
71
|
-
_d =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
throw err;
|
|
76
|
-
case false:
|
|
77
|
-
return [2 /*return*/, res.data];
|
|
78
|
-
}
|
|
79
|
-
_h.label = 3;
|
|
52
|
+
_d = _v.sent(), nextAxiosOptions = _d.axiosOptions, nextRequestOptions = _d.requestOptions;
|
|
53
|
+
deepAssign({}, finalAxiosOptions, nextAxiosOptions);
|
|
54
|
+
deepAssign({}, finalRequestOptions, nextRequestOptions);
|
|
55
|
+
_v.label = 3;
|
|
80
56
|
case 3:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
return [2 /*return*/, res.data];
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}); }, function (error) { return __awaiter(_this, void 0, void 0, function () {
|
|
88
|
-
var resData, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l;
|
|
89
|
-
return __generator(this, function (_m) {
|
|
90
|
-
switch (_m.label) {
|
|
91
|
-
case 0:
|
|
92
|
-
if (!error.response) return [3 /*break*/, 4];
|
|
93
|
-
resData = error;
|
|
94
|
-
_a = httpErrorCodeMap, _b = error.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
|
|
95
|
-
err = new RequestError("服务端错误", "http", error);
|
|
96
|
-
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
97
|
-
defaultMessageShower(customHandler);
|
|
98
|
-
return [3 /*break*/, 3];
|
|
99
|
-
case 1:
|
|
100
|
-
_g = Object;
|
|
101
|
-
return [4 /*yield*/, customHandler(error.response.status, error, __assign(__assign({}, requestOptions), requestParam))];
|
|
102
|
-
case 2:
|
|
103
|
-
_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;
|
|
104
|
-
resData = replaceResData;
|
|
105
|
-
switch (handlerThrowError) {
|
|
106
|
-
case true:
|
|
107
|
-
throw err;
|
|
108
|
-
case false:
|
|
109
|
-
return [2 /*return*/, resData];
|
|
110
|
-
}
|
|
111
|
-
_m.label = 3;
|
|
112
|
-
case 3:
|
|
113
|
-
if (throwError) {
|
|
114
|
-
throw err;
|
|
115
|
-
}
|
|
116
|
-
return [2 /*return*/, resData];
|
|
57
|
+
_i++;
|
|
58
|
+
return [3 /*break*/, 1];
|
|
117
59
|
case 4:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
_l = Object;
|
|
123
|
-
return [4 /*yield*/, otherErrorHandler(error)];
|
|
124
|
-
case 5:
|
|
125
|
-
_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;
|
|
126
|
-
resData = replaceResData;
|
|
127
|
-
switch (handlerThrowError) {
|
|
128
|
-
case true:
|
|
129
|
-
throw err;
|
|
130
|
-
case false:
|
|
131
|
-
return [2 /*return*/, resData];
|
|
60
|
+
method = finalRequestOptions.method, url = finalRequestOptions.url, _e = finalRequestOptions.data, data = _e === void 0 ? {} : _e, _f = finalRequestOptions.params, params = _f === void 0 ? {} : _f;
|
|
61
|
+
requestDataOrParams = params;
|
|
62
|
+
if (method.toLowerCase() === "post") {
|
|
63
|
+
requestDataOrParams = data;
|
|
132
64
|
}
|
|
133
|
-
|
|
134
|
-
|
|
65
|
+
_g = __assign(__assign(__assign({}, baseOptions), createOptions), options).defaultMessageShower, defaultMessageShower = _g === void 0 ? console.error : _g;
|
|
66
|
+
_h = __assign(__assign(__assign({}, baseOptions), createOptions), options), _j = _h.enableCache, enableCache = _j === void 0 ? false : _j, _k = _h.cacheData, cacheData = _k === void 0 ? false : _k, _l = _h.defaultErrorCodeHandler, defaultErrorCodeHandler = _l === void 0 ? _defaultErrorCodeHandler.bind(null, defaultMessageShower) : _l, _m = _h.defaultHttpErrorCodeHandler, defaultHttpErrorCodeHandler = _m === void 0 ? _defaultHttpErrorCodeHandler.bind(null, defaultMessageShower) : _m, _o = _h.otherErrorHandler, otherErrorHandler = _o === void 0 ? _defaultOtherErrorCodeHandler.bind(null, defaultMessageShower) : _o, _p = _h.errorCodePath, errorCodePath = _p === void 0 ? "code" : _p, _q = _h.cacheTime, cacheTime = _q === void 0 ? 60 : _q, _r = _h.errorCodeMap, errorCodeMap = _r === void 0 ? {} : _r, _s = _h.successCodes, successCodes = _s === void 0 ? ["0", "200"] : _s, _t = _h.httpErrorCodeMap, httpErrorCodeMap = _t === void 0 ? {} : _t, _u = _h.throwError, throwError = _u === void 0 ? true : _u;
|
|
67
|
+
if (enableCache) {
|
|
68
|
+
cacheItem = cache.getCache(requestDataOrParams);
|
|
69
|
+
if (cacheItem) {
|
|
70
|
+
return [2 /*return*/, Promise.resolve(cacheItem)];
|
|
71
|
+
}
|
|
135
72
|
}
|
|
136
|
-
return [2 /*return*/,
|
|
73
|
+
return [2 /*return*/, instance
|
|
74
|
+
.request(__assign({ method: method, url: url, data: data, params: params }, finalAxiosOptions))
|
|
75
|
+
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
76
|
+
var errorCode, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g;
|
|
77
|
+
return __generator(this, function (_h) {
|
|
78
|
+
switch (_h.label) {
|
|
79
|
+
case 0:
|
|
80
|
+
errorCode = String(at(res.data, errorCodePath));
|
|
81
|
+
if (successCodes.includes(errorCode)) {
|
|
82
|
+
if (cacheData) {
|
|
83
|
+
cache.setCache(requestDataOrParams, res.data, { cacheTime: cacheTime });
|
|
84
|
+
}
|
|
85
|
+
return [2 /*return*/, res.data];
|
|
86
|
+
}
|
|
87
|
+
_a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
|
|
88
|
+
err = new RequestError("服务端错误", "server", res);
|
|
89
|
+
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
90
|
+
defaultMessageShower(customHandler);
|
|
91
|
+
return [3 /*break*/, 3];
|
|
92
|
+
case 1:
|
|
93
|
+
_g = Object;
|
|
94
|
+
return [4 /*yield*/, customHandler(errorCode, res.data, res, __assign(__assign({}, requestOptions), requestParam))];
|
|
95
|
+
case 2:
|
|
96
|
+
_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;
|
|
97
|
+
res.data = replaceResData;
|
|
98
|
+
switch (handlerThrowError) {
|
|
99
|
+
case true:
|
|
100
|
+
throw err;
|
|
101
|
+
case false:
|
|
102
|
+
return [2 /*return*/, res.data];
|
|
103
|
+
}
|
|
104
|
+
_h.label = 3;
|
|
105
|
+
case 3:
|
|
106
|
+
if (throwError) {
|
|
107
|
+
throw err;
|
|
108
|
+
}
|
|
109
|
+
return [2 /*return*/, res.data];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}); }, function (error) { return __awaiter(_this, void 0, void 0, function () {
|
|
113
|
+
var resData, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l;
|
|
114
|
+
return __generator(this, function (_m) {
|
|
115
|
+
switch (_m.label) {
|
|
116
|
+
case 0:
|
|
117
|
+
if (!error.response) return [3 /*break*/, 4];
|
|
118
|
+
resData = error;
|
|
119
|
+
_a = httpErrorCodeMap, _b = error.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
|
|
120
|
+
err = new RequestError("服务端错误", "http", error);
|
|
121
|
+
if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
|
|
122
|
+
defaultMessageShower(customHandler);
|
|
123
|
+
return [3 /*break*/, 3];
|
|
124
|
+
case 1:
|
|
125
|
+
_g = Object;
|
|
126
|
+
return [4 /*yield*/, customHandler(error.response.status, error, __assign(__assign({}, requestOptions), requestParam))];
|
|
127
|
+
case 2:
|
|
128
|
+
_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;
|
|
129
|
+
resData = replaceResData;
|
|
130
|
+
switch (handlerThrowError) {
|
|
131
|
+
case true:
|
|
132
|
+
throw err;
|
|
133
|
+
case false:
|
|
134
|
+
return [2 /*return*/, resData];
|
|
135
|
+
}
|
|
136
|
+
_m.label = 3;
|
|
137
|
+
case 3:
|
|
138
|
+
if (throwError) {
|
|
139
|
+
throw err;
|
|
140
|
+
}
|
|
141
|
+
return [2 /*return*/, resData];
|
|
142
|
+
case 4:
|
|
143
|
+
resData = error;
|
|
144
|
+
err = new RequestError("服务端错误", "http", error);
|
|
145
|
+
err.type = "http";
|
|
146
|
+
err.data = error;
|
|
147
|
+
_l = Object;
|
|
148
|
+
return [4 /*yield*/, otherErrorHandler(error)];
|
|
149
|
+
case 5:
|
|
150
|
+
_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;
|
|
151
|
+
resData = replaceResData;
|
|
152
|
+
switch (handlerThrowError) {
|
|
153
|
+
case true:
|
|
154
|
+
throw err;
|
|
155
|
+
case false:
|
|
156
|
+
return [2 /*return*/, resData];
|
|
157
|
+
}
|
|
158
|
+
if (throwError) {
|
|
159
|
+
throw err;
|
|
160
|
+
}
|
|
161
|
+
return [2 /*return*/, resData];
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}); })];
|
|
137
165
|
}
|
|
138
166
|
});
|
|
139
|
-
});
|
|
167
|
+
});
|
|
140
168
|
}
|
|
141
169
|
request.clearCache = function () {
|
|
142
170
|
cache.clear();
|