| 123456789101112131415161718192021222324252627282930313233343536 |
- "use strict";
- /* IMPORT */
- Object.defineProperty(exports, "__esModule", { value: true });
- /* VARIABLES */
- const Queues = {};
- /* SCHEDULER */
- //TODO: Maybe publish this as a standalone package
- const Scheduler = {
- next: (id) => {
- const queue = Queues[id];
- if (!queue)
- return;
- queue.shift();
- const job = queue[0];
- if (job) {
- job(() => Scheduler.next(id));
- }
- else {
- delete Queues[id];
- }
- },
- schedule: (id) => {
- return new Promise(resolve => {
- let queue = Queues[id];
- if (!queue)
- queue = Queues[id] = [];
- queue.push(resolve);
- if (queue.length > 1)
- return;
- resolve(() => Scheduler.next(id));
- });
- }
- };
- /* EXPORT */
- exports.default = Scheduler;
|