@fluent-org/logger
Version:
A node fluent protocol compatible logger
39 lines • 1.16 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.pDefer = exports.awaitTimeout = exports.awaitNextTick = exports.awaitAtMost = void 0;
const awaitAtMost = (promise, timeout) => {
let timeoutId = null;
const racePromise = Promise.race([
promise,
new Promise(resolve => (timeoutId = setTimeout(() => {
timeoutId = null;
resolve();
}, timeout))),
]);
racePromise
.finally(() => {
if (timeoutId)
clearTimeout(timeoutId);
})
.catch(() => { });
return racePromise;
};
exports.awaitAtMost = awaitAtMost;
const awaitNextTick = () => {
return new Promise(r => process.nextTick(r));
};
exports.awaitNextTick = awaitNextTick;
const awaitTimeout = (timeout) => {
return new Promise(r => setTimeout(r, timeout));
};
exports.awaitTimeout = awaitTimeout;
const pDefer = () => {
const deferred = {};
deferred.promise = new Promise((resolve, reject) => {
deferred.resolve = resolve;
deferred.reject = reject;
});
return deferred;
};
exports.pDefer = pDefer;
//# sourceMappingURL=util.js.map
;