code: function namedParamFacade(base, defaults, ...params) {
    if (params.length === 1 && typeof params[0] === 'object' && !Array.isArray(params[0])) {
      const valid = Object.keys(params[0]).every(key => hasOwnProperty.call(defaults, key));
      if (valid) {
        params = Object.keys(defaults).map(key => params[0][key] || defaults[key]);
      }
    }
    return base.apply(this, params);
  }
docs: A facade function that allows parameters to be passed either by name
  (through an object), or by position (through an array).
  @private
  @param {Function} base The function that is being overriden. Will be
  called with parameters in array-form.
  @param {Object} defaults Parameter list and it's default values.
  @param {*} params The parameters.