rxtutils 1.1.4-beta.10 → 1.1.4-beta.12

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.
@@ -7,7 +7,6 @@ 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');
11
10
 
12
11
  /**
13
12
  * 创建基础请求实例
@@ -35,37 +34,43 @@ function createBaseRequest(baseOptions) {
35
34
  var cache = new index.default(cacheDataInStorage, cacheDataKey, cacheTime, indexDBName, cacheKeyEquals);
36
35
  function request(requestParam, options) {
37
36
  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,
37
+ function retry() {
38
+ if (retryTimes > 0) {
39
+ return request(requestParam, tslib.__assign(tslib.__assign({}, options), { retryTimes: retryTimes - 1 }));
40
+ }
41
+ return null;
42
+ }
43
+ 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,
39
44
  // axiosOptions = {},
40
- throwError, _v, retryTimes, cacheItem;
45
+ throwError, _x, retryTimes, cacheItem;
41
46
  var _this = this;
42
- return tslib.__generator(this, function (_w) {
43
- switch (_w.label) {
47
+ return tslib.__generator(this, function (_y) {
48
+ switch (_y.label) {
44
49
  case 0:
45
50
  _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
51
  finalRequestOptions = tslib.__assign(tslib.__assign({}, requestOptions), requestParam);
47
52
  _i = 0, requestMiddlewares_1 = requestMiddlewares;
48
- _w.label = 1;
53
+ _y.label = 1;
49
54
  case 1:
50
55
  if (!(_i < requestMiddlewares_1.length)) return [3 /*break*/, 4];
51
56
  middleware = requestMiddlewares_1[_i];
52
57
  return [4 /*yield*/, middleware(finalAxiosOptions, finalRequestOptions)];
53
58
  case 2:
54
- _d = _w.sent(), nextAxiosOptions = _d.axiosOptions, nextRequestOptions = _d.requestOptions;
55
- deepAssign.deepAssign({}, finalAxiosOptions, nextAxiosOptions);
56
- deepAssign.deepAssign({}, finalRequestOptions, nextRequestOptions);
57
- _w.label = 3;
59
+ _d = _y.sent(), _e = _d.axiosOptions, nextAxiosOptions = _e === void 0 ? finalAxiosOptions : _e, _f = _d.requestOptions, nextRequestOptions = _f === void 0 ? finalRequestOptions : _f;
60
+ finalAxiosOptions = nextAxiosOptions;
61
+ finalRequestOptions = nextRequestOptions;
62
+ _y.label = 3;
58
63
  case 3:
59
64
  _i++;
60
65
  return [3 /*break*/, 1];
61
66
  case 4:
62
- method = finalRequestOptions.method, url = finalRequestOptions.url, _e = finalRequestOptions.data, data = _e === void 0 ? {} : _e, _f = finalRequestOptions.params, params = _f === void 0 ? {} : _f;
67
+ method = finalRequestOptions.method, url = finalRequestOptions.url, _g = finalRequestOptions.data, data = _g === void 0 ? {} : _g, _h = finalRequestOptions.params, params = _h === void 0 ? {} : _h;
63
68
  requestDataOrParams = params;
64
69
  if (method.toLowerCase() === "post") {
65
70
  requestDataOrParams = data;
66
71
  }
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, _v = _h.retryTimes, retryTimes = _v === void 0 ? 0 : _v;
72
+ _j = tslib.__assign(tslib.__assign(tslib.__assign({}, baseOptions), createOptions), options).defaultMessageShower, defaultMessageShower = _j === void 0 ? console.error : _j;
73
+ _k = tslib.__assign(tslib.__assign(tslib.__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 ? defaultHandlers._defaultErrorCodeHandler.bind(null, defaultMessageShower) : _o, _p = _k.defaultHttpErrorCodeHandler, defaultHttpErrorCodeHandler = _p === void 0 ? defaultHandlers._defaultHttpErrorCodeHandler.bind(null, defaultMessageShower) : _p, _q = _k.otherErrorHandler, otherErrorHandler = _q === void 0 ? defaultHandlers._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;
69
74
  if (enableCache) {
70
75
  cacheItem = cache.getCache(requestDataOrParams);
71
76
  if (cacheItem) {
@@ -75,7 +80,7 @@ function createBaseRequest(baseOptions) {
75
80
  return [2 /*return*/, instance
76
81
  .request(tslib.__assign({ method: method, url: url, data: data, params: params }, finalAxiosOptions))
77
82
  .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;
83
+ var errorCode, _a, _b, _c, customHandler, err, retryTask, _d, _e, replaceResData, _f, handlerThrowError, _g, retryTask;
79
84
  return tslib.__generator(this, function (_h) {
80
85
  switch (_h.label) {
81
86
  case 0:
@@ -86,20 +91,22 @@ function createBaseRequest(baseOptions) {
86
91
  }
87
92
  return [2 /*return*/, res.data];
88
93
  }
89
- // 不在成功 code 中,意味着请求失败
90
- if (retryTimes > 0) {
91
- return [2 /*return*/, request(requestParam, tslib.__assign(tslib.__assign({}, options), { retryTimes: retryTimes - 1 }))];
92
- }
93
94
  _a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
94
95
  err = new error("服务端错误", "server", res);
95
96
  if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
96
97
  defaultMessageShower(customHandler);
98
+ retryTask = retry();
99
+ if (retryTask)
100
+ return [2 /*return*/, retryTask];
97
101
  return [3 /*break*/, 3];
98
102
  case 1:
99
103
  _g = Object;
100
104
  return [4 /*yield*/, customHandler(errorCode, res.data, res, tslib.__assign(tslib.__assign({}, requestOptions), requestParam))];
101
105
  case 2:
102
106
  _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;
107
+ retryTask = retry();
108
+ if (retryTask)
109
+ return [2 /*return*/, retryTask];
103
110
  res.data = replaceResData;
104
111
  switch (handlerThrowError) {
105
112
  case true:
@@ -116,25 +123,28 @@ function createBaseRequest(baseOptions) {
116
123
  }
117
124
  });
118
125
  }); }, function (error$1) { return tslib.__awaiter(_this, void 0, void 0, function () {
119
- var resData, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l;
126
+ var resData, _a, _b, _c, customHandler, err, retryTask, _d, _e, replaceResData, _f, handlerThrowError, _g, retryTask, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l, retryTask;
120
127
  return tslib.__generator(this, function (_m) {
121
128
  switch (_m.label) {
122
129
  case 0:
123
- if (retryTimes > 0) {
124
- return [2 /*return*/, request(requestParam, tslib.__assign(tslib.__assign({}, options), { retryTimes: retryTimes - 1 }))];
125
- }
126
130
  if (!error$1.response) return [3 /*break*/, 4];
127
131
  resData = error$1;
128
132
  _a = httpErrorCodeMap, _b = error$1.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
129
133
  err = new error("服务端错误", "http", error$1);
130
134
  if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
131
135
  defaultMessageShower(customHandler);
136
+ retryTask = retry();
137
+ if (retryTask)
138
+ return [2 /*return*/, retryTask];
132
139
  return [3 /*break*/, 3];
133
140
  case 1:
134
141
  _g = Object;
135
142
  return [4 /*yield*/, customHandler(error$1.response.status, error$1, tslib.__assign(tslib.__assign({}, requestOptions), requestParam))];
136
143
  case 2:
137
144
  _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;
145
+ retryTask = retry();
146
+ if (retryTask)
147
+ return [2 /*return*/, retryTask];
138
148
  resData = replaceResData;
139
149
  switch (handlerThrowError) {
140
150
  case true:
@@ -157,6 +167,9 @@ function createBaseRequest(baseOptions) {
157
167
  return [4 /*yield*/, otherErrorHandler(error$1)];
158
168
  case 5:
159
169
  _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;
170
+ retryTask = retry();
171
+ if (retryTask)
172
+ return [2 /*return*/, retryTask];
160
173
  resData = replaceResData;
161
174
  switch (handlerThrowError) {
162
175
  case true:
@@ -88,7 +88,7 @@ interface Options<Params = any, Data = any> {
88
88
  * 默认错误码处理函数
89
89
  * 当错误码不在 errorCodeMap 中时调用
90
90
  */
91
- defaultErrorCodeHandler?: (code: string, data: Data, res: AxiosResponse<Data>) => Promise<ErrorHandlerReturnType<Data> | void>;
91
+ defaultErrorCodeHandler?: (code: string, data: Data, res: AxiosResponse<Data>) => ErrorHandlerReturnType<Data> | void | Promise<ErrorHandlerReturnType<Data> | void>;
92
92
  /**
93
93
  * 成功状态的错误码列表
94
94
  * @default ['0', '200']
@@ -104,12 +104,12 @@ interface Options<Params = any, Data = any> {
104
104
  * 默认 HTTP 错误码处理函数
105
105
  * 当 HTTP 状态码不在 httpErrorCodeMap 中时调用
106
106
  */
107
- defaultHttpErrorCodeHandler?: (code: number, error: any) => Promise<ErrorHandlerReturnType<Data> | void>;
107
+ defaultHttpErrorCodeHandler?: (code: number, error: any) => ErrorHandlerReturnType<Data> | void | Promise<ErrorHandlerReturnType<Data> | void>;
108
108
  /**
109
109
  * 其他错误处理函数
110
110
  * 处理非 HTTP 错误和非业务错误码的错误
111
111
  */
112
- otherErrorHandler?: (error: any) => Promise<ErrorHandlerReturnType<Data> | void>;
112
+ otherErrorHandler?: (error: any) => ErrorHandlerReturnType<Data> | void | Promise<ErrorHandlerReturnType<Data> | void>;
113
113
  axiosOptions?: Omit<AxiosRequestConfig<Params>, "method" | "url" | "params" | "data">;
114
114
  requestMiddlewares?: ((options: Options<Params, Data>, requestOptions: RequestOptions<Params>) => Promise<{
115
115
  axiosOptions?: Options<Params, Data>["axiosOptions"];
@@ -88,7 +88,7 @@ interface Options<Params = any, Data = any> {
88
88
  * 默认错误码处理函数
89
89
  * 当错误码不在 errorCodeMap 中时调用
90
90
  */
91
- defaultErrorCodeHandler?: (code: string, data: Data, res: AxiosResponse<Data>) => Promise<ErrorHandlerReturnType<Data> | void>;
91
+ defaultErrorCodeHandler?: (code: string, data: Data, res: AxiosResponse<Data>) => ErrorHandlerReturnType<Data> | void | Promise<ErrorHandlerReturnType<Data> | void>;
92
92
  /**
93
93
  * 成功状态的错误码列表
94
94
  * @default ['0', '200']
@@ -104,12 +104,12 @@ interface Options<Params = any, Data = any> {
104
104
  * 默认 HTTP 错误码处理函数
105
105
  * 当 HTTP 状态码不在 httpErrorCodeMap 中时调用
106
106
  */
107
- defaultHttpErrorCodeHandler?: (code: number, error: any) => Promise<ErrorHandlerReturnType<Data> | void>;
107
+ defaultHttpErrorCodeHandler?: (code: number, error: any) => ErrorHandlerReturnType<Data> | void | Promise<ErrorHandlerReturnType<Data> | void>;
108
108
  /**
109
109
  * 其他错误处理函数
110
110
  * 处理非 HTTP 错误和非业务错误码的错误
111
111
  */
112
- otherErrorHandler?: (error: any) => Promise<ErrorHandlerReturnType<Data> | void>;
112
+ otherErrorHandler?: (error: any) => ErrorHandlerReturnType<Data> | void | Promise<ErrorHandlerReturnType<Data> | void>;
113
113
  axiosOptions?: Omit<AxiosRequestConfig<Params>, "method" | "url" | "params" | "data">;
114
114
  requestMiddlewares?: ((options: Options<Params, Data>, requestOptions: RequestOptions<Params>) => Promise<{
115
115
  axiosOptions?: Options<Params, Data>["axiosOptions"];
@@ -5,7 +5,6 @@ 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';
9
8
 
10
9
  /**
11
10
  * 创建基础请求实例
@@ -33,37 +32,43 @@ function createBaseRequest(baseOptions) {
33
32
  var cache = new Cache(cacheDataInStorage, cacheDataKey, cacheTime, indexDBName, cacheKeyEquals);
34
33
  function request(requestParam, options) {
35
34
  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,
35
+ function retry() {
36
+ if (retryTimes > 0) {
37
+ return request(requestParam, __assign(__assign({}, options), { retryTimes: retryTimes - 1 }));
38
+ }
39
+ return null;
40
+ }
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,
37
42
  // axiosOptions = {},
38
- throwError, _v, retryTimes, cacheItem;
43
+ throwError, _x, retryTimes, cacheItem;
39
44
  var _this = this;
40
- return __generator(this, function (_w) {
41
- switch (_w.label) {
45
+ return __generator(this, function (_y) {
46
+ switch (_y.label) {
42
47
  case 0:
43
48
  _a = __assign(__assign(__assign({}, baseOptions), createOptions), options), _b = _a.requestMiddlewares, requestMiddlewares = _b === void 0 ? [] : _b, _c = _a.axiosOptions, finalAxiosOptions = _c === void 0 ? {} : _c;
44
49
  finalRequestOptions = __assign(__assign({}, requestOptions), requestParam);
45
50
  _i = 0, requestMiddlewares_1 = requestMiddlewares;
46
- _w.label = 1;
51
+ _y.label = 1;
47
52
  case 1:
48
53
  if (!(_i < requestMiddlewares_1.length)) return [3 /*break*/, 4];
49
54
  middleware = requestMiddlewares_1[_i];
50
55
  return [4 /*yield*/, middleware(finalAxiosOptions, finalRequestOptions)];
51
56
  case 2:
52
- _d = _w.sent(), nextAxiosOptions = _d.axiosOptions, nextRequestOptions = _d.requestOptions;
53
- deepAssign({}, finalAxiosOptions, nextAxiosOptions);
54
- deepAssign({}, finalRequestOptions, nextRequestOptions);
55
- _w.label = 3;
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;
56
61
  case 3:
57
62
  _i++;
58
63
  return [3 /*break*/, 1];
59
64
  case 4:
60
- method = finalRequestOptions.method, url = finalRequestOptions.url, _e = finalRequestOptions.data, data = _e === void 0 ? {} : _e, _f = finalRequestOptions.params, params = _f === void 0 ? {} : _f;
65
+ method = finalRequestOptions.method, url = finalRequestOptions.url, _g = finalRequestOptions.data, data = _g === void 0 ? {} : _g, _h = finalRequestOptions.params, params = _h === void 0 ? {} : _h;
61
66
  requestDataOrParams = params;
62
67
  if (method.toLowerCase() === "post") {
63
68
  requestDataOrParams = data;
64
69
  }
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, _v = _h.retryTimes, retryTimes = _v === void 0 ? 0 : _v;
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;
67
72
  if (enableCache) {
68
73
  cacheItem = cache.getCache(requestDataOrParams);
69
74
  if (cacheItem) {
@@ -73,7 +78,7 @@ function createBaseRequest(baseOptions) {
73
78
  return [2 /*return*/, instance
74
79
  .request(__assign({ method: method, url: url, data: data, params: params }, finalAxiosOptions))
75
80
  .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;
81
+ var errorCode, _a, _b, _c, customHandler, err, retryTask, _d, _e, replaceResData, _f, handlerThrowError, _g, retryTask;
77
82
  return __generator(this, function (_h) {
78
83
  switch (_h.label) {
79
84
  case 0:
@@ -84,20 +89,22 @@ function createBaseRequest(baseOptions) {
84
89
  }
85
90
  return [2 /*return*/, res.data];
86
91
  }
87
- // 不在成功 code 中,意味着请求失败
88
- if (retryTimes > 0) {
89
- return [2 /*return*/, request(requestParam, __assign(__assign({}, options), { retryTimes: retryTimes - 1 }))];
90
- }
91
92
  _a = errorCodeMap, _b = errorCode, _c = _a[_b], customHandler = _c === void 0 ? defaultErrorCodeHandler : _c;
92
93
  err = new RequestError("服务端错误", "server", res);
93
94
  if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
94
95
  defaultMessageShower(customHandler);
96
+ retryTask = retry();
97
+ if (retryTask)
98
+ return [2 /*return*/, retryTask];
95
99
  return [3 /*break*/, 3];
96
100
  case 1:
97
101
  _g = Object;
98
102
  return [4 /*yield*/, customHandler(errorCode, res.data, res, __assign(__assign({}, requestOptions), requestParam))];
99
103
  case 2:
100
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];
101
108
  res.data = replaceResData;
102
109
  switch (handlerThrowError) {
103
110
  case true:
@@ -114,25 +121,28 @@ function createBaseRequest(baseOptions) {
114
121
  }
115
122
  });
116
123
  }); }, function (error) { return __awaiter(_this, void 0, void 0, function () {
117
- var resData, _a, _b, _c, customHandler, err, _d, _e, replaceResData, _f, handlerThrowError, _g, resData, err, _h, _j, replaceResData, _k, handlerThrowError, _l;
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;
118
125
  return __generator(this, function (_m) {
119
126
  switch (_m.label) {
120
127
  case 0:
121
- if (retryTimes > 0) {
122
- return [2 /*return*/, request(requestParam, __assign(__assign({}, options), { retryTimes: retryTimes - 1 }))];
123
- }
124
128
  if (!error.response) return [3 /*break*/, 4];
125
129
  resData = error;
126
130
  _a = httpErrorCodeMap, _b = error.response.status, _c = _a[_b], customHandler = _c === void 0 ? defaultHttpErrorCodeHandler : _c;
127
131
  err = new RequestError("服务端错误", "http", error);
128
132
  if (!(typeof customHandler === "string")) return [3 /*break*/, 1];
129
133
  defaultMessageShower(customHandler);
134
+ retryTask = retry();
135
+ if (retryTask)
136
+ return [2 /*return*/, retryTask];
130
137
  return [3 /*break*/, 3];
131
138
  case 1:
132
139
  _g = Object;
133
140
  return [4 /*yield*/, customHandler(error.response.status, error, __assign(__assign({}, requestOptions), requestParam))];
134
141
  case 2:
135
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];
136
146
  resData = replaceResData;
137
147
  switch (handlerThrowError) {
138
148
  case true:
@@ -155,6 +165,9 @@ function createBaseRequest(baseOptions) {
155
165
  return [4 /*yield*/, otherErrorHandler(error)];
156
166
  case 5:
157
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];
158
171
  resData = replaceResData;
159
172
  switch (handlerThrowError) {
160
173
  case true:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rxtutils",
3
- "version": "1.1.4-beta.10",
3
+ "version": "1.1.4-beta.12",
4
4
  "type": "module",
5
5
  "main": "cjs/index.cjs",
6
6
  "module": "es/index.mjs",
@@ -1,25 +0,0 @@
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;
@@ -1,23 +0,0 @@
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 };