fix(compose): dont mutate passed functions array

This commit is contained in:
Julien Fontanet 2021-12-02 21:32:32 +01:00
parent 26d0ff3c9a
commit ed252276cb

View File

@ -4,11 +4,13 @@ const defaultOpts = { async: false, right: false }
exports.compose = function compose(opts, fns) { exports.compose = function compose(opts, fns) {
if (Array.isArray(opts)) { if (Array.isArray(opts)) {
fns = opts fns = opts.slice() // don't mutate passed array
opts = defaultOpts opts = defaultOpts
} else if (typeof opts === 'object') { } else if (typeof opts === 'object') {
opts = Object.assign({}, defaultOpts, opts) opts = Object.assign({}, defaultOpts, opts)
if (!Array.isArray(fns)) { if (Array.isArray(fns)) {
fns = fns.slice() // don't mutate passed array
} else {
fns = Array.prototype.slice.call(arguments, 1) fns = Array.prototype.slice.call(arguments, 1)
} }
} else { } else {