UNPKG

@lotto24-angular/imports-orchestrator

Version:

Orchestrate dynamically imported components in Angular applications

34 lines 4.67 kB
/** * recursive loading of queued features */ export async function processQueueItem(queue, logger) { // let's take the next item off the queue const item = queue.take(); // let's stop if there are no items in the queue if (!item) { logger.debug('queue is drained'); return; } logger.debug(`queue item resolve (${item})`); try { item.hooks.start.next(item); item.lifecycle?.importStarted?.emit(); const result = await item.resolveFn(item); item.hooks.finish.next(item); item.lifecycle?.importFinished?.emit(result); item.callback && item.callback(result, null); logger.debug(`queue item resolved (${item})`); } catch (x) { item.hooks.error.next([item, x]); item.lifecycle?.importErrored?.emit(x); item.callback && item.callback(null, x); logger.error(`error resolving queue item (${item})`, x); } finally { item.hooks.start.complete(); item.hooks.finish.complete(); item.hooks.error.complete(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy1xdWV1ZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbXBvcnRzLW9yY2hlc3RyYXRvci9zcmMvbGliL3F1ZXVlL3Byb2Nlc3MtcXVldWUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLEtBQTBDLEVBQzFDLE1BQW1CO0lBRW5CLHlDQUF5QztJQUN6QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFMUIsZ0RBQWdEO0lBQ2hELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqQyxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksR0FBRyxDQUFDLENBQUM7SUFFN0MsSUFBSSxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ltcG9ydHNPcmNoZXN0cmF0b3JRdWV1ZUl0ZW19IGZyb20gJy4uL3NlcnZpY2UnO1xuaW1wb3J0IHtRdWV1ZX0gZnJvbSAnLi9xdWV1ZSc7XG5pbXBvcnQge0NvbnNvbGVMaWtlfSBmcm9tIFwiLi4vZmVhdHVyZXNcIjtcblxuLyoqXG4gKiByZWN1cnNpdmUgbG9hZGluZyBvZiBxdWV1ZWQgZmVhdHVyZXNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NRdWV1ZUl0ZW0oXG4gIHF1ZXVlOiBRdWV1ZTxJbXBvcnRzT3JjaGVzdHJhdG9yUXVldWVJdGVtPixcbiAgbG9nZ2VyOiBDb25zb2xlTGlrZSxcbik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBsZXQncyB0YWtlIHRoZSBuZXh0IGl0ZW0gb2ZmIHRoZSBxdWV1ZVxuICBjb25zdCBpdGVtID0gcXVldWUudGFrZSgpO1xuXG4gIC8vIGxldCdzIHN0b3AgaWYgdGhlcmUgYXJlIG5vIGl0ZW1zIGluIHRoZSBxdWV1ZVxuICBpZiAoIWl0ZW0pIHtcbiAgICBsb2dnZXIuZGVidWcoJ3F1ZXVlIGlzIGRyYWluZWQnKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBsb2dnZXIuZGVidWcoYHF1ZXVlIGl0ZW0gcmVzb2x2ZSAoJHtpdGVtfSlgKTtcblxuICB0cnkge1xuICAgIGl0ZW0uaG9va3Muc3RhcnQubmV4dChpdGVtKTtcbiAgICBpdGVtLmxpZmVjeWNsZT8uaW1wb3J0U3RhcnRlZD8uZW1pdCgpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGl0ZW0ucmVzb2x2ZUZuKGl0ZW0pO1xuICAgIGl0ZW0uaG9va3MuZmluaXNoLm5leHQoaXRlbSk7XG4gICAgaXRlbS5saWZlY3ljbGU/LmltcG9ydEZpbmlzaGVkPy5lbWl0KHJlc3VsdCk7XG4gICAgaXRlbS5jYWxsYmFjayAmJiBpdGVtLmNhbGxiYWNrKHJlc3VsdCwgbnVsbCk7XG4gICAgbG9nZ2VyLmRlYnVnKGBxdWV1ZSBpdGVtIHJlc29sdmVkICgke2l0ZW19KWApO1xuICB9IGNhdGNoICh4KSB7XG4gICAgaXRlbS5ob29rcy5lcnJvci5uZXh0KFtpdGVtLCB4XSk7XG4gICAgaXRlbS5saWZlY3ljbGU/LmltcG9ydEVycm9yZWQ/LmVtaXQoeCk7XG4gICAgaXRlbS5jYWxsYmFjayAmJiBpdGVtLmNhbGxiYWNrKG51bGwsIHgpO1xuICAgIGxvZ2dlci5lcnJvcihgZXJyb3IgcmVzb2x2aW5nIHF1ZXVlIGl0ZW0gKCR7aXRlbX0pYCwgeCk7XG4gIH0gZmluYWxseSB7XG4gICAgaXRlbS5ob29rcy5zdGFydC5jb21wbGV0ZSgpO1xuICAgIGl0ZW0uaG9va3MuZmluaXNoLmNvbXBsZXRlKCk7XG4gICAgaXRlbS5ob29rcy5lcnJvci5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=