UNPKG

pig-dam-core

Version:

Library that should be included in every Pig DAM project we build

39 lines (38 loc) 1.27 kB
"use strict"; /** * Date: 3/5/2018 * Time: 9:10 PM * @license MIT (see project's LICENSE file) * */ Object.defineProperty(exports, "__esModule", { value: true }); exports.series = exports.parallel = exports.resolveNextTick = exports.rejectNextTick = void 0; /** * Creates a promise that resolves upon process.nextTick */ function rejectNextTick(...args) { return new Promise((resolve, reject) => { process.nextTick(reject, ...args); }); } exports.rejectNextTick = rejectNextTick; /** * Creates a promise that rejects upon process.nextTick */ function resolveNextTick(...args) { return new Promise((resolve) => { process.nextTick(resolve, ...args); }); } exports.resolveNextTick = resolveNextTick; exports.parallel = Promise.all; /** * Creates a process chain out of an array of promise factories. Why can't they be promises? Because promises execute immediately. * We want to defer execution until the prior promise has resolved. * @param series - series of functions that return promises * @param initialParameter - initial parameter into `series[0]()` */ function series(series, initialParameter) { return series.reduce((current, next) => current.then(next), Promise.resolve(initialParameter)); } exports.series = series;