diff options
Diffstat (limited to 'node_modules/option-chain/index.js')
-rw-r--r-- | node_modules/option-chain/index.js | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/node_modules/option-chain/index.js b/node_modules/option-chain/index.js index cf0d484b4..99798bbea 100644 --- a/node_modules/option-chain/index.js +++ b/node_modules/option-chain/index.js @@ -1,38 +1,39 @@ 'use strict'; -var objectAssign = require('object-assign'); - -module.exports = function (options, fn, target) { - var chainables = options.chainableMethods || {}; - var spread = options.spread; - var defaults = objectAssign({}, options.defaults); +module.exports = (options, fn, target) => { + const chainables = options.chainableMethods || {}; + const spread = options.spread; + const defaults = Object.assign({}, options.defaults); function extend(target, getter, ctx) { - Object.keys(chainables).forEach(function (key) { + for (const key of Object.keys(chainables)) { Object.defineProperty(target, key, { enumerable: true, configurable: true, - get: function () { + get() { return wrap(getter, chainables[key], ctx || this); } }); - }); + } } function wrap(createOpts, extensionOpts, ctx) { function wrappedOpts() { - return objectAssign(createOpts(), extensionOpts); + return Object.assign(createOpts(), extensionOpts); } function wrappedFn() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { + let args = new Array(arguments.length); + + for (let i = 0; i < args.length; i++) { args[i] = arguments[i]; } + if (spread) { args.unshift(wrappedOpts()); } else { args = [wrappedOpts(), args]; } + return fn.apply(ctx || this, args); } @@ -42,7 +43,7 @@ module.exports = function (options, fn, target) { } function copyDefaults() { - return objectAssign({}, defaults); + return Object.assign({}, defaults); } if (target) { |