abstract-migrate
Version:
Storage-agnostic migration runner
52 lines (41 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
exports.mapSeries = mapSeries;
exports.promiseback = promiseback;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function mapSeries(arr, fn) {
return arr.reduce(function (chain, item) {
return chain.then(function (results) {
return fn(item).then(function (result) {
return [].concat((0, _toConsumableArray3.default)(results), [result]);
});
});
}, _promise2.default.resolve([]));
}
function promiseback(fn) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return new _promise2.default(function (resolve, reject) {
var possiblePromise = fn.apply(undefined, args.concat([function (err, result) {
if (err) {
reject(err);
} else {
resolve(result);
}
}]));
if (possiblePromise && typeof possiblePromise.then === 'function') {
possiblePromise.then(function (result) {
resolve(result);
}, function (err) {
reject(err);
});
}
});
}