@trezor/utils
Advanced tools
Comparing version 9.1.0 to 9.1.1-beta.1
@@ -17,2 +17,3 @@ export * as bufferUtils from './bufferUtils'; | ||
export * from './createDeferredManager'; | ||
export * from './createLazy'; | ||
export * from './createTimeoutPromise'; | ||
@@ -19,0 +20,0 @@ export * from './getLocaleSeparators'; |
@@ -21,2 +21,3 @@ "use strict"; | ||
tslib_1.__exportStar(require("./createDeferredManager"), exports); | ||
tslib_1.__exportStar(require("./createLazy"), exports); | ||
tslib_1.__exportStar(require("./createTimeoutPromise"), exports); | ||
@@ -23,0 +24,0 @@ tslib_1.__exportStar(require("./getLocaleSeparators"), exports); |
@@ -11,2 +11,3 @@ export type ScheduledAction<T> = (signal?: AbortSignal) => Promise<T>; | ||
signal?: AbortSignal; | ||
attemptFailureHandler?: (error: Error) => Error | void; | ||
} & AttemptParams; | ||
@@ -13,0 +14,0 @@ export declare const scheduleAction: <T>(action: ScheduledAction<T>, params: ScheduleActionParams) => Promise<T>; |
@@ -14,3 +14,3 @@ "use strict"; | ||
return resolve(); | ||
const timeout = setTimeout(resolve, ms); | ||
let timeout; | ||
const onClear = () => { | ||
@@ -21,2 +21,6 @@ clearTimeout(timeout); | ||
}; | ||
timeout = setTimeout(() => { | ||
clear.removeEventListener('abort', onClear); | ||
resolve(); | ||
}, ms); | ||
clear.addEventListener('abort', onClear); | ||
@@ -27,3 +31,3 @@ }); | ||
return reject(); | ||
const timeout = ms !== undefined ? setTimeout(() => reject(reason()), ms) : undefined; | ||
let timeout; | ||
const onClear = () => { | ||
@@ -34,4 +38,9 @@ clearTimeout(timeout); | ||
}; | ||
timeout = setTimeout(() => { | ||
clear.removeEventListener('abort', onClear); | ||
reject(reason()); | ||
}, ms); | ||
clear.addEventListener('abort', onClear); | ||
}); | ||
const maybeRejectAfterMs = (ms, reason, clear) => ms === undefined ? [] : [rejectAfterMs(ms, reason, clear)]; | ||
const rejectWhenAborted = (signal, clear) => new Promise((_, reject) => { | ||
@@ -74,5 +83,5 @@ if (clear.aborted) | ||
} | ||
catch (_a) { | ||
catch (error) { | ||
onClear(); | ||
yield failure(a); | ||
yield failure(a, error); | ||
} | ||
@@ -86,3 +95,3 @@ finally { | ||
const scheduleAction = (action, params) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { | ||
const { signal, delay, attempts, timeout, deadline, gap } = params; | ||
const { signal, delay, attempts, timeout, deadline, gap, attemptFailureHandler } = params; | ||
const deadlineMs = deadline && deadline - Date.now(); | ||
@@ -100,7 +109,13 @@ const attemptCount = isArray(attempts) | ||
rejectWhenAborted(signal, clear), | ||
rejectAfterMs(deadlineMs, abortedByDeadline, clear), | ||
...maybeRejectAfterMs(deadlineMs, abortedByDeadline, clear), | ||
resolveAfterMs(delay, clear).then(() => attemptLoop(attemptCount, (attempt, abort) => Promise.race([ | ||
rejectAfterMs(getParams(attempt).timeout, abortedByTimeout, clear), | ||
...maybeRejectAfterMs(getParams(attempt).timeout, abortedByTimeout, clear), | ||
resolveAction(action, abort), | ||
]), attempt => { var _a; return resolveAfterMs((_a = getParams(attempt).gap) !== null && _a !== void 0 ? _a : 0, clear); }, clear)), | ||
]), (attempt, error) => { | ||
var _a; | ||
const errorHandlerResult = attemptFailureHandler === null || attemptFailureHandler === void 0 ? void 0 : attemptFailureHandler(error); | ||
return errorHandlerResult | ||
? Promise.reject(errorHandlerResult) | ||
: resolveAfterMs((_a = getParams(attempt).gap) !== null && _a !== void 0 ? _a : 0, clear); | ||
}, clear)), | ||
]); | ||
@@ -107,0 +122,0 @@ } |
{ | ||
"name": "@trezor/utils", | ||
"version": "9.1.0", | ||
"version": "9.1.1-beta.1", | ||
"author": "Trezor <info@trezor.io>", | ||
@@ -27,3 +27,3 @@ "homepage": "https://github.com/trezor/trezor-suite/tree/develop/packages/utils", | ||
"lint:js": "yarn g:eslint '**/*.{ts,tsx,js}'", | ||
"test:unit": "yarn g:jest --verbose -c ../../jest.config.base.js", | ||
"test:unit": "yarn g:jest --verbose -c ./jest.config.js", | ||
"type-check": "yarn g:tsc --build tsconfig.json", | ||
@@ -38,2 +38,3 @@ "build:lib": "yarn g:rimraf ./lib && yarn g:tsc --build tsconfig.lib.json && ../../scripts/replace-imports.sh ./lib", | ||
"devDependencies": { | ||
"jest-environment-node": "^29.7.0", | ||
"tsx": "^4.7.0" | ||
@@ -40,0 +41,0 @@ }, |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
61695
98
1262
2
1