| Leo Repp | 58b9f11 | 2021-11-22 11:57:47 +0100 | [diff] [blame^] | 1 | 'use strict'; |
| 2 | |||||
| 3 | // TODO: Use rest/spread when targeting Node.js 6 | ||||
| 4 | |||||
| 5 | module.exports = function (input) { | ||||
| 6 | const args = Array.isArray(input) ? input : arguments; | ||||
| 7 | |||||
| 8 | if (args.length === 0) { | ||||
| 9 | return Promise.reject(new Error('Expected at least one argument')); | ||||
| 10 | } | ||||
| 11 | |||||
| 12 | return [].slice.call(args, 1).reduce((a, b) => { | ||||
| 13 | return function () { | ||||
| 14 | return Promise.resolve(a.apply(null, arguments)).then(b); | ||||
| 15 | }; | ||||
| 16 | }, args[0]); | ||||
| 17 | }; | ||||