'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]); };