blob: cbc7f496ca665e660e22c5c77625f88b9c51b1dd [file] [log] [blame]
'use strict';
// TODO: Use rest/spread when targeting Node.js 6
module.exports = function (input) {
const args = Array.isArray(input) ? input : arguments;
if (args.length === 0) {
return Promise.reject(new Error('Expected at least one argument'));
}
return [].slice.call(args, 1).reduce((a, b) => {
return function () {
return Promise.resolve(a.apply(null, arguments)).then(b);
};
}, args[0]);
};