@yoroi/common
Version:
The Common package of Yoroi SDK
20 lines • 631 B
JavaScript
import { App } from '@yoroi/types';
import { freeze } from 'immer';
import { Subject, from, of } from 'rxjs';
import { catchError, concatMap } from 'rxjs/operators';
export const queueTaskMaker = () => {
const queueSubject = new Subject();
const subscription = queueSubject.pipe(concatMap(task => from(task()).pipe(catchError(() => of(App.Errors.InvalidState))))).subscribe();
const enqueue = task => {
queueSubject.next(task);
};
const destroy = () => {
subscription.unsubscribe();
queueSubject.complete();
};
return freeze({
enqueue,
destroy
}, true);
};
//# sourceMappingURL=queue-task.js.map