@api3/commons 0.9.1 → 0.11.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/README.md +5 -3
- package/dist/blockchain-utilities/derivation.d.ts.map +1 -1
- package/dist/blockchain-utilities/derivation.js +3 -3
- package/dist/blockchain-utilities/derivation.js.map +1 -1
- package/dist/config-parsing/index.d.ts.map +1 -1
- package/dist/config-parsing/index.js +2 -2
- package/dist/config-parsing/index.js.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/logger/async-storage.d.ts +0 -1
- package/dist/logger/async-storage.d.ts.map +1 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/node-index.d.ts.map +1 -1
- package/dist/node-index.js +0 -1
- package/dist/node-index.js.map +1 -1
- package/dist/processing/processing.d.ts.map +1 -1
- package/dist/processing/unsafe-evaluate.d.ts.map +1 -1
- package/dist/processing/unsafe-evaluate.js +1 -3
- package/dist/processing/unsafe-evaluate.js.map +1 -1
- package/dist/processing/vm-timers.d.ts +0 -5
- package/dist/processing/vm-timers.d.ts.map +1 -1
- package/dist/run-in-loop/index.d.ts +44 -0
- package/dist/run-in-loop/index.d.ts.map +1 -0
- package/dist/run-in-loop/index.js +48 -0
- package/dist/run-in-loop/index.js.map +1 -0
- package/dist/universal-index.d.ts +2 -0
- package/dist/universal-index.d.ts.map +1 -1
- package/dist/universal-index.js +2 -0
- package/dist/universal-index.js.map +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +12 -33
- package/src/logger/index.test.ts +0 -1
- package/src/node-index.ts +0 -1
- package/src/processing/unsafe-evaluate.ts +0 -1
- package/src/run-in-loop/README.md +3 -0
- package/src/run-in-loop/index.ts +100 -0
- package/src/universal-index.ts +2 -0
- package/src/utils/README.md +3 -0
- package/src/utils/index.ts +7 -0
- package/dist/eslint/internal.d.ts +0 -15
- package/dist/eslint/internal.d.ts.map +0 -1
- package/dist/eslint/internal.js +0 -24
- package/dist/eslint/internal.js.map +0 -1
- package/dist/eslint/jest.d.ts +0 -29
- package/dist/eslint/jest.d.ts.map +0 -1
- package/dist/eslint/jest.js +0 -38
- package/dist/eslint/jest.js.map +0 -1
- package/dist/eslint/next-js.d.ts +0 -27
- package/dist/eslint/next-js.d.ts.map +0 -1
- package/dist/eslint/next-js.js +0 -33
- package/dist/eslint/next-js.js.map +0 -1
- package/dist/eslint/react.d.ts +0 -90
- package/dist/eslint/react.d.ts.map +0 -1
- package/dist/eslint/react.js +0 -85
- package/dist/eslint/react.js.map +0 -1
- package/dist/eslint/universal.d.ts +0 -173
- package/dist/eslint/universal.d.ts.map +0 -1
- package/dist/eslint/universal.js +0 -203
- package/dist/eslint/universal.js.map +0 -1
- package/src/eslint/README.md +0 -87
- package/src/eslint/internal.js +0 -24
- package/src/eslint/jest.js +0 -36
- package/src/eslint/next-js.js +0 -31
- package/src/eslint/react.js +0 -88
- package/src/eslint/universal.js +0 -209
package/README.md
CHANGED
|
@@ -22,10 +22,11 @@ Read the documentation and sources of each module how to use it in the project.
|
|
|
22
22
|
- [blockchain-utilities](./src/blockchain-utilities/README.md)
|
|
23
23
|
- [config-hash](./src/config-hash/README.md)
|
|
24
24
|
- [config-parsing](./src/config-parsing/README.md)
|
|
25
|
-
- [eslint](./src/eslint/README.md)
|
|
26
25
|
- [http](./src/http/README.md)
|
|
27
26
|
- [logger](./src/logger/README.md)
|
|
28
27
|
- [processing](./src/processing/README.md)
|
|
28
|
+
- [run-in-loop](./src/run-in-loop/README.md)
|
|
29
|
+
- [utils](./src/utils/README.md)
|
|
29
30
|
|
|
30
31
|
## Using the package in universal context
|
|
31
32
|
|
|
@@ -46,10 +47,11 @@ manually, by adding the following to your `tsconfig.json`:
|
|
|
46
47
|
|
|
47
48
|
## Related repositories
|
|
48
49
|
|
|
49
|
-
- [promise-utils](https://github.com/api3dao/promise-utils)
|
|
50
|
-
- [ois](https://github.com/api3dao/ois)
|
|
51
50
|
- [chains](https://github.com/api3dao/chains)
|
|
52
51
|
- [contracts](https://github.com/api3dao/contracts)
|
|
52
|
+
- [eslint-plugin-commons](https://github.com/api3dao/eslint-plugin-commons)
|
|
53
|
+
- [ois](https://github.com/api3dao/ois)
|
|
54
|
+
- [promise-utils](https://github.com/api3dao/promise-utils)
|
|
53
55
|
|
|
54
56
|
## For developers
|
|
55
57
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/blockchain-utilities/derivation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,YAAa,OAAO,cAAc,GAAG,qBAAqB,GAAG,WACe,CAAC;AAE5G,eAAO,MAAM,kBAAkB,eAAgB,GAAG,qBAAqB,GAAG,WACa,CAAC;AAExF,eAAO,MAAM,gBAAgB,aAAc,MAAM,gBAAgB,MAAM,WACsC,CAAC;AAE9G,eAAO,MAAM,iBAAiB,oBAAqB,QAAQ,WACwC,CAAC;AAEpG,wBAAgB,kCAAkC,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,UAQjG;AAED,eAAO,MAAM,eAAe,UAAW,MAAM,WAA4C,CAAC;AAE1F,eAAO,MAAM,iBAAiB,UAAW,GAAG,WAA2C,CAAC;AAExF,eAAO,MAAM,mBAAmB,oBAAqB,QAAQ,YAAY,MAAM,cAAc,UAAU,kBAStG,CAAC;AAEF,eAAO,MAAM,cAAc,mBAAoB,OAAO,cAAc,GAAG,WACe,CAAC;AAEvF,eAAO,MAAM,iBAAiB,cAAe,GAAG,EAAE,WAEuC,CAAC;AAE1F,eAAO,MAAM,oBAAoB,SAAU,MAAM,wBAA8C,CAAC;AAEhG,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,kBAAkB,OAAO,KAAG,
|
|
1
|
+
{"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/blockchain-utilities/derivation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,YAAa,OAAO,cAAc,GAAG,qBAAqB,GAAG,WACe,CAAC;AAE5G,eAAO,MAAM,kBAAkB,eAAgB,GAAG,qBAAqB,GAAG,WACa,CAAC;AAExF,eAAO,MAAM,gBAAgB,aAAc,MAAM,gBAAgB,MAAM,WACsC,CAAC;AAE9G,eAAO,MAAM,iBAAiB,oBAAqB,QAAQ,WACwC,CAAC;AAEpG,wBAAgB,kCAAkC,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,UAQjG;AAED,eAAO,MAAM,eAAe,UAAW,MAAM,WAA4C,CAAC;AAE1F,eAAO,MAAM,iBAAiB,UAAW,GAAG,WAA2C,CAAC;AAExF,eAAO,MAAM,mBAAmB,oBAAqB,QAAQ,YAAY,MAAM,cAAc,UAAU,kBAStG,CAAC;AAEF,eAAO,MAAM,cAAc,mBAAoB,OAAO,cAAc,GAAG,WACe,CAAC;AAEvF,eAAO,MAAM,iBAAiB,cAAe,GAAG,EAAE,WAEuC,CAAC;AAE1F,eAAO,MAAM,oBAAoB,SAAU,MAAM,wBAA8C,CAAC;AAEhG,eAAO,MAAM,iBAAiB,gBAAiB,MAAM,kBAAkB,OAAO,KAAG,MAAM,CAAC,KAAK,CAAC,MAQ7F,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,UAAU,EACtB,cAAc,CAAC,EAAE,OAAO,UAKzB"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.verifyAirnodeXpub = exports.deriveHdNodeFromXpub = exports.deriveBeaconSetId = exports.deriveBeaconId = exports.deriveSponsorWallet = exports.fromBytes32String = exports.toBytes32String = exports.deriveAirnodeXpub = exports.deriveEndpointId = exports.deriveTemplateIdV1 = exports.deriveTemplateIdV0 = exports.PROTOCOL_IDS = void 0;
|
|
4
|
+
exports.deriveWalletPathFromSponsorAddress = deriveWalletPathFromSponsorAddress;
|
|
5
|
+
exports.deriveSponsorWalletAddress = deriveSponsorWalletAddress;
|
|
4
6
|
const ethers_1 = require("ethers");
|
|
5
7
|
exports.PROTOCOL_IDS = {
|
|
6
8
|
RRP: '1',
|
|
@@ -26,7 +28,6 @@ function deriveWalletPathFromSponsorAddress(sponsorAddress, protocolId) {
|
|
|
26
28
|
}
|
|
27
29
|
return `${protocolId}/${paths.join('/')}`;
|
|
28
30
|
}
|
|
29
|
-
exports.deriveWalletPathFromSponsorAddress = deriveWalletPathFromSponsorAddress;
|
|
30
31
|
const toBytes32String = (input) => ethers_1.ethers.utils.formatBytes32String(input);
|
|
31
32
|
exports.toBytes32String = toBytes32String;
|
|
32
33
|
const fromBytes32String = (input) => ethers_1.ethers.utils.parseBytes32String(input);
|
|
@@ -61,5 +62,4 @@ function deriveSponsorWalletAddress(airnodeXpub, sponsorAddress, protocolId, air
|
|
|
61
62
|
const derivationPath = deriveWalletPathFromSponsorAddress(sponsorAddress, protocolId);
|
|
62
63
|
return hdNode.derivePath(derivationPath).address;
|
|
63
64
|
}
|
|
64
|
-
exports.deriveSponsorWalletAddress = deriveSponsorWalletAddress;
|
|
65
65
|
//# sourceMappingURL=derivation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivation.js","sourceRoot":"","sources":["../../src/blockchain-utilities/derivation.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"derivation.js","sourceRoot":"","sources":["../../src/blockchain-utilities/derivation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config-parsing/index.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAE1D,eAAO,MAAM,sBAAsB,aAKhC,CAAC;AAEJ,eAAO,MAAM,yBAAyB,aAA2D,CAAC;AAElG,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAe7C,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,wBAAgB,4BAA4B,CAAC,CAAC,GAAG,SAAS,EACxD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config-parsing/index.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB,QAAqB,CAAC;AAE1D,eAAO,MAAM,sBAAsB,aAKhC,CAAC;AAEJ,eAAO,MAAM,yBAAyB,aAA2D,CAAC;AAElG,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAe7C,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,wBAAgB,4BAA4B,CAAC,CAAC,GAAG,SAAS,EACxD,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,oBAAoB,GA2BqD,CAAC,CACrF;AAED,eAAO,MAAM,WAAW,SAAU,MAAM,6BAA6C,CAAC;AAEtF,eAAO,MAAM,UAAU,SAAU,MAAM,QAA2C,CAAC"}
|
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadConfig = exports.loadSecrets = exports.
|
|
6
|
+
exports.loadConfig = exports.loadSecrets = exports.nonBlankSecretValueSchema = exports.strictSecretNameSchema = exports.strictSecretNamePattern = void 0;
|
|
7
|
+
exports.interpolateSecretsIntoConfig = interpolateSecretsIntoConfig;
|
|
7
8
|
const node_fs_1 = require("node:fs");
|
|
8
9
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
9
10
|
const reduce_1 = __importDefault(require("lodash/reduce"));
|
|
@@ -48,7 +49,6 @@ function interpolateSecretsIntoConfig(config, secrets, options) {
|
|
|
48
49
|
// assume, the config type has not changed.
|
|
49
50
|
return JSON.parse(interpolatedConfig.replaceAll(ESCAPED_ES_MATCH_REGEXP, '$1'));
|
|
50
51
|
}
|
|
51
|
-
exports.interpolateSecretsIntoConfig = interpolateSecretsIntoConfig;
|
|
52
52
|
const loadSecrets = (path) => dotenv_1.default.parse((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
53
53
|
exports.loadSecrets = loadSecrets;
|
|
54
54
|
const loadConfig = (path) => JSON.parse((0, node_fs_1.readFileSync)(path, 'utf8'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config-parsing/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config-parsing/index.ts"],"names":[],"mappings":";;;;;;AAwCA,oEA+BC;AAvED,qCAAuC;AAEvC,oDAA4B;AAC5B,2DAAmC;AACnC,+DAAuC;AACvC,6BAAwB;AAEX,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAE7C,QAAA,sBAAsB,GAAG,OAAC;KACpC,MAAM,EAAE;KACR,KAAK,CACJ,+BAAuB,EACvB,sDAAsD,+BAAuB,CAAC,QAAQ,EAAE,EAAE,CAC3F,CAAC;AAES,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAIlG,iGAAiG;AACjG,+DAA+D;AAC/D,sDAAsD;AACtD,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,gFAAgF;AAChF,+DAA+D;AAC/D,sDAAsD;AACtD,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAC/D,wHAAwH;AACxH,uDAAuD;AACvD,sDAAsD;AACtD,MAAM,uBAAuB,GAAG,qCAAqC,CAAC;AAStE,SAAgB,4BAA4B,CAC1C,MAAS,EACT,OAAgB,EAChB,OAA8B;IAE9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAClF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,8BAAsB,CAAC,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAClF,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,iCAAyB,CAAC;IACzF,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEtF,MAAM,kBAAkB,GAAG,IAAA,gBAAM,EAC/B,gBAAgB,EAChB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClB,OAAO;YACL,GAAG,GAAG;YACN,8GAA8G;YAC9G,wBAAwB;YACxB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1C,CAAC;IACJ,CAAC,EACD,EAAa,CACd,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC1D,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACvB,oHAAoH;IACpH,2CAA2C;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAM,CAAC;AACvF,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,gBAAM,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAAzE,QAAA,WAAW,eAA8D;AAE/E,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAAtE,QAAA,UAAU,cAA4D"}
|
package/dist/http/index.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.extractAxiosErrorData = void 0;
|
|
7
|
+
exports.executeRequest = executeRequest;
|
|
7
8
|
const promise_utils_1 = require("@api3/promise-utils");
|
|
8
9
|
const axios_1 = __importDefault(require("axios"));
|
|
9
10
|
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
@@ -37,5 +38,4 @@ async function executeRequest(request) {
|
|
|
37
38
|
const response = goAxios.data;
|
|
38
39
|
return { success: true, errorData: undefined, data: response.data, statusCode: response.status };
|
|
39
40
|
}
|
|
40
|
-
exports.executeRequest = executeRequest;
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
package/dist/http/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;AA4CA,wCAwBC;AApED,uDAAyC;AACzC,kDAAgF;AAEhF,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAiB3B,MAAM,qBAAqB,GAAG,CAAC,KAAiB,EAAiB,EAAE;IACxE,2DAA2D;IAC3D,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,qBAAqB,yBAOhC;AAiBK,KAAK,UAAU,cAAc,CAAI,OAAgB;IACtD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,GAAG,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAEpG,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAE,EAAwC,KAAK,IAAI,EAAE,CACzE,IAAA,eAAK,EAAC;QACJ,GAAG;QACH,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,WAAW;QACnB,OAAO;KACR,CAAC,CACH,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAA,6BAAqB,EAAC,OAAO,CAAC,KAAK,CAAC;YAC/C,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;SACjC,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AACnG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-storage.d.ts","sourceRoot":"","sources":["../../src/logger/async-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"async-storage.d.ts","sourceRoot":"","sources":["../../src/logger/async-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAIpC,eAAO,MAAM,oBAAoB,qCAGhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,eAAO,MAAM,gBAAgB,6BAA8B,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,eAAO,MAAM,eAAe,6CAA8C,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAqCD,eAAO,MAAM,gBAAgB,WAAY,SAAS,mBAgBjD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAKtD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GACtD,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC;IAClE,KAAK,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAC9C;AAqBD,eAAO,MAAM,OAAO,WAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,eAAO,MAAM,gBAAgB,6BAA8B,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,eAAO,MAAM,eAAe,6CAA8C,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAqCD,eAAO,MAAM,gBAAgB,WAAY,SAAS,mBAgBjD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,MAAM;IACrB,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAKtD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GACtD,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC;IAClE,KAAK,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAC9C;AAqBD,eAAO,MAAM,OAAO,WAAY,OAAO,CAAC,MAAM,KAAG,MA+BhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,OAAO,KAAG,SAuBnD,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,SAAS,WAG7C,CAAC"}
|
package/dist/node-index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-index.d.ts","sourceRoot":"","sources":["../src/node-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-index.d.ts","sourceRoot":"","sources":["../src/node-index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
|
package/dist/node-index.js
CHANGED
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
// NOTE: Not exporting ESLint rules because they need to be imported in a special way inside .eslintrc.js config.
|
|
18
17
|
__exportStar(require("./universal-index"), exports);
|
|
19
18
|
__exportStar(require("./logger"), exports);
|
|
20
19
|
__exportStar(require("./processing"), exports);
|
package/dist/node-index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-index.js","sourceRoot":"","sources":["../src/node-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"node-index.js","sourceRoot":"","sources":["../src/node-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2CAAyB;AACzB,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processing.d.ts","sourceRoot":"","sources":["../../src/processing/processing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAM,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EACL,KAAK,kBAAkB,EAIvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC9B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAIpD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,eAAgB,kBAAkB,KAAG,kBAUzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,sBACb,kBAAkB,sBACjB,kBAAkB,KACrC,kBAQF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,gCACZ,wBAAwB,GAAG,SAAS,sBAC7C,kBAAkB,sBACnB,cAAc,KAChC,
|
|
1
|
+
{"version":3,"file":"processing.d.ts","sourceRoot":"","sources":["../../src/processing/processing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAuB,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAM,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EACL,KAAK,kBAAkB,EAIvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC9B,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAIpD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,eAAgB,kBAAkB,KAAG,kBAUzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,sBACb,kBAAkB,sBACjB,kBAAkB,KACrC,kBAQF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,gCACZ,wBAAwB,GAAG,SAAS,sBAC7C,kBAAkB,sBACnB,cAAc,KAChC,OAAO,CAAC,kBAAkB,CA4C5B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,aACtB,OAAO,gCACa,wBAAwB,GAAG,SAAS,sBAC9C,kBAAkB,sBACnB,cAAc,qBAwClC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,iCACX,yBAAyB,GAAG,SAAS,sBAC/C,kBAAkB,sBACnB,cAAc,KAChC,OAAO,CAAC,uBAAuB,CAqBjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,aACtB,OAAO,iCACc,yBAAyB,GAAG,SAAS,sBAChD,kBAAkB,sBACnB,cAAc,KAChC,OAAO,CAAC,wBAAwB,CAoBlC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,aAC7B,QAAQ,sBACE,kBAAkB,sBACnB,cAAc,KAChC,OAAO,CAAC,uBAAuB,CAYjC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,aACpB,OAAO,YACP,QAAQ,sBACE,kBAAkB,sBACnB,cAAc,KAChC,OAAO,CAAC,wBAAwB,CAalC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsafe-evaluate.d.ts","sourceRoot":"","sources":["../../src/processing/unsafe-evaluate.ts"],"names":[],"mappings":"AA+EA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,cAAc,SAAU,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"unsafe-evaluate.d.ts","sourceRoot":"","sources":["../../src/processing/unsafe-evaluate.ts"],"names":[],"mappings":"AA+EA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,cAAc,SAAU,MAAM,mBAAmB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,MAAM,YAarG,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAgB,MAAM,WAAW,OAAO,WAAW,MAAM,iBAkCrF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,mBAAmB,SAAgB,MAAM,mBAAmB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,MAAM,qBAoChH,CAAC"}
|
|
@@ -115,9 +115,7 @@ const unsafeEvaluate = (code, globalVariables, timeout) => {
|
|
|
115
115
|
exports.unsafeEvaluate = unsafeEvaluate;
|
|
116
116
|
const unsafeEvaluateV2 = async (code, payload, timeout) => {
|
|
117
117
|
const timers = (0, vm_timers_1.createTimers)();
|
|
118
|
-
const goEvaluate = await (0, promise_utils_1.go)(
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
120
|
-
async () => node_vm_1.default.runInNewContext(`
|
|
118
|
+
const goEvaluate = await (0, promise_utils_1.go)(async () => node_vm_1.default.runInNewContext(`
|
|
121
119
|
(async () => {
|
|
122
120
|
return await (${code})(payload)
|
|
123
121
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsafe-evaluate.js","sourceRoot":"","sources":["../../src/processing/unsafe-evaluate.ts"],"names":[],"mappings":";;;;;;AAAA,8BAA8B;AAC9B,8DAAiC;AACjC,wEAA2C;AAC3C,8DAAiC;AACjC,4EAA+C;AAC/C,gEAAmC;AACnC,gEAAmC;AACnC,oEAAuC;AACvC,8DAAiC;AACjC,4DAA+B;AAC/B,wDAA2B;AAC3B,8DAAiC;AACjC,sDAAyB;AACzB,0DAA6B;AAC7B,4DAA+B;AAC/B,4DAA+B;AAC/B,oEAAuC;AACvC,8DAAiC;AACjC,wDAA2B;AAC3B,sDAAyB;AACzB,0DAA6B;AAC7B,sEAAyC;AACzC,gEAAmC;AACnC,kEAAqC;AACrC,0DAA6B;AAC7B,8DAAiC;AACjC,8EAAiD;AACjD,8DAAiC;AACjC,wDAA2B;AAC3B,wDAA2B;AAC3B,wDAA2B;AAC3B,0DAA6B;AAC7B,sDAAyB;AACzB,sDAAyB;AACzB,8EAAiD;AACjD,0DAA6B;AAE7B,uDAA8D;AAE9D,2CAA2C;AAE3C,MAAM,kBAAkB,GAAG;IACzB,MAAM,EAAN,qBAAM;IACN,WAAW,EAAX,0BAAW;IACX,MAAM,EAAN,qBAAM;IACN,aAAa,EAAb,4BAAa;IACb,OAAO,EAAP,sBAAO;IACP,OAAO,EAAP,sBAAO;IACP,SAAS,EAAT,wBAAS;IACT,MAAM,EAAN,qBAAM;IACN,KAAK,EAAL,oBAAK;IACL,GAAG,EAAH,kBAAG;IACH,MAAM,EAAN,qBAAM;IACN,EAAE,EAAF,iBAAE;IACF,IAAI,EAAJ,mBAAI;IACJ,KAAK,EAAL,oBAAK;IACL,KAAK,EAAL,oBAAK;IACL,SAAS,EAAT,wBAAS;IACT,MAAM,EAAN,qBAAM;IACN,GAAG,EAAH,kBAAG;IACH,EAAE,EAAF,iBAAE;IACF,IAAI,EAAJ,mBAAI;IACJ,UAAU,EAAV,yBAAU;IACV,OAAO,EAAP,sBAAO;IACP,QAAQ,EAAR,uBAAQ;IACR,IAAI,EAAJ,mBAAI;IACJ,MAAM,EAAN,qBAAM;IACN,cAAc,EAAd,6BAAc;IACd,MAAM,EAAN,qBAAM;IACN,GAAG,EAAH,kBAAG;IACH,GAAG,EAAH,kBAAG;IACH,GAAG,EAAH,kBAAG;IACH,IAAI,EAAJ,mBAAI;IACJ,EAAE,EAAF,iBAAE;IACF,EAAE,EAAF,iBAAE;IACF,cAAc,EAAd,6BAAc;IACd,IAAI,EAAJ,mBAAI;CACL,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACI,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,eAAwC,EAAE,OAAe,EAAE,EAAE;IACxG,MAAM,SAAS,GAAG;QAChB,GAAG,eAAe;QAClB,GAAG,kBAAkB;QACrB,cAAc,EAAE,SAAoB;KACrC,CAAC;IAEF,iBAAE,CAAC,eAAe,CAAC,GAAG,IAAI,4BAA4B,EAAE,SAAS,EAAE;QACjE,aAAa,EAAE,IAAI;QACnB,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,cAAc,CAAC;AAClC,CAAC,CAAC;AAbW,QAAA,cAAc,kBAazB;AAEK,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,OAAgB,EAAE,OAAe,EAAE,EAAE;IACxF,MAAM,MAAM,GAAG,IAAA,wBAAY,GAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,MAAM,IAAA,kBAAE
|
|
1
|
+
{"version":3,"file":"unsafe-evaluate.js","sourceRoot":"","sources":["../../src/processing/unsafe-evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
|
-
/// <reference types="node" />
|
|
5
|
-
/// <reference types="node" />
|
|
6
1
|
/**
|
|
7
2
|
* Timers (setTimeout, setInterval) do not work in Node.js vm, see: https://github.com/nodejs/help/issues/1875
|
|
8
3
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vm-timers.d.ts","sourceRoot":"","sources":["../../src/processing/vm-timers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vm-timers.d.ts","sourceRoot":"","sources":["../../src/processing/vm-timers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,YAAY;2BAGO,MAAM,IAAI,MAAM,MAAM;6BAIpB,MAAM,CAAC,OAAO;;4BAcf,MAAM,IAAI,MAAM,MAAM;8BAIpB,MAAM,CAAC,OAAO;;;CA0BhD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type Logger } from '../logger';
|
|
2
|
+
export interface RunInLoopOptions {
|
|
3
|
+
/** An API3 logger instance required to execute the callback with context. */
|
|
4
|
+
logger: Logger;
|
|
5
|
+
/** Part of every message logged by the logger. */
|
|
6
|
+
logLabel?: Lowercase<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Minimum time to wait between executions. E.g. value 500 means that the next execution will be started only after
|
|
9
|
+
* 500ms from the start of the previous one (even if the previous one ended after 150ms). Default is 0.
|
|
10
|
+
*/
|
|
11
|
+
frequencyMs?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Minimum time to wait between executions. E.g. value 50 means that next execution will start 50ms after the previous
|
|
14
|
+
* one ended. Default is 0.
|
|
15
|
+
*/
|
|
16
|
+
minWaitTimeMs?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Maximum time to wait between executions. E.g. value 100 means that the next execution will be started at most after
|
|
19
|
+
* 100ms from the end of the previous one. The maxWaitTime has higher precedence than minWaitTime and frequencyMs.
|
|
20
|
+
*/
|
|
21
|
+
maxWaitTimeMs?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Maximum time to wait for the execution to finish. If the execution exceeds this time a warning is logged.
|
|
24
|
+
*/
|
|
25
|
+
softTimeoutMs?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Maximum time to wait for the callback execution to finish. If the execution exceeds this time an error is logged and the
|
|
28
|
+
* execution is force-stopped.
|
|
29
|
+
*/
|
|
30
|
+
hardTimeoutMs?: number;
|
|
31
|
+
/**
|
|
32
|
+
* If false, the execution will not run. This is useful for temporarily disabling the execution (e.g. change
|
|
33
|
+
* environment variable and redeploy). Note that, there is no way to stop the loop execution once started. Default is
|
|
34
|
+
* true.
|
|
35
|
+
*/
|
|
36
|
+
enabled?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The initial delay to to wait before executing the callback for the first time. Default is 0, which means the
|
|
39
|
+
* callback is executed immediately.
|
|
40
|
+
*/
|
|
41
|
+
initialDelayMs?: number;
|
|
42
|
+
}
|
|
43
|
+
export declare const runInLoop: (fn: () => Promise<void>, options: RunInLoopOptions) => Promise<never>;
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/run-in-loop/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,SAAS,OAAc,MAAM,OAAO,CAAC,IAAI,CAAC,WAAW,gBAAgB,mBAoDjF,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runInLoop = void 0;
|
|
4
|
+
const promise_utils_1 = require("@api3/promise-utils");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const runInLoop = async (fn, options) => {
|
|
7
|
+
const { logger, logLabel, frequencyMs = 0, minWaitTimeMs = 0, maxWaitTimeMs, softTimeoutMs, hardTimeoutMs, enabled = true, initialDelayMs, } = options;
|
|
8
|
+
if (softTimeoutMs && hardTimeoutMs && hardTimeoutMs < softTimeoutMs) {
|
|
9
|
+
throw new Error('hardTimeoutMs must not be smaller than softTimeoutMs');
|
|
10
|
+
}
|
|
11
|
+
if (minWaitTimeMs && maxWaitTimeMs && maxWaitTimeMs < minWaitTimeMs) {
|
|
12
|
+
throw new Error('maxWaitTimeMs must not be smaller than minWaitTimeMs');
|
|
13
|
+
}
|
|
14
|
+
if (initialDelayMs)
|
|
15
|
+
await (0, utils_1.sleep)(initialDelayMs);
|
|
16
|
+
while (true) {
|
|
17
|
+
const executionStart = performance.now();
|
|
18
|
+
const executionId = (0, utils_1.generateRandomBytes32)();
|
|
19
|
+
if (enabled) {
|
|
20
|
+
const context = logLabel ? { executionId, label: logLabel } : { executionId };
|
|
21
|
+
await logger.runWithContext(context, async () => {
|
|
22
|
+
const goRes = await (0, promise_utils_1.go)(fn, hardTimeoutMs ? { totalTimeoutMs: hardTimeoutMs } : {}); // NOTE: This is a safety net to prevent the loop from hanging
|
|
23
|
+
if (!goRes.success) {
|
|
24
|
+
logger.error(`Unexpected runInLoop error`, goRes.error);
|
|
25
|
+
}
|
|
26
|
+
const executionTimeMs = performance.now() - executionStart;
|
|
27
|
+
if (executionTimeMs >= softTimeoutMs) {
|
|
28
|
+
logger.warn(`Execution took longer than the interval`, { executionTimeMs });
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
logger.info(`Execution finished`, { executionTimeMs });
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// If the bot is disabled, we still want to run the loop to prevent the process from hanging. We also want to
|
|
37
|
+
// sleep according to the wait time logic.
|
|
38
|
+
logger.info('Loop execution is disabled.');
|
|
39
|
+
}
|
|
40
|
+
const remainingWaitTime = Math.max(frequencyMs - (performance.now() - executionStart), 0);
|
|
41
|
+
const waitTime = Math.max(minWaitTimeMs, remainingWaitTime);
|
|
42
|
+
const actualWaitTime = maxWaitTimeMs ? Math.min(waitTime, maxWaitTimeMs) : waitTime;
|
|
43
|
+
if (actualWaitTime > 0)
|
|
44
|
+
await (0, utils_1.sleep)(actualWaitTime);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
exports.runInLoop = runInLoop;
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/run-in-loop/index.ts"],"names":[],"mappings":";;;AAAA,uDAAyC;AAGzC,oCAAwD;AA4CjD,MAAM,SAAS,GAAG,KAAK,EAAE,EAAuB,EAAE,OAAyB,EAAE,EAAE;IACpF,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,GAAG,CAAC,EACf,aAAa,GAAG,CAAC,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,OAAO,GAAG,IAAI,EACd,cAAc,GACf,GAAG,OAAO,CAAC;IAEZ,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,GAAG,aAAa,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,GAAG,aAAa,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,cAAc;QAAE,MAAM,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC;IAEhD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,IAAA,6BAAqB,GAAE,CAAC;QAE5C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YAC9E,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC9C,MAAM,KAAK,GAAG,MAAM,IAAA,kBAAE,EAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,8DAA8D;gBAClJ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC;gBAED,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;gBAC3D,IAAI,eAAe,IAAI,aAAc,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,6GAA6G;YAC7G,0CAA0C;YAC1C,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,IAAI,cAAc,GAAG,CAAC;YAAE,MAAM,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC;IACtD,CAAC;AACH,CAAC,CAAC;AApDW,QAAA,SAAS,aAoDpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-index.d.ts","sourceRoot":"","sources":["../src/universal-index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"universal-index.d.ts","sourceRoot":"","sources":["../src/universal-index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
package/dist/universal-index.js
CHANGED
|
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
// NOTE: Only export modules which work in both Node.js and browser environments.
|
|
18
18
|
__exportStar(require("./blockchain-utilities"), exports);
|
|
19
19
|
__exportStar(require("./http"), exports);
|
|
20
|
+
__exportStar(require("./run-in-loop"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
20
22
|
//# sourceMappingURL=universal-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-index.js","sourceRoot":"","sources":["../src/universal-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iFAAiF;AACjF,yDAAuC;AACvC,yCAAuB"}
|
|
1
|
+
{"version":3,"file":"universal-index.js","sourceRoot":"","sources":["../src/universal-index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iFAAiF;AACjF,yDAAuC;AACvC,yCAAuB;AACvB,gDAA8B;AAC9B,0CAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,OAAc,MAAM,qBAAsD,CAAC;AAE7F,eAAO,MAAM,qBAAqB,cAEjC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateRandomBytes32 = exports.sleep = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const sleep = async (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
6
|
+
exports.sleep = sleep;
|
|
7
|
+
const generateRandomBytes32 = () => {
|
|
8
|
+
return ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.randomBytes(32));
|
|
9
|
+
};
|
|
10
|
+
exports.generateRandomBytes32 = generateRandomBytes32;
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEzB,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAAhF,QAAA,KAAK,SAA2E;AAEtF,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,OAAO,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,eAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@api3/commons",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -24,48 +24,27 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@api3/ois": "^2.3.
|
|
27
|
+
"@api3/ois": "^2.3.2",
|
|
28
28
|
"@api3/promise-utils": "^0.4.0",
|
|
29
|
-
"
|
|
30
|
-
"@typescript-eslint/parser": "^6.2.1",
|
|
31
|
-
"axios": "^1.6.7",
|
|
29
|
+
"axios": "^1.7.2",
|
|
32
30
|
"dotenv": "^16.4.5",
|
|
33
|
-
"eslint-config-next": "^14.2.3",
|
|
34
|
-
"eslint-plugin-check-file": "^2.6.2",
|
|
35
|
-
"eslint-plugin-cypress": "^3.2.0",
|
|
36
|
-
"eslint-plugin-deprecation": "^2.0.0",
|
|
37
|
-
"eslint-plugin-functional": "^6.0.0",
|
|
38
|
-
"eslint-plugin-import": "^2.28.1",
|
|
39
|
-
"eslint-plugin-jest": "^27.4.2",
|
|
40
|
-
"eslint-plugin-jest-formatting": "^3.1.0",
|
|
41
|
-
"eslint-plugin-lodash": "^8.0.0",
|
|
42
|
-
"eslint-plugin-no-only-tests": "^3.1.0",
|
|
43
|
-
"eslint-plugin-promise": "^6.1.1",
|
|
44
|
-
"eslint-plugin-react": "^7.32.1",
|
|
45
|
-
"eslint-plugin-react-hooks": "^4.6.0",
|
|
46
|
-
"eslint-plugin-unicorn": "^48.0.1",
|
|
47
31
|
"ethers": "^5.7.2",
|
|
48
32
|
"lodash": "^4.17.21",
|
|
49
|
-
"winston": "^3.
|
|
33
|
+
"winston": "^3.13.1",
|
|
50
34
|
"winston-console-format": "^1.0.8",
|
|
51
|
-
"zod": "^3.
|
|
35
|
+
"zod": "^3.23.8"
|
|
52
36
|
},
|
|
53
37
|
"devDependencies": {
|
|
38
|
+
"@api3/eslint-plugin-commons": "^2.0.1",
|
|
54
39
|
"@types/jest": "^29.5.12",
|
|
55
|
-
"@types/lodash": "^4.17.
|
|
56
|
-
"@types/node": "^20.
|
|
40
|
+
"@types/lodash": "^4.17.7",
|
|
41
|
+
"@types/node": "^20.14.13",
|
|
57
42
|
"eslint": "^8.57.0",
|
|
58
|
-
"husky": "^9.
|
|
43
|
+
"husky": "^9.1.3",
|
|
59
44
|
"jest": "^29.7.0",
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"ts-jest": "^29.1.2",
|
|
64
|
-
"ts-node": "^10.9.2",
|
|
65
|
-
"typescript": "^5.4.5"
|
|
66
|
-
},
|
|
67
|
-
"peerDependencies": {
|
|
68
|
-
"eslint": "^8.57.0"
|
|
45
|
+
"prettier": "^3.3.3",
|
|
46
|
+
"ts-jest": "^29.2.3",
|
|
47
|
+
"typescript": "^5.5.4"
|
|
69
48
|
},
|
|
70
49
|
"scripts": {
|
|
71
50
|
"build": "tsc --project tsconfig.build.json",
|
package/src/logger/index.test.ts
CHANGED
|
@@ -101,7 +101,6 @@ test('returns rejected promise if the async callback function rejects', async ()
|
|
|
101
101
|
const { logger } = createTestLogger();
|
|
102
102
|
|
|
103
103
|
await expect(async () =>
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
105
104
|
logger.runWithContext({}, async () => {
|
|
106
105
|
throw new Error('some-error');
|
|
107
106
|
})
|
package/src/node-index.ts
CHANGED
|
@@ -117,7 +117,6 @@ export const unsafeEvaluateV2 = async (code: string, payload: unknown, timeout:
|
|
|
117
117
|
const timers = createTimers();
|
|
118
118
|
|
|
119
119
|
const goEvaluate = await go<Promise<any>, GoWrappedError>(
|
|
120
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
121
120
|
async () =>
|
|
122
121
|
vm.runInNewContext(
|
|
123
122
|
`
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { go } from '@api3/promise-utils';
|
|
2
|
+
|
|
3
|
+
import { type Logger } from '../logger';
|
|
4
|
+
import { generateRandomBytes32, sleep } from '../utils';
|
|
5
|
+
|
|
6
|
+
export interface RunInLoopOptions {
|
|
7
|
+
/** An API3 logger instance required to execute the callback with context. */
|
|
8
|
+
logger: Logger;
|
|
9
|
+
/** Part of every message logged by the logger. */
|
|
10
|
+
logLabel?: Lowercase<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Minimum time to wait between executions. E.g. value 500 means that the next execution will be started only after
|
|
13
|
+
* 500ms from the start of the previous one (even if the previous one ended after 150ms). Default is 0.
|
|
14
|
+
*/
|
|
15
|
+
frequencyMs?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Minimum time to wait between executions. E.g. value 50 means that next execution will start 50ms after the previous
|
|
18
|
+
* one ended. Default is 0.
|
|
19
|
+
*/
|
|
20
|
+
minWaitTimeMs?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Maximum time to wait between executions. E.g. value 100 means that the next execution will be started at most after
|
|
23
|
+
* 100ms from the end of the previous one. The maxWaitTime has higher precedence than minWaitTime and frequencyMs.
|
|
24
|
+
*/
|
|
25
|
+
maxWaitTimeMs?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Maximum time to wait for the execution to finish. If the execution exceeds this time a warning is logged.
|
|
28
|
+
*/
|
|
29
|
+
softTimeoutMs?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum time to wait for the callback execution to finish. If the execution exceeds this time an error is logged and the
|
|
32
|
+
* execution is force-stopped.
|
|
33
|
+
*/
|
|
34
|
+
hardTimeoutMs?: number;
|
|
35
|
+
/**
|
|
36
|
+
* If false, the execution will not run. This is useful for temporarily disabling the execution (e.g. change
|
|
37
|
+
* environment variable and redeploy). Note that, there is no way to stop the loop execution once started. Default is
|
|
38
|
+
* true.
|
|
39
|
+
*/
|
|
40
|
+
enabled?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The initial delay to to wait before executing the callback for the first time. Default is 0, which means the
|
|
43
|
+
* callback is executed immediately.
|
|
44
|
+
*/
|
|
45
|
+
initialDelayMs?: number;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const runInLoop = async (fn: () => Promise<void>, options: RunInLoopOptions) => {
|
|
49
|
+
const {
|
|
50
|
+
logger,
|
|
51
|
+
logLabel,
|
|
52
|
+
frequencyMs = 0,
|
|
53
|
+
minWaitTimeMs = 0,
|
|
54
|
+
maxWaitTimeMs,
|
|
55
|
+
softTimeoutMs,
|
|
56
|
+
hardTimeoutMs,
|
|
57
|
+
enabled = true,
|
|
58
|
+
initialDelayMs,
|
|
59
|
+
} = options;
|
|
60
|
+
|
|
61
|
+
if (softTimeoutMs && hardTimeoutMs && hardTimeoutMs < softTimeoutMs) {
|
|
62
|
+
throw new Error('hardTimeoutMs must not be smaller than softTimeoutMs');
|
|
63
|
+
}
|
|
64
|
+
if (minWaitTimeMs && maxWaitTimeMs && maxWaitTimeMs < minWaitTimeMs) {
|
|
65
|
+
throw new Error('maxWaitTimeMs must not be smaller than minWaitTimeMs');
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (initialDelayMs) await sleep(initialDelayMs);
|
|
69
|
+
|
|
70
|
+
while (true) {
|
|
71
|
+
const executionStart = performance.now();
|
|
72
|
+
const executionId = generateRandomBytes32();
|
|
73
|
+
|
|
74
|
+
if (enabled) {
|
|
75
|
+
const context = logLabel ? { executionId, label: logLabel } : { executionId };
|
|
76
|
+
await logger.runWithContext(context, async () => {
|
|
77
|
+
const goRes = await go(fn, hardTimeoutMs ? { totalTimeoutMs: hardTimeoutMs } : {}); // NOTE: This is a safety net to prevent the loop from hanging
|
|
78
|
+
if (!goRes.success) {
|
|
79
|
+
logger.error(`Unexpected runInLoop error`, goRes.error);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const executionTimeMs = performance.now() - executionStart;
|
|
83
|
+
if (executionTimeMs >= softTimeoutMs!) {
|
|
84
|
+
logger.warn(`Execution took longer than the interval`, { executionTimeMs });
|
|
85
|
+
} else {
|
|
86
|
+
logger.info(`Execution finished`, { executionTimeMs });
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
} else {
|
|
90
|
+
// If the bot is disabled, we still want to run the loop to prevent the process from hanging. We also want to
|
|
91
|
+
// sleep according to the wait time logic.
|
|
92
|
+
logger.info('Loop execution is disabled.');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const remainingWaitTime = Math.max(frequencyMs - (performance.now() - executionStart), 0);
|
|
96
|
+
const waitTime = Math.max(minWaitTimeMs, remainingWaitTime);
|
|
97
|
+
const actualWaitTime = maxWaitTimeMs ? Math.min(waitTime, maxWaitTimeMs) : waitTime;
|
|
98
|
+
if (actualWaitTime > 0) await sleep(actualWaitTime);
|
|
99
|
+
}
|
|
100
|
+
};
|
package/src/universal-index.ts
CHANGED