@chainflip/utils 0.11.3 → 2.1.0-beta.0
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/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/addresses.cjs +15 -40
- package/dist/addresses.d.ts +4 -3
- package/dist/addresses.js +14 -15
- package/dist/assertion.cjs +23 -82
- package/dist/assertion.d.ts +3 -2
- package/dist/assertion.js +32 -22
- package/dist/async.cjs +96 -115
- package/dist/async.d.ts +24 -21
- package/dist/async.js +92 -87
- package/dist/base58.cjs +9 -93
- package/dist/base58.d.ts +4 -4
- package/dist/base58.js +9 -13
- package/dist/bytes.cjs +49 -97
- package/dist/bytes.d.ts +4 -4
- package/dist/bytes.js +51 -15
- package/dist/chainflip.cjs +428 -327
- package/dist/chainflip.d.ts +188 -185
- package/dist/chainflip.js +425 -41
- package/dist/consts.cjs +306 -277
- package/dist/consts.d.ts +18 -17
- package/dist/consts.js +296 -243
- package/dist/date.cjs +74 -131
- package/dist/date.d.ts +9 -8
- package/dist/date.js +60 -95
- package/dist/guard.cjs +28 -63
- package/dist/guard.d.ts +10 -9
- package/dist/guard.js +17 -28
- package/dist/math.cjs +7 -32
- package/dist/math.d.ts +3 -2
- package/dist/math.js +6 -7
- package/dist/number.cjs +5 -29
- package/dist/number.d.ts +4 -4
- package/dist/number.js +5 -5
- package/dist/ss58.cjs +62 -794
- package/dist/ss58.d.ts +12 -9
- package/dist/ss58.js +59 -712
- package/dist/string.cjs +29 -66
- package/dist/string.d.ts +4 -4
- package/dist/string.js +20 -33
- package/dist/tickMath.cjs +32 -232
- package/dist/tickMath.d.ts +7 -6
- package/dist/tickMath.js +24 -29
- package/dist/types.cjs +0 -18
- package/dist/types.d.ts +35 -34
- package/dist/types.js +1 -0
- package/dist/url.cjs +16 -37
- package/dist/url.d.ts +5 -4
- package/dist/url.js +16 -13
- package/package.json +5 -5
- package/dist/addresses.d.cts +0 -6
- package/dist/assertion.d.cts +0 -11
- package/dist/async.d.cts +0 -33
- package/dist/base58.d.cts +0 -8
- package/dist/bytes.d.cts +0 -11
- package/dist/chainflip.d.cts +0 -236
- package/dist/chunk-3P6TXYEI.js +0 -15
- package/dist/chunk-HBIFE4XN.js +0 -29
- package/dist/chunk-LJJH7U4M.js +0 -302
- package/dist/chunk-XGNPN5CY.js +0 -61
- package/dist/chunk-ZHIKNZLU.js +0 -66
- package/dist/consts.d.cts +0 -33
- package/dist/date.d.cts +0 -26
- package/dist/guard.d.cts +0 -23
- package/dist/math.d.cts +0 -4
- package/dist/number.d.cts +0 -6
- package/dist/ss58.d.cts +0 -14
- package/dist/string.d.cts +0 -16
- package/dist/tickMath.d.cts +0 -15
- package/dist/types.d.cts +0 -41
- package/dist/url.d.cts +0 -6
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region rolldown:runtime
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) {
|
|
13
|
+
__defProp(to, key, {
|
|
14
|
+
get: ((k) => from[k]).bind(null, key),
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
23
|
+
value: mod,
|
|
24
|
+
enumerable: true
|
|
25
|
+
}) : target, mod));
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
|
|
29
|
+
exports.__toESM = __toESM;
|
package/dist/addresses.cjs
CHANGED
|
@@ -1,43 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
1
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
module.exports = __toCommonJS(addresses_exports);
|
|
27
|
-
var FLIP_CONTRACT_ADDRESSES = {
|
|
28
|
-
backspin: "0x10C6E9530F1C1AF873a391030a1D9E8ed0630D26",
|
|
29
|
-
sisyphos: "0xcD079EAB6B5443b545788Fd210C8800FEADd87fa",
|
|
30
|
-
perseverance: "0xdC27c60956cB065D19F08bb69a707E37b36d8086",
|
|
31
|
-
mainnet: "0x826180541412D574cf1336d22c0C0a287822678A"
|
|
2
|
+
//#region src/addresses.ts
|
|
3
|
+
const FLIP_CONTRACT_ADDRESSES = {
|
|
4
|
+
backspin: "0x10C6E9530F1C1AF873a391030a1D9E8ed0630D26",
|
|
5
|
+
sisyphos: "0xcD079EAB6B5443b545788Fd210C8800FEADd87fa",
|
|
6
|
+
perseverance: "0xdC27c60956cB065D19F08bb69a707E37b36d8086",
|
|
7
|
+
mainnet: "0x826180541412D574cf1336d22c0C0a287822678A"
|
|
32
8
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
9
|
+
const STATE_CHAIN_GATEWAY_ADDRESSES = {
|
|
10
|
+
backspin: "0xeEBe00Ac0756308ac4AaBfD76c05c4F3088B8883",
|
|
11
|
+
sisyphos: "0x1F7fE41C798cc7b1D34BdC8de2dDDA4a4bE744D9",
|
|
12
|
+
perseverance: "0xA34a967197Ee90BB7fb28e928388a573c5CFd099",
|
|
13
|
+
mainnet: "0x6995Ab7c4D7F4B03f467Cf4c8E920427d9621DBd"
|
|
38
14
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
});
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
exports.FLIP_CONTRACT_ADDRESSES = FLIP_CONTRACT_ADDRESSES;
|
|
18
|
+
exports.STATE_CHAIN_GATEWAY_ADDRESSES = STATE_CHAIN_GATEWAY_ADDRESSES;
|
package/dist/addresses.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ChainflipNetwork } from
|
|
1
|
+
import { ChainflipNetwork } from "./chainflip.js";
|
|
2
2
|
|
|
3
|
+
//#region src/addresses.d.ts
|
|
3
4
|
declare const FLIP_CONTRACT_ADDRESSES: Record<ChainflipNetwork, `0x${string}`>;
|
|
4
5
|
declare const STATE_CHAIN_GATEWAY_ADDRESSES: Record<ChainflipNetwork, `0x${string}`>;
|
|
5
|
-
|
|
6
|
-
export { FLIP_CONTRACT_ADDRESSES, STATE_CHAIN_GATEWAY_ADDRESSES };
|
|
6
|
+
//#endregion
|
|
7
|
+
export { FLIP_CONTRACT_ADDRESSES, STATE_CHAIN_GATEWAY_ADDRESSES };
|
package/dist/addresses.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
//#region src/addresses.ts
|
|
2
|
+
const FLIP_CONTRACT_ADDRESSES = {
|
|
3
|
+
backspin: "0x10C6E9530F1C1AF873a391030a1D9E8ed0630D26",
|
|
4
|
+
sisyphos: "0xcD079EAB6B5443b545788Fd210C8800FEADd87fa",
|
|
5
|
+
perseverance: "0xdC27c60956cB065D19F08bb69a707E37b36d8086",
|
|
6
|
+
mainnet: "0x826180541412D574cf1336d22c0C0a287822678A"
|
|
7
7
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
export {
|
|
15
|
-
FLIP_CONTRACT_ADDRESSES,
|
|
16
|
-
STATE_CHAIN_GATEWAY_ADDRESSES
|
|
8
|
+
const STATE_CHAIN_GATEWAY_ADDRESSES = {
|
|
9
|
+
backspin: "0xeEBe00Ac0756308ac4AaBfD76c05c4F3088B8883",
|
|
10
|
+
sisyphos: "0x1F7fE41C798cc7b1D34BdC8de2dDDA4a4bE744D9",
|
|
11
|
+
perseverance: "0xA34a967197Ee90BB7fb28e928388a573c5CFd099",
|
|
12
|
+
mainnet: "0x6995Ab7c4D7F4B03f467Cf4c8E920427d9621DBd"
|
|
17
13
|
};
|
|
14
|
+
|
|
15
|
+
//#endregion
|
|
16
|
+
export { FLIP_CONTRACT_ADDRESSES, STATE_CHAIN_GATEWAY_ADDRESSES };
|
package/dist/assertion.cjs
CHANGED
|
@@ -1,100 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/assertion.ts
|
|
21
|
-
var assertion_exports = {};
|
|
22
|
-
__export(assertion_exports, {
|
|
23
|
-
assert: () => assert,
|
|
24
|
-
assertBigInt: () => assertBigInt,
|
|
25
|
-
assertBoolean: () => assertBoolean,
|
|
26
|
-
assertNumber: () => assertNumber,
|
|
27
|
-
assertObject: () => assertObject,
|
|
28
|
-
assertString: () => assertString,
|
|
29
|
-
assertSymbol: () => assertSymbol,
|
|
30
|
-
assertUndefined: () => assertUndefined,
|
|
31
|
-
unreachable: () => unreachable
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(assertion_exports);
|
|
1
|
+
const require_guard = require('./guard.cjs');
|
|
34
2
|
|
|
35
|
-
|
|
36
|
-
var createIsGuard = (type) => (value) => typeof value === type;
|
|
37
|
-
var isString = createIsGuard("string");
|
|
38
|
-
var isNumber = createIsGuard("number");
|
|
39
|
-
var isBigInt = createIsGuard("bigint");
|
|
40
|
-
var isBoolean = createIsGuard("boolean");
|
|
41
|
-
var isSymbol = createIsGuard("symbol");
|
|
42
|
-
var isObject = createIsGuard("object");
|
|
43
|
-
var isUndefined = createIsGuard("undefined");
|
|
44
|
-
|
|
45
|
-
// src/assertion.ts
|
|
3
|
+
//#region src/assertion.ts
|
|
46
4
|
function assert(condition, message = "assertion failed", Constructor = Error) {
|
|
47
|
-
|
|
48
|
-
throw new Constructor(message);
|
|
49
|
-
}
|
|
5
|
+
if (!condition) throw new Constructor(message);
|
|
50
6
|
}
|
|
51
7
|
function assertString(value, message) {
|
|
52
|
-
|
|
53
|
-
throw new TypeError(message ?? `expected a "string", got "${typeof value}"`);
|
|
54
|
-
}
|
|
8
|
+
if (!require_guard.isString(value)) throw new TypeError(message ?? `expected a "string", got "${typeof value}"`);
|
|
55
9
|
}
|
|
56
10
|
function assertNumber(value, message) {
|
|
57
|
-
|
|
58
|
-
throw new TypeError(message ?? `expected a "number", got "${typeof value}"`);
|
|
59
|
-
}
|
|
11
|
+
if (!require_guard.isNumber(value)) throw new TypeError(message ?? `expected a "number", got "${typeof value}"`);
|
|
60
12
|
}
|
|
61
13
|
function assertBigInt(value, message) {
|
|
62
|
-
|
|
63
|
-
throw new TypeError(message ?? `expected a "bigint", got "${typeof value}"`);
|
|
64
|
-
}
|
|
14
|
+
if (!require_guard.isBigInt(value)) throw new TypeError(message ?? `expected a "bigint", got "${typeof value}"`);
|
|
65
15
|
}
|
|
66
16
|
function assertBoolean(value, message) {
|
|
67
|
-
|
|
68
|
-
throw new TypeError(message ?? `expected a "boolean", got "${typeof value}"`);
|
|
69
|
-
}
|
|
17
|
+
if (!require_guard.isBoolean(value)) throw new TypeError(message ?? `expected a "boolean", got "${typeof value}"`);
|
|
70
18
|
}
|
|
71
19
|
function assertSymbol(value, message) {
|
|
72
|
-
|
|
73
|
-
throw new TypeError(message ?? `expected a "symbol", got "${typeof value}"`);
|
|
74
|
-
}
|
|
20
|
+
if (!require_guard.isSymbol(value)) throw new TypeError(message ?? `expected a "symbol", got "${typeof value}"`);
|
|
75
21
|
}
|
|
76
22
|
function assertObject(value, message) {
|
|
77
|
-
|
|
78
|
-
throw new TypeError(message ?? `expected an "object", got "${typeof value}"`);
|
|
79
|
-
}
|
|
23
|
+
if (!require_guard.isObject(value)) throw new TypeError(message ?? `expected an "object", got "${typeof value}"`);
|
|
80
24
|
}
|
|
81
25
|
function assertUndefined(value, message) {
|
|
82
|
-
|
|
83
|
-
throw new TypeError(message ?? `expected "undefined", got "${typeof value}"`);
|
|
84
|
-
}
|
|
26
|
+
if (!require_guard.isUndefined(value)) throw new TypeError(message ?? `expected "undefined", got "${typeof value}"`);
|
|
85
27
|
}
|
|
86
|
-
|
|
87
|
-
|
|
28
|
+
const unreachable = (x, message = "unreachable") => {
|
|
29
|
+
throw new Error(message);
|
|
88
30
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
});
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
exports.assert = assert;
|
|
34
|
+
exports.assertBigInt = assertBigInt;
|
|
35
|
+
exports.assertBoolean = assertBoolean;
|
|
36
|
+
exports.assertNumber = assertNumber;
|
|
37
|
+
exports.assertObject = assertObject;
|
|
38
|
+
exports.assertString = assertString;
|
|
39
|
+
exports.assertSymbol = assertSymbol;
|
|
40
|
+
exports.assertUndefined = assertUndefined;
|
|
41
|
+
exports.unreachable = unreachable;
|
package/dist/assertion.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
//#region src/assertion.d.ts
|
|
1
2
|
declare function assert(condition: unknown, message?: string, Constructor?: ErrorConstructor): asserts condition;
|
|
2
3
|
declare function assertString(value: unknown, message?: string): asserts value is string;
|
|
3
4
|
declare function assertNumber(value: unknown, message?: string): asserts value is number;
|
|
@@ -7,5 +8,5 @@ declare function assertSymbol(value: unknown, message?: string): asserts value i
|
|
|
7
8
|
declare function assertObject(value: unknown, message?: string): asserts value is object;
|
|
8
9
|
declare function assertUndefined(value: unknown, message?: string): asserts value is undefined;
|
|
9
10
|
declare const unreachable: (x: never, message?: string) => never;
|
|
10
|
-
|
|
11
|
-
export { assert, assertBigInt, assertBoolean, assertNumber, assertObject, assertString, assertSymbol, assertUndefined, unreachable };
|
|
11
|
+
//#endregion
|
|
12
|
+
export { assert, assertBigInt, assertBoolean, assertNumber, assertObject, assertString, assertSymbol, assertUndefined, unreachable };
|
package/dist/assertion.js
CHANGED
|
@@ -1,23 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { isBigInt, isBoolean, isNumber, isObject, isString, isSymbol, isUndefined } from "./guard.js";
|
|
2
|
+
|
|
3
|
+
//#region src/assertion.ts
|
|
4
|
+
function assert(condition, message = "assertion failed", Constructor = Error) {
|
|
5
|
+
if (!condition) throw new Constructor(message);
|
|
6
|
+
}
|
|
7
|
+
function assertString(value, message) {
|
|
8
|
+
if (!isString(value)) throw new TypeError(message ?? `expected a "string", got "${typeof value}"`);
|
|
9
|
+
}
|
|
10
|
+
function assertNumber(value, message) {
|
|
11
|
+
if (!isNumber(value)) throw new TypeError(message ?? `expected a "number", got "${typeof value}"`);
|
|
12
|
+
}
|
|
13
|
+
function assertBigInt(value, message) {
|
|
14
|
+
if (!isBigInt(value)) throw new TypeError(message ?? `expected a "bigint", got "${typeof value}"`);
|
|
15
|
+
}
|
|
16
|
+
function assertBoolean(value, message) {
|
|
17
|
+
if (!isBoolean(value)) throw new TypeError(message ?? `expected a "boolean", got "${typeof value}"`);
|
|
18
|
+
}
|
|
19
|
+
function assertSymbol(value, message) {
|
|
20
|
+
if (!isSymbol(value)) throw new TypeError(message ?? `expected a "symbol", got "${typeof value}"`);
|
|
21
|
+
}
|
|
22
|
+
function assertObject(value, message) {
|
|
23
|
+
if (!isObject(value)) throw new TypeError(message ?? `expected an "object", got "${typeof value}"`);
|
|
24
|
+
}
|
|
25
|
+
function assertUndefined(value, message) {
|
|
26
|
+
if (!isUndefined(value)) throw new TypeError(message ?? `expected "undefined", got "${typeof value}"`);
|
|
27
|
+
}
|
|
28
|
+
const unreachable = (x, message = "unreachable") => {
|
|
29
|
+
throw new Error(message);
|
|
23
30
|
};
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
export { assert, assertBigInt, assertBoolean, assertNumber, assertObject, assertString, assertSymbol, assertUndefined, unreachable };
|
package/dist/async.cjs
CHANGED
|
@@ -1,123 +1,104 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
1
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
let reject;
|
|
33
|
-
const promise = new Promise((res, rej) => {
|
|
34
|
-
resolve = res;
|
|
35
|
-
reject = rej;
|
|
36
|
-
});
|
|
37
|
-
return { promise, resolve, reject };
|
|
2
|
+
//#region src/async.ts
|
|
3
|
+
const deferredPromise = () => {
|
|
4
|
+
let resolve;
|
|
5
|
+
let reject;
|
|
6
|
+
return {
|
|
7
|
+
promise: new Promise((res, rej) => {
|
|
8
|
+
resolve = res;
|
|
9
|
+
reject = rej;
|
|
10
|
+
}),
|
|
11
|
+
resolve,
|
|
12
|
+
reject
|
|
13
|
+
};
|
|
38
14
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
15
|
+
const sleep = (ms, { signal } = {}) => {
|
|
16
|
+
const deferred = deferredPromise();
|
|
17
|
+
const timeout = setTimeout(deferred.resolve, ms);
|
|
18
|
+
if (signal) {
|
|
19
|
+
const abort = () => {
|
|
20
|
+
clearTimeout(timeout);
|
|
21
|
+
deferred.resolve();
|
|
22
|
+
};
|
|
23
|
+
signal.addEventListener("abort", abort);
|
|
24
|
+
deferred.promise = deferred.promise.finally(() => {
|
|
25
|
+
signal.removeEventListener("abort", abort);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return deferred.promise;
|
|
53
29
|
};
|
|
54
30
|
var Queue = class {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
31
|
+
promise = Promise.resolve();
|
|
32
|
+
constructor(debounce) {
|
|
33
|
+
this.debounce = debounce;
|
|
34
|
+
}
|
|
35
|
+
enqueue(fn, ...args) {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
this.promise = this.promise.then(async () => {
|
|
38
|
+
const sleepPromise = this.debounce ? sleep(this.debounce) : Promise.resolve();
|
|
39
|
+
await Promise.all([fn(...args).then(resolve, reject), sleepPromise]);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
67
43
|
};
|
|
68
44
|
var RateLimiter = class {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
45
|
+
fn;
|
|
46
|
+
debounce;
|
|
47
|
+
queues;
|
|
48
|
+
index = 0;
|
|
49
|
+
constructor(opts) {
|
|
50
|
+
this.fn = opts.fn;
|
|
51
|
+
this.debounce = opts.debounce;
|
|
52
|
+
this.queues = Array.from({ length: opts.maxConcurrency }, () => new Queue(this.debounce));
|
|
53
|
+
}
|
|
54
|
+
request(...args) {
|
|
55
|
+
const nextIndex = this.index;
|
|
56
|
+
this.index = (this.index + 1) % this.queues.length;
|
|
57
|
+
return this.queues[nextIndex].enqueue(this.fn, ...args);
|
|
58
|
+
}
|
|
83
59
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
60
|
+
const once = async (target, event, opts) => {
|
|
61
|
+
const deferred = deferredPromise();
|
|
62
|
+
const onSuccess = () => {
|
|
63
|
+
target.removeEventListener("error", onError);
|
|
64
|
+
deferred.resolve();
|
|
65
|
+
};
|
|
66
|
+
const onError = () => {
|
|
67
|
+
target.removeEventListener(event, onSuccess);
|
|
68
|
+
deferred.reject(/* @__PURE__ */ new Error("error"));
|
|
69
|
+
};
|
|
70
|
+
target.addEventListener(event, onSuccess, {
|
|
71
|
+
once: true,
|
|
72
|
+
signal: opts?.signal
|
|
73
|
+
});
|
|
74
|
+
target.addEventListener("error", onError, {
|
|
75
|
+
once: true,
|
|
76
|
+
signal: opts?.signal
|
|
77
|
+
});
|
|
78
|
+
if (opts?.signal) {
|
|
79
|
+
const { signal } = opts;
|
|
80
|
+
const abort = () => {
|
|
81
|
+
deferred.reject(/* @__PURE__ */ new Error("aborted"));
|
|
82
|
+
};
|
|
83
|
+
signal.addEventListener("abort", abort);
|
|
84
|
+
deferred.promise = deferred.promise.finally(() => {
|
|
85
|
+
signal.removeEventListener("abort", abort);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (opts?.timeout) {
|
|
89
|
+
const timer = setTimeout(() => {
|
|
90
|
+
deferred.reject(/* @__PURE__ */ new Error("timeout"));
|
|
91
|
+
}, opts.timeout);
|
|
92
|
+
deferred.promise = deferred.promise.finally(() => {
|
|
93
|
+
clearTimeout(timer);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
await deferred.promise;
|
|
115
97
|
};
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
});
|
|
98
|
+
|
|
99
|
+
//#endregion
|
|
100
|
+
exports.Queue = Queue;
|
|
101
|
+
exports.RateLimiter = RateLimiter;
|
|
102
|
+
exports.deferredPromise = deferredPromise;
|
|
103
|
+
exports.once = once;
|
|
104
|
+
exports.sleep = sleep;
|
package/dist/async.d.ts
CHANGED
|
@@ -1,33 +1,36 @@
|
|
|
1
|
+
//#region src/async.d.ts
|
|
1
2
|
declare const deferredPromise: <T>() => {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
promise: Promise<T>;
|
|
4
|
+
resolve: (value: T) => void;
|
|
5
|
+
reject: (error: Error) => void;
|
|
5
6
|
};
|
|
6
7
|
type DeferredPromise<T> = ReturnType<typeof deferredPromise<T>>;
|
|
7
|
-
declare const sleep: (ms: number, {
|
|
8
|
-
|
|
8
|
+
declare const sleep: (ms: number, {
|
|
9
|
+
signal
|
|
10
|
+
}?: {
|
|
11
|
+
signal?: AbortSignal;
|
|
9
12
|
}) => Promise<void>;
|
|
10
13
|
declare class Queue {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
private readonly debounce?;
|
|
15
|
+
private promise;
|
|
16
|
+
constructor(debounce?: number | undefined);
|
|
17
|
+
enqueue<T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, ...args: Args): Promise<T>;
|
|
15
18
|
}
|
|
16
19
|
declare class RateLimiter<T, Args extends unknown[]> {
|
|
20
|
+
fn: (...args: Args) => Promise<T>;
|
|
21
|
+
debounce: number;
|
|
22
|
+
queues: Queue[];
|
|
23
|
+
index: number;
|
|
24
|
+
constructor(opts: {
|
|
17
25
|
fn: (...args: Args) => Promise<T>;
|
|
18
26
|
debounce: number;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
fn: (...args: Args) => Promise<T>;
|
|
23
|
-
debounce: number;
|
|
24
|
-
maxConcurrency: number;
|
|
25
|
-
});
|
|
26
|
-
request(...args: Args): Promise<T>;
|
|
27
|
+
maxConcurrency: number;
|
|
28
|
+
});
|
|
29
|
+
request(...args: Args): Promise<T>;
|
|
27
30
|
}
|
|
28
31
|
declare const once: (target: EventTarget, event: string, opts?: {
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
timeout?: number;
|
|
31
34
|
}) => Promise<void>;
|
|
32
|
-
|
|
33
|
-
export {
|
|
35
|
+
//#endregion
|
|
36
|
+
export { DeferredPromise, Queue, RateLimiter, deferredPromise, once, sleep };
|