rxtutils 1.1.4-beta.9 → 1.1.6
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/README.md +117 -49
- package/cjs/_utils/defaultEquals.cjs +4 -19
- package/cjs/cache/index.cjs +130 -163
- package/cjs/cache/indexDB.cjs +86 -99
- package/cjs/downloadBlob.cjs +14 -0
- package/cjs/hooks/index.cjs +3 -6
- package/cjs/hooks/useCombineControlValue.cjs +33 -41
- package/cjs/index.cjs +16 -17
- package/cjs/request/defaultHandlers.cjs +5 -27
- package/cjs/request/error.cjs +18 -30
- package/cjs/request/index.cjs +194 -174
- package/cjs/store/createGetter/index.cjs +26 -40
- package/cjs/store/createStateStore/index.cjs +47 -90
- package/cjs/store/index.cjs +4 -7
- package/cjs/validator/decorators.cjs +71 -228
- package/cjs/validator/index.cjs +4 -7
- package/cjs/validator/validator.cjs +101 -177
- package/es/_utils/defaultEquals.mjs +4 -17
- package/es/cache/index.d.ts +9 -13
- package/es/cache/index.mjs +132 -160
- package/es/cache/indexDB.d.ts +1 -3
- package/es/cache/indexDB.mjs +87 -98
- package/es/downloadBlob.d.ts +8 -0
- package/es/downloadBlob.mjs +14 -0
- package/es/hooks/index.d.ts +1 -1
- package/es/hooks/index.mjs +4 -1
- package/es/hooks/useCombineControlValue.d.ts +5 -8
- package/es/hooks/useCombineControlValue.mjs +34 -40
- package/es/index.d.ts +28 -8
- package/es/index.mjs +29 -7
- package/es/request/defaultHandlers.d.ts +24 -0
- package/es/request/defaultHandlers.mjs +8 -26
- package/es/request/error.d.ts +3 -6
- package/es/request/error.mjs +18 -28
- package/es/request/index.d.ts +32 -20
- package/es/request/index.mjs +194 -172
- package/es/store/createGetter/index.d.ts +6 -10
- package/es/store/createGetter/index.mjs +28 -39
- package/es/store/createStateStore/index.d.ts +9 -9
- package/es/store/createStateStore/index.mjs +49 -87
- package/es/store/index.d.ts +4 -2
- package/es/store/index.mjs +7 -2
- package/es/validator/decorators.d.ts +12 -21
- package/es/validator/decorators.mjs +81 -226
- package/es/validator/index.d.ts +2 -2
- package/es/validator/index.mjs +16 -2
- package/es/validator/validator.d.ts +5 -6
- package/es/validator/validator.mjs +102 -176
- package/package.json +85 -15
- package/cjs/_utils/deepAssign.cjs +0 -25
- package/cjs/cache/index.d.ts +0 -141
- package/cjs/cache/indexDB.d.ts +0 -52
- package/cjs/hooks/index.d.ts +0 -1
- package/cjs/hooks/useCombineControlValue.d.ts +0 -21
- package/cjs/index.d.ts +0 -8
- package/cjs/request/error.d.ts +0 -31
- package/cjs/request/index.d.ts +0 -147
- package/cjs/store/createGetter/index.d.ts +0 -30
- package/cjs/store/createStateStore/index.d.ts +0 -42
- package/cjs/store/index.d.ts +0 -2
- package/cjs/validator/decorators.d.ts +0 -159
- package/cjs/validator/index.d.ts +0 -2
- package/cjs/validator/validator.d.ts +0 -84
- package/es/_utils/deepAssign.mjs +0 -23
package/cjs/cache/indexDB.cjs
CHANGED
|
@@ -1,100 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return this._getStore().then(function (store) {
|
|
88
|
-
return new Promise(function (resolve, reject) {
|
|
89
|
-
var request = store.get(key);
|
|
90
|
-
request.onsuccess = function () {
|
|
91
|
-
return resolve(request.result ? request.result.value : undefined);
|
|
92
|
-
};
|
|
93
|
-
request.onerror = function () { var _a; return reject("Could not get the item: ".concat((_a = request.error) === null || _a === void 0 ? void 0 : _a.message)); };
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
return IndexedDBStorage;
|
|
98
|
-
}());
|
|
99
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
class IndexedDBStorage {
|
|
4
|
+
/**
|
|
5
|
+
* 构造函数
|
|
6
|
+
* @param dbName 数据库名称
|
|
7
|
+
* @param storeName 存储对象名称
|
|
8
|
+
*/
|
|
9
|
+
constructor(dbName, storeName) {
|
|
10
|
+
this.db = null;
|
|
11
|
+
this.dbName = dbName;
|
|
12
|
+
this.storeName = storeName;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 打开数据库连接
|
|
16
|
+
* 如果数据库不存在则创建新的数据库和存储对象
|
|
17
|
+
* @private
|
|
18
|
+
* @returns Promise<IDBDatabase> 数据库连接实例
|
|
19
|
+
*/
|
|
20
|
+
_open() {
|
|
21
|
+
return new Promise((resolve, reject) => {
|
|
22
|
+
if (this.db) {
|
|
23
|
+
resolve(this.db);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const request = indexedDB.open(this.dbName);
|
|
27
|
+
request.onupgradeneeded = (event) => {
|
|
28
|
+
const db = event.target.result;
|
|
29
|
+
db.createObjectStore(this.storeName, { keyPath: "key" });
|
|
30
|
+
};
|
|
31
|
+
request.onerror = () => {
|
|
32
|
+
reject(`IndexedDB open request error: ${request.error?.message}`);
|
|
33
|
+
};
|
|
34
|
+
request.onsuccess = (event) => {
|
|
35
|
+
this.db = event.target.result;
|
|
36
|
+
resolve(this.db);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 获取存储对象
|
|
42
|
+
* @param mode 事务模式,默认为只读模式
|
|
43
|
+
* - readonly: 只读模式
|
|
44
|
+
* - readwrite: 读写模式
|
|
45
|
+
* @private
|
|
46
|
+
* @returns Promise<IDBObjectStore> 存储对象实例
|
|
47
|
+
*/
|
|
48
|
+
_getStore(mode = "readonly") {
|
|
49
|
+
return this._open().then((db) => {
|
|
50
|
+
const transaction = db.transaction(this.storeName, mode);
|
|
51
|
+
return transaction.objectStore(this.storeName);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 设置键值对
|
|
56
|
+
* @param key 键名
|
|
57
|
+
* @param value 要存储的值
|
|
58
|
+
* @returns Promise<void> 存储操作的结果
|
|
59
|
+
* @throws 当存储操作失败时抛出错误
|
|
60
|
+
*/
|
|
61
|
+
setItem(key, value) {
|
|
62
|
+
return this._getStore("readwrite").then((store) => {
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
const request = store.put({ key, value });
|
|
65
|
+
request.onsuccess = () => resolve();
|
|
66
|
+
request.onerror = () => reject(`Could not set the item: ${request.error?.message}`);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 获取键对应的值
|
|
72
|
+
* @param key 要获取的键名
|
|
73
|
+
* @returns Promise<T> 返回存储的值,如果不存在则返回 undefined
|
|
74
|
+
* @throws 当获取操作失败时抛出错误
|
|
75
|
+
* @template T 存储值的类型,默认为 any
|
|
76
|
+
*/
|
|
77
|
+
getItem(key) {
|
|
78
|
+
return this._getStore().then((store) => {
|
|
79
|
+
return new Promise((resolve, reject) => {
|
|
80
|
+
const request = store.get(key);
|
|
81
|
+
request.onsuccess = () => resolve(request.result ? request.result.value : void 0);
|
|
82
|
+
request.onerror = () => reject(`Could not get the item: ${request.error?.message}`);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
100
87
|
exports.IndexedDBStorage = IndexedDBStorage;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const downloadBlob = (blob, fileName, autoRevoke = true) => {
|
|
4
|
+
const url = URL.createObjectURL(blob);
|
|
5
|
+
const a = document.createElement("a");
|
|
6
|
+
a.href = url;
|
|
7
|
+
a.download = fileName;
|
|
8
|
+
a.click();
|
|
9
|
+
if (autoRevoke) {
|
|
10
|
+
URL.revokeObjectURL(url);
|
|
11
|
+
}
|
|
12
|
+
return url;
|
|
13
|
+
};
|
|
14
|
+
exports.downloadBlob = downloadBlob;
|
package/cjs/hooks/index.cjs
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const useCombineControlValue = require("./useCombineControlValue.cjs");
|
|
7
4
|
exports.useCombineControlValue = useCombineControlValue.useCombineControlValue;
|
|
@@ -1,43 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return value;
|
|
35
|
-
return internalValue;
|
|
36
|
-
}, [hasValue, internalValue, value]);
|
|
37
|
-
return {
|
|
38
|
-
value: finalValue,
|
|
39
|
-
onChange: handleChange
|
|
40
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
function useCombineControlValue({
|
|
5
|
+
props,
|
|
6
|
+
valueKey = "value",
|
|
7
|
+
defaultValue,
|
|
8
|
+
onChange
|
|
9
|
+
}, resolveFn) {
|
|
10
|
+
const { [valueKey]: value } = props;
|
|
11
|
+
const hasValue = Object.prototype.hasOwnProperty.call(props, valueKey);
|
|
12
|
+
const [internalValue, setInternalValue] = react.useState(value ?? defaultValue);
|
|
13
|
+
const handleChange = react.useCallback(
|
|
14
|
+
(...params) => {
|
|
15
|
+
let realNextVal;
|
|
16
|
+
if (typeof resolveFn === "function") {
|
|
17
|
+
realNextVal = resolveFn(...params);
|
|
18
|
+
} else {
|
|
19
|
+
realNextVal = params[0];
|
|
20
|
+
}
|
|
21
|
+
setInternalValue(realNextVal);
|
|
22
|
+
onChange?.(...params);
|
|
23
|
+
},
|
|
24
|
+
[onChange, resolveFn]
|
|
25
|
+
);
|
|
26
|
+
const finalValue = react.useMemo(() => {
|
|
27
|
+
if (hasValue) return value;
|
|
28
|
+
return internalValue;
|
|
29
|
+
}, [hasValue, internalValue, value]);
|
|
30
|
+
return {
|
|
31
|
+
value: finalValue,
|
|
32
|
+
onChange: handleChange
|
|
33
|
+
};
|
|
41
34
|
}
|
|
42
|
-
|
|
43
35
|
exports.useCombineControlValue = useCombineControlValue;
|
package/cjs/index.cjs
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
exports.
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
16
|
-
exports.createStoreGetterMemo = index$3.createStoreGetterMemo;
|
|
17
|
-
exports.createStateStore = index$2.default;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const cache_index = require("./cache/index.cjs");
|
|
4
|
+
const request_index = require("./request/index.cjs");
|
|
5
|
+
const index$1 = require("./store/createGetter/index.cjs");
|
|
6
|
+
const index = require("./store/createStateStore/index.cjs");
|
|
7
|
+
const validator = require("./validator/validator.cjs");
|
|
8
|
+
const decorators = require("./validator/decorators.cjs");
|
|
9
|
+
const useCombineControlValue = require("./hooks/useCombineControlValue.cjs");
|
|
10
|
+
const downloadBlob = require("./downloadBlob.cjs");
|
|
11
|
+
exports.Cache = cache_index.default;
|
|
12
|
+
exports.createBaseRequest = request_index.default;
|
|
13
|
+
exports.createStoreGetter = index$1.createStoreGetter;
|
|
14
|
+
exports.createStoreGetterMemo = index$1.createStoreGetterMemo;
|
|
15
|
+
exports.createStateStore = index.default;
|
|
18
16
|
exports.BaseValidator = validator.BaseValidator;
|
|
19
17
|
exports.VArray = decorators.VArray;
|
|
20
18
|
exports.VBoolean = decorators.VBoolean;
|
|
@@ -28,3 +26,4 @@ exports.VPattern = decorators.VPattern;
|
|
|
28
26
|
exports.VRequired = decorators.VRequired;
|
|
29
27
|
exports.VString = decorators.VString;
|
|
30
28
|
exports.useCombineControlValue = useCombineControlValue.useCombineControlValue;
|
|
29
|
+
exports.downloadBlob = downloadBlob.downloadBlob;
|
|
@@ -1,36 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* 默认业务错误码处理函数
|
|
5
|
-
* 用于处理业务错误码的默认行为
|
|
6
|
-
*
|
|
7
|
-
* @param defaultMessageShower 消息展示函数
|
|
8
|
-
* @param code 业务错误码
|
|
9
|
-
*/
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
10
3
|
function _defaultErrorCodeHandler(defaultMessageShower, code) {
|
|
11
|
-
|
|
4
|
+
defaultMessageShower(`请求出错,错误码:${code},请稍后再试`);
|
|
12
5
|
}
|
|
13
|
-
/**
|
|
14
|
-
* 默认 HTTP 错误码处理函数
|
|
15
|
-
* 用于处理 HTTP 状态码错误的默认行为
|
|
16
|
-
*
|
|
17
|
-
* @param defaultMessageShower 消息展示函数
|
|
18
|
-
* @param code HTTP 状态码
|
|
19
|
-
*/
|
|
20
6
|
function _defaultHttpErrorCodeHandler(defaultMessageShower, code) {
|
|
21
|
-
|
|
7
|
+
defaultMessageShower(`服务端请求出错,Http错误码:${String(code)},请稍后再试`);
|
|
22
8
|
}
|
|
23
|
-
/**
|
|
24
|
-
* 默认其他错误处理函数
|
|
25
|
-
* 用于处理未知错误或非标准错误的默认行为
|
|
26
|
-
*
|
|
27
|
-
* @param defaultMessageShower 消息展示函数
|
|
28
|
-
* @param error 错误对象
|
|
29
|
-
*/
|
|
30
9
|
function _defaultOtherErrorCodeHandler(defaultMessageShower, error) {
|
|
31
|
-
|
|
10
|
+
defaultMessageShower(`未知请求出错,请稍后再试`);
|
|
32
11
|
}
|
|
33
|
-
|
|
34
12
|
exports._defaultErrorCodeHandler = _defaultErrorCodeHandler;
|
|
35
13
|
exports._defaultHttpErrorCodeHandler = _defaultHttpErrorCodeHandler;
|
|
36
14
|
exports._defaultOtherErrorCodeHandler = _defaultOtherErrorCodeHandler;
|
package/cjs/request/error.cjs
CHANGED
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*/
|
|
20
|
-
function RequestError(message, type, data) {
|
|
21
|
-
var _this = _super.call(this, message) || this;
|
|
22
|
-
_this.name = 'RequestError';
|
|
23
|
-
_this.type = type;
|
|
24
|
-
_this.data = data;
|
|
25
|
-
return _this;
|
|
26
|
-
}
|
|
27
|
-
return RequestError;
|
|
28
|
-
}(Error));
|
|
29
|
-
|
|
30
|
-
module.exports = RequestError;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
class RequestError extends Error {
|
|
4
|
+
/**
|
|
5
|
+
* 构造函数
|
|
6
|
+
* @param message 错误消息
|
|
7
|
+
* @param type 错误类型
|
|
8
|
+
* @param data 错误相关的数据
|
|
9
|
+
*/
|
|
10
|
+
constructor(message, type, data, code = "") {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = "RequestError";
|
|
13
|
+
this.type = type;
|
|
14
|
+
this.data = data;
|
|
15
|
+
this.code = code;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = RequestError;
|