@yoroi/common
Version:
The Common package of Yoroi SDK
27 lines (26 loc) • 833 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.queueTaskMaker = void 0;
var _types = require("@yoroi/types");
var _immer = require("immer");
var _rxjs = require("rxjs");
var _operators = require("rxjs/operators");
const queueTaskMaker = () => {
const queueSubject = new _rxjs.Subject();
const subscription = queueSubject.pipe((0, _operators.concatMap)(task => (0, _rxjs.from)(task()).pipe((0, _operators.catchError)(() => (0, _rxjs.of)(_types.App.Errors.InvalidState))))).subscribe();
const enqueue = task => {
queueSubject.next(task);
};
const destroy = () => {
subscription.unsubscribe();
queueSubject.complete();
};
return (0, _immer.freeze)({
enqueue,
destroy
}, true);
};
exports.queueTaskMaker = queueTaskMaker;
//# sourceMappingURL=queue-task.js.map