Compare commits

...

2 Commits

Author SHA1 Message Date
John-David Dalton
3f407aa255 Bump to v4.8.1. 2016-04-04 14:30:27 -07:00
John-David Dalton
ee6ec2f672 Bump to v4.8.0. 2016-04-04 14:22:57 -07:00
385 changed files with 2374 additions and 1044 deletions

View File

@@ -1,6 +1,6 @@
# lodash v4.7.0
# lodash v4.8.1
The [lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules.
The [Lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules.
## Installation
@@ -28,11 +28,11 @@ var chunk = require('lodash/chunk');
var extend = require('lodash/fp/extend');
```
See the [package source](https://github.com/lodash/lodash/tree/4.7.0-npm) for more details.
See the [package source](https://github.com/lodash/lodash/tree/4.8.1-npm) for more details.
**Note:**<br>
Dont assign values to the [special variable](http://nodejs.org/api/repl.html#repl_repl_features) `_` when in the REPL.<br>
Install [n_](https://www.npmjs.com/package/n_) for a REPL that includes lodash by default.
Install [n_](https://www.npmjs.com/package/n_) for a REPL that includes `lodash` by default.
## Support

View File

@@ -5,7 +5,7 @@
* @private
* @param {Function} func The function to invoke.
* @param {*} thisArg The `this` binding of `func`.
* @param {...*} args The arguments to invoke `func` with.
* @param {Array} args The arguments to invoke `func` with.
* @returns {*} Returns the result of `func`.
*/
function apply(func, thisArg, args) {

View File

@@ -1,5 +1,6 @@
var baseIsMatch = require('./_baseIsMatch'),
getMatchData = require('./_getMatchData');
getMatchData = require('./_getMatchData'),
matchesStrictComparable = require('./_matchesStrictComparable');
/**
* The base implementation of `_.matches` which doesn't clone `source`.
@@ -11,16 +12,7 @@ var baseIsMatch = require('./_baseIsMatch'),
function baseMatches(source) {
var matchData = getMatchData(source);
if (matchData.length == 1 && matchData[0][2]) {
var key = matchData[0][0],
value = matchData[0][1];
return function(object) {
if (object == null) {
return false;
}
return object[key] === value &&
(value !== undefined || (key in Object(object)));
};
return matchesStrictComparable(matchData[0][0], matchData[0][1]);
}
return function(object) {
return object === source || baseIsMatch(object, source, matchData);

View File

@@ -1,6 +1,9 @@
var baseIsEqual = require('./_baseIsEqual'),
get = require('./get'),
hasIn = require('./hasIn');
hasIn = require('./hasIn'),
isKey = require('./_isKey'),
isStrictComparable = require('./_isStrictComparable'),
matchesStrictComparable = require('./_matchesStrictComparable');
/** Used to compose bitmasks for comparison styles. */
var UNORDERED_COMPARE_FLAG = 1,
@@ -15,6 +18,9 @@ var UNORDERED_COMPARE_FLAG = 1,
* @returns {Function} Returns the new function.
*/
function baseMatchesProperty(path, srcValue) {
if (isKey(path) && isStrictComparable(srcValue)) {
return matchesStrictComparable(path, srcValue);
}
return function(object) {
var objValue = get(object, path);
return (objValue === undefined && objValue === srcValue)

View File

@@ -11,8 +11,8 @@ var baseCreate = require('./_baseCreate'),
*/
function createCtorWrapper(Ctor) {
return function() {
// Use a `switch` statement to work with class constructors.
// See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// Use a `switch` statement to work with class constructors. See
// http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// for more details.
var args = arguments;
switch (args.length) {

View File

@@ -1,6 +1,5 @@
var apply = require('./_apply'),
arrayMap = require('./_arrayMap'),
baseFlatten = require('./_baseFlatten'),
baseIteratee = require('./_baseIteratee'),
rest = require('./rest');
@@ -13,7 +12,7 @@ var apply = require('./_apply'),
*/
function createOver(arrayFunc) {
return rest(function(iteratees) {
iteratees = arrayMap(baseFlatten(iteratees, 1), baseIteratee);
iteratees = arrayMap(iteratees, baseIteratee);
return rest(function(args) {
var thisArg = this;
return arrayFunc(iteratees, function(iteratee) {

View File

@@ -6,9 +6,8 @@ var apply = require('./_apply'),
var BIND_FLAG = 1;
/**
* Creates a function that wraps `func` to invoke it with the optional `this`
* binding of `thisArg` and the `partials` prepended to those provided to
* the wrapper.
* Creates a function that wraps `func` to invoke it with the `this` binding
* of `thisArg` and `partials` prepended to the arguments it receives.
*
* @private
* @param {Function} func The function to wrap.

View File

@@ -78,7 +78,8 @@ function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
case regexpTag:
case stringTag:
// Coerce regexes to strings and treat strings, primitives and objects,
// as equal. See https://es5.github.io/#x15.10.6.4 for more details.
// as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring
// for more details.
return object == (other + '');
case mapTag:

View File

@@ -2,7 +2,8 @@ var DataView = require('./_DataView'),
Map = require('./_Map'),
Promise = require('./_Promise'),
Set = require('./_Set'),
WeakMap = require('./_WeakMap');
WeakMap = require('./_WeakMap'),
toSource = require('./_toSource');
/** `Object#toString` result references. */
var mapTag = '[object Map]',
@@ -16,21 +17,19 @@ var dataViewTag = '[object DataView]';
/** Used for built-in method references. */
var objectProto = Object.prototype;
/** Used to resolve the decompiled source of functions. */
var funcToString = Function.prototype.toString;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
/** Used to detect maps, sets, and weakmaps. */
var dataViewCtorString = DataView ? (DataView + '') : '',
mapCtorString = Map ? funcToString.call(Map) : '',
promiseCtorString = Promise ? funcToString.call(Promise) : '',
setCtorString = Set ? funcToString.call(Set) : '',
weakMapCtorString = WeakMap ? funcToString.call(WeakMap) : '';
var dataViewCtorString = toSource(DataView),
mapCtorString = toSource(Map),
promiseCtorString = toSource(Promise),
setCtorString = toSource(Set),
weakMapCtorString = toSource(WeakMap);
/**
* Gets the `toStringTag` of `value`.
@@ -53,7 +52,7 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
getTag = function(value) {
var result = objectToString.call(value),
Ctor = result == objectTag ? value.constructor : null,
ctorString = typeof Ctor == 'function' ? funcToString.call(Ctor) : '';
ctorString = toSource(Ctor);
if (ctorString) {
switch (ctorString) {

View File

@@ -16,29 +16,25 @@ var baseCastPath = require('./_baseCastPath'),
* @returns {boolean} Returns `true` if `path` exists, else `false`.
*/
function hasPath(object, path, hasFunc) {
if (object == null) {
return false;
}
var result = hasFunc(object, path);
if (!result && !isKey(path)) {
path = baseCastPath(path);
path = isKey(path, object) ? [path] : baseCastPath(path);
var index = -1,
length = path.length;
var result,
index = -1,
length = path.length;
while (object != null && ++index < length) {
var key = path[index];
if (!(result = hasFunc(object, key))) {
break;
}
object = object[key];
while (++index < length) {
var key = path[index];
if (!(result = object != null && hasFunc(object, key))) {
break;
}
object = object[key];
}
var length = object ? object.length : undefined;
return result || (
!!length && isLength(length) && isIndex(path, length) &&
(isArray(object) || isString(object) || isArguments(object))
);
if (result) {
return result;
}
var length = object ? object.length : 0;
return !!length && isLength(length) && isIndex(key, length) &&
(isArray(object) || isString(object) || isArguments(object));
}
module.exports = hasPath;

View File

@@ -0,0 +1,20 @@
/**
* A specialized version of `matchesProperty` for source values suitable
* for strict equality comparisons, i.e. `===`.
*
* @private
* @param {string} key The key of the property to get.
* @param {*} srcValue The value to match.
* @returns {Function} Returns the new function.
*/
function matchesStrictComparable(key, srcValue) {
return function(object) {
if (object == null) {
return false;
}
return object[key] === srcValue &&
(srcValue !== undefined || (key in Object(object)));
};
}
module.exports = matchesStrictComparable;

23
_toSource.js Normal file
View File

@@ -0,0 +1,23 @@
var isFunction = require('./isFunction'),
toString = require('./toString');
/** Used to resolve the decompiled source of functions. */
var funcToString = Function.prototype.toString;
/**
* Converts `func` to its source code.
*
* @private
* @param {Function} func The function to process.
* @returns {string} Returns the source code.
*/
function toSource(func) {
if (isFunction(func)) {
try {
return funcToString.call(func);
} catch (e) {}
}
return toString(func);
}
module.exports = toSource;

4
ary.js
View File

@@ -4,8 +4,8 @@ var createWrapper = require('./_createWrapper');
var ARY_FLAG = 128;
/**
* Creates a function that accepts up to `n` arguments, ignoring any
* additional arguments.
* Creates a function that invokes `func`, with up to `n` arguments,
* ignoring any additional arguments.
*
* @static
* @memberOf _

View File

@@ -9,8 +9,7 @@ var BIND_FLAG = 1,
/**
* Creates a function that invokes `func` with the `this` binding of `thisArg`
* and prepends any additional `_.bind` arguments to those provided to the
* bound function.
* and `partials` prepended to the arguments it receives.
*
* The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
* may be used as a placeholder for partially applied arguments.

View File

@@ -9,8 +9,8 @@ var BIND_FLAG = 1,
PARTIAL_FLAG = 32;
/**
* Creates a function that invokes the method at `object[key]` and prepends
* any additional `_.bindKey` arguments to those provided to the bound function.
* Creates a function that invokes the method at `object[key]` with `partials`
* prepended to the arguments it receives.
*
* This method differs from `_.bind` by allowing bound functions to reference
* methods that may be redefined or don't yet exist. See

View File

@@ -1,4 +1,5 @@
var baseSlice = require('./_baseSlice'),
isIterateeCall = require('./_isIterateeCall'),
toInteger = require('./toInteger');
/* Built-in method references for those with the same name as other `lodash` methods. */
@@ -15,7 +16,8 @@ var nativeCeil = Math.ceil,
* @since 3.0.0
* @category Array
* @param {Array} array The array to process.
* @param {number} [size=0] The length of each chunk.
* @param {number} [size=1] The length of each chunk
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
* @returns {Array} Returns the new array containing chunks.
* @example
*
@@ -25,9 +27,12 @@ var nativeCeil = Math.ceil,
* _.chunk(['a', 'b', 'c', 'd'], 3);
* // => [['a', 'b', 'c'], ['d']]
*/
function chunk(array, size) {
size = nativeMax(toInteger(size), 0);
function chunk(array, size, guard) {
if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
size = 1;
} else {
size = nativeMax(toInteger(size), 0);
}
var length = array ? array.length : 0;
if (!length || size < 1) {
return [];

48
core.js
View File

@@ -1,6 +1,6 @@
/**
* @license
* lodash 4.7.0 (Custom Build) <https://lodash.com/>
* lodash 4.8.1 (Custom Build) <https://lodash.com/>
* Build: `lodash core -o ./dist/lodash.core.js`
* Copyright jQuery Foundation and other contributors <https://jquery.org/>
* Released under MIT license <https://lodash.com/license>
@@ -13,7 +13,7 @@
var undefined;
/** Used as the semantic version number. */
var VERSION = '4.7.0';
var VERSION = '4.8.1';
/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';
@@ -357,7 +357,8 @@
var idCounter = 0;
/**
* Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* Used to resolve the
* [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objectToString = objectProto.toString;
@@ -1140,8 +1141,8 @@
*/
function createCtorWrapper(Ctor) {
return function() {
// Use a `switch` statement to work with class constructors.
// See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// Use a `switch` statement to work with class constructors. See
// http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
// for more details.
var args = arguments;
var thisBinding = baseCreate(Ctor.prototype),
@@ -1154,9 +1155,8 @@
}
/**
* Creates a function that wraps `func` to invoke it with the optional `this`
* binding of `thisArg` and the `partials` prepended to those provided to
* the wrapper.
* Creates a function that wraps `func` to invoke it with the `this` binding
* of `thisArg` and `partials` prepended to the arguments it receives.
*
* @private
* @param {Function} func The function to wrap.
@@ -1290,7 +1290,8 @@
case regexpTag:
case stringTag:
// Coerce regexes to strings and treat strings, primitives and objects,
// as equal. See https://es5.github.io/#x15.10.6.4 for more details.
// as equal. See http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype.tostring
// for more details.
return object == (other + '');
}
@@ -1905,7 +1906,7 @@
}
/**
* Creates an array of values by running each element in `collection` through
* Creates an array of values by running each element in `collection` thru
* `iteratee`. The iteratee is invoked with three arguments:
* (value, index|key, collection).
*
@@ -1913,10 +1914,10 @@
* `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
*
* The guarded methods are:
* `ary`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, `fill`,
* `invert`, `parseInt`, `random`, `range`, `rangeRight`, `slice`, `some`,
* `sortBy`, `take`, `takeRight`, `template`, `trim`, `trimEnd`, `trimStart`,
* and `words`
* `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
* `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
* `sampleSize`, `slice`, `some`, `sortBy`, `take`, `takeRight`, `template`,
* `trim`, `trimEnd`, `trimStart`, and `words`
*
* @static
* @memberOf _
@@ -1953,7 +1954,7 @@
/**
* Reduces `collection` to a value which is the accumulated result of running
* each element in `collection` through `iteratee`, where each successive
* each element in `collection` thru `iteratee`, where each successive
* invocation is supplied the return value of the previous. If `accumulator`
* is not given the first element of `collection` is used as the initial
* value. The iteratee is invoked with four arguments:
@@ -2064,7 +2065,7 @@
/**
* Creates an array of elements, sorted in ascending order by the results of
* running each element in a collection through each iteratee. This method
* running each element in a collection thru each iteratee. This method
* performs a stable sort, that is, it preserves the original sort order of
* equal elements. The iteratees are invoked with one argument: (value).
*
@@ -2146,8 +2147,7 @@
/**
* Creates a function that invokes `func` with the `this` binding of `thisArg`
* and prepends any additional `_.bind` arguments to those provided to the
* bound function.
* and `partials` prepended to the arguments it receives.
*
* The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
* may be used as a placeholder for partially applied arguments.
@@ -2790,8 +2790,9 @@
}
/**
* Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
* (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
* Checks if `value` is the
* [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
*
* @static
* @memberOf _
@@ -2849,9 +2850,10 @@
/**
* Checks if `value` is `NaN`.
*
* **Note:** This method is not the same as
* [`isNaN`](https://es5.github.io/#x15.1.2.4) which returns `true` for
* `undefined` and other non-numeric values.
* **Note:** This method is based on
* [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
* global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
* `undefined` and other non-number values.
*
* @static
* @memberOf _

4
core.min.js vendored
View File

@@ -1,6 +1,6 @@
/**
* @license
* lodash 4.7.0 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
* lodash 4.8.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
* Build: `lodash core -o ./dist/lodash.core.js`
*/
;(function(){function n(n,t){return n.push.apply(n,t),n}function t(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===ln?i===i:r(i,c)))var c=i,f=o}return f}function r(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return w(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return yn[n]}function c(n){var t=false;if(null!=n&&typeof n.toString!="function")try{
@@ -25,6 +25,6 @@ return x(Kn({},n))},a.mixin=an,a.negate=function(n){if(typeof n!="function")thro
if(r>e&&!c||!i||u&&!f&&a||o&&a){r=1;break n}if(e>r&&!u||!a||c&&!o&&i||f&&i){r=-1;break n}}r=0}return r||n.b-t.b}),E("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return Q(n)?n.length?N(n):[]:cn(n)},a.values=cn,a.extend=Ln,an(a,a),a.clone=function(n){return Y(n)?Un(n)?N(n):F(n,un(n)):n},a.escape=function(n){return(n=en(n))&&hn.test(n)?n.replace(sn,i):n},a.every=function(n,t,r){return t=r?ln:t,v(n,m(t))},a.find=J,a.forEach=M,a.has=function(n,t){return null!=n&&En.call(n,t);
},a.head=G,a.identity=fn,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?$n(e+r,0):r:0,r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1},a.isArguments=L,a.isArray=Un,a.isBoolean=function(n){return true===n||false===n||Z(n)&&"[object Boolean]"==Nn.call(n)},a.isDate=function(n){return Z(n)&&"[object Date]"==Nn.call(n)},a.isEmpty=function(n){if(Q(n)&&(Un(n)||tn(n)||W(n.splice)||L(n)))return!n.length;for(var t in n)if(En.call(n,t))return false;return!(qn&&un(n).length);
},a.isEqual=function(n,t){return j(n,t)},a.isFinite=function(n){return typeof n=="number"&&Dn(n)},a.isFunction=W,a.isNaN=function(n){return nn(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=nn,a.isObject=Y,a.isRegExp=function(n){return Y(n)&&"[object RegExp]"==Nn.call(n)},a.isString=tn,a.isUndefined=function(n){return n===ln},a.last=function(n){var t=n?n.length:0;return t?n[t-1]:ln},a.max=function(n){return n&&n.length?t(n,fn,K):ln},a.min=function(n){return n&&n.length?t(n,fn,rn):ln},
a.noConflict=function(){return wn._===this&&(wn._=Sn),this},a.noop=function(){},a.reduce=P,a.result=function(n,t,r){return t=null==n?ln:n[t],t===ln&&(t=r),W(t)?t.call(n):t},a.size=function(n){return null==n?0:(n=Q(n)?n:un(n),n.length)},a.some=function(n,t,r){return t=r?ln:t,S(n,m(t))},a.uniqueId=function(n){var t=++kn;return en(n)+t},a.each=M,a.first=G,an(a,function(){var n={};return b(a,function(t,r){En.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.7.0",zn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
a.noConflict=function(){return wn._===this&&(wn._=Sn),this},a.noop=function(){},a.reduce=P,a.result=function(n,t,r){return t=null==n?ln:n[t],t===ln&&(t=r),W(t)?t.call(n):t},a.size=function(n){return null==n?0:(n=Q(n)?n:un(n),n.length)},a.some=function(n,t,r){return t=r?ln:t,S(n,m(t))},a.uniqueId=function(n){var t=++kn;return en(n)+t},a.each=M,a.first=G,an(a,function(){var n={};return b(a,function(t,r){En.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.8.1",zn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){
var t=(/^(?:replace|split)$/.test(n)?String.prototype:xn)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);a.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Un(u)?u:[],n)}return this[r](function(r){return t.apply(Un(r)?r:[],n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return T(this.__wrapped__,this.__actions__)},(mn||dn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){
return a}):bn&&_n?(jn&&((_n.exports=a)._=a),bn._=a):wn._=a}).call(this);

View File

@@ -8,9 +8,9 @@ var hasOwnProperty = objectProto.hasOwnProperty;
/**
* Creates an object composed of keys generated from the results of running
* each element of `collection` through `iteratee`. The corresponding value
* of each key is the number of times the key was returned by `iteratee`.
* The iteratee is invoked with one argument: (value).
* each element of `collection` thru `iteratee`. The corresponding value of
* each key is the number of times the key was returned by `iteratee`. The
* iteratee is invoked with one argument: (value).
*
* @static
* @memberOf _

View File

@@ -1,6 +1,9 @@
var toString = require('./toString');
/** Used to match `RegExp` [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns). */
/**
* Used to match `RegExp`
* [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).
*/
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
reHasRegExpChar = RegExp(reRegExpChar.source);

View File

@@ -3,8 +3,8 @@ var baseFlatten = require('./_baseFlatten'),
/**
* Creates a flattened array of values by running each element in `collection`
* through `iteratee` and flattening the mapped results. The iteratee is
* invoked with three arguments: (value, index|key, collection).
* thru `iteratee` and flattening the mapped results. The iteratee is invoked
* with three arguments: (value, index|key, collection).
*
* @static
* @memberOf _

1
fp/__.js Normal file
View File

@@ -0,0 +1 @@
module.exports = require('./placeholder');

View File

@@ -1,14 +1,99 @@
var mapping = require('./_mapping'),
mutateMap = mapping.mutate,
fallbackHolder = {};
fallbackHolder = require('./placeholder');
/**
* Creates a function, with an arity of `n`, that invokes `func` with the
* arguments it receives.
*
* @private
* @param {Function} func The function to wrap.
* @param {number} n The arity of the new function.
* @returns {Function} Returns the new function.
*/
function baseArity(func, n) {
return n == 2
? function(a, b) { return func.apply(undefined, arguments); }
: function(a) { return func.apply(undefined, arguments); };
}
/**
* Creates a function that invokes `func`, with up to `n` arguments, ignoring
* any additional arguments.
*
* @private
* @param {Function} func The function to cap arguments for.
* @param {number} n The arity cap.
* @returns {Function} Returns the new function.
*/
function baseAry(func, n) {
return n == 2
? function(a, b) { return func(a, b); }
: function(a) { return func(a); };
}
/**
* Creates a clone of `array`.
*
* @private
* @param {Array} array The array to clone.
* @returns {Array} Returns the cloned array.
*/
function cloneArray(array) {
var length = array ? array.length : 0,
result = Array(length);
while (length--) {
result[length] = array[length];
}
return result;
}
/**
* Creates a function that clones a given object using the assignment `func`.
*
* @private
* @param {Function} func The assignment function.
* @returns {Function} Returns the new cloner function.
*/
function createCloner(func) {
return function(object) {
return func({}, object);
};
}
/**
* Creates a function that wraps `func` and uses `cloner` to clone the first
* argument it receives.
*
* @private
* @param {Function} func The function to wrap.
* @param {Function} cloner The function to clone arguments.
* @returns {Function} Returns the new immutable function.
*/
function immutWrap(func, cloner) {
return function() {
var length = arguments.length;
if (!length) {
return result;
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var result = args[0] = cloner.apply(undefined, args);
func.apply(undefined, args);
return result;
};
}
/**
* The base implementation of `convert` which accepts a `util` object of methods
* required to perform conversions.
*
* @param {Object} util The util object.
* @param {string} name The name of the function to wrap.
* @param {Function} func The function to wrap.
* @param {string} name The name of the function to convert.
* @param {Function} func The function to convert.
* @param {Object} [options] The options object.
* @param {boolean} [options.cap=true] Specify capping iteratee arguments.
* @param {boolean} [options.curry=true] Specify currying.
@@ -40,7 +125,9 @@ function baseConvert(util, name, func, options) {
'rearg': 'rearg' in options ? options.rearg : true
};
var forceRearg = ('rearg' in options) && options.rearg,
var forceCurry = ('curry' in options) && options.curry,
forceFixed = ('fixed' in options) && options.fixed,
forceRearg = ('rearg' in options) && options.rearg,
placeholder = isLib ? func : fallbackHolder,
pristine = isLib ? func.runInContext() : undefined;
@@ -73,103 +160,6 @@ function baseConvert(util, name, func, options) {
var aryMethodKeys = keys(mapping.aryMethod);
var baseArity = function(func, n) {
return n == 2
? function(a, b) { return func.apply(undefined, arguments); }
: function(a) { return func.apply(undefined, arguments); };
};
var baseAry = function(func, n) {
return n == 2
? function(a, b) { return func(a, b); }
: function(a) { return func(a); };
};
var cloneArray = function(array) {
var length = array ? array.length : 0,
result = Array(length);
while (length--) {
result[length] = array[length];
}
return result;
};
var cloneByPath = function(object, path) {
path = toPath(path);
var index = -1,
length = path.length,
result = clone(Object(object)),
nested = result;
while (nested != null && ++index < length) {
var key = path[index],
value = nested[key];
if (value != null) {
nested[key] = clone(Object(value));
}
nested = nested[key];
}
return result;
};
var convertLib = function(options) {
return _.runInContext.convert(options)();
};
var createCloner = function(func) {
return function(object) {
return func({}, object);
};
};
var immutWrap = function(func, cloner) {
return function() {
var length = arguments.length;
if (!length) {
return result;
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var result = args[0] = cloner.apply(undefined, args);
func.apply(undefined, args);
return result;
};
};
var iterateeAry = function(func, n) {
return overArg(func, function(func) {
return typeof func == 'function' ? baseAry(func, n) : func;
});
};
var iterateeRearg = function(func, indexes) {
return overArg(func, function(func) {
var n = indexes.length;
return baseArity(rearg(baseAry(func, n), indexes), n);
});
};
var overArg = function(func, iteratee, retArg) {
return function() {
var length = arguments.length;
if (!length) {
return func();
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var index = config.rearg ? 0 : (length - 1);
args[index] = iteratee(args[index]);
return func.apply(undefined, args);
};
};
var wrappers = {
'castArray': function(castArray) {
return function() {
@@ -230,25 +220,143 @@ function baseConvert(util, name, func, options) {
}
};
var wrap = function(name, func) {
name = mapping.aliasToReal[name] || name;
var wrapper = wrappers[name];
/*--------------------------------------------------------------------------*/
var convertMethod = function(options) {
/**
* Creates a clone of `object` by `path`.
*
* @private
* @param {Object} object The object to clone.
* @param {Array|string} path The path to clone by.
* @returns {Object} Returns the cloned object.
*/
function cloneByPath(object, path) {
path = toPath(path);
var index = -1,
length = path.length,
result = clone(Object(object)),
nested = result;
while (nested != null && ++index < length) {
var key = path[index],
value = nested[key];
if (value != null) {
nested[key] = clone(Object(value));
}
nested = nested[key];
}
return result;
}
/**
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied.
*
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function} Returns the converted `lodash`.
*/
function convertLib(options) {
return _.runInContext.convert(options)(undefined);
}
/**
* Create a converter function for `func` of `name`.
*
* @param {string} name The name of the function to convert.
* @param {Function} func The function to convert.
* @returns {Function} Returns the new converter function.
*/
function createConverter(name, func) {
var oldOptions = options;
return function(options) {
var newUtil = isLib ? pristine : helpers,
newFunc = isLib ? pristine[name] : func,
newOptions = assign(assign({}, config), options);
newOptions = assign(assign({}, oldOptions), options);
return baseConvert(newUtil, name, newFunc, newOptions);
};
}
/**
* Creates a function that wraps `func` to invoke its iteratee, with up to `n`
* arguments, ignoring any additional arguments.
*
* @private
* @param {Function} func The function to cap iteratee arguments for.
* @param {number} n The arity cap.
* @returns {Function} Returns the new function.
*/
function iterateeAry(func, n) {
return overArg(func, function(func) {
return typeof func == 'function' ? baseAry(func, n) : func;
});
}
/**
* Creates a function that wraps `func` to invoke its iteratee with arguments
* arranged according to the specified `indexes` where the argument value at
* the first index is provided as the first argument, the argument value at
* the second index is provided as the second argument, and so on.
*
* @private
* @param {Function} func The function to rearrange iteratee arguments for.
* @param {number[]} indexes The arranged argument indexes.
* @returns {Function} Returns the new function.
*/
function iterateeRearg(func, indexes) {
return overArg(func, function(func) {
var n = indexes.length;
return baseArity(rearg(baseAry(func, n), indexes), n);
});
}
/**
* Creates a function that invokes `func` with its first argument passed
* thru `transform`.
*
* @private
* @param {Function} func The function to wrap.
* @param {...Function} transform The functions to transform the first argument.
* @returns {Function} Returns the new function.
*/
function overArg(func, transform) {
return function() {
var length = arguments.length;
if (!length) {
return func();
}
var args = Array(length);
while (length--) {
args[length] = arguments[length];
}
var index = config.rearg ? 0 : (length - 1);
args[index] = transform(args[index]);
return func.apply(undefined, args);
};
}
/**
* Creates a function that wraps `func` and applys the conversions
* rules by `name`.
*
* @private
* @param {string} name The name of the function to wrap.
* @param {Function} func The function to wrap.
* @returns {Function} Returns the converted function.
*/
function wrap(name, func) {
name = mapping.aliasToReal[name] || name;
var result,
wrapped = func,
wrapper = wrappers[name];
if (wrapper) {
var result = wrapper(func);
result.convert = convertMethod;
return result;
wrapped = wrapper(func);
}
var wrapped = func;
if (config.immutable) {
else if (config.immutable) {
if (mutateMap.array[name]) {
wrapped = immutWrap(func, cloneArray);
}
@@ -267,7 +375,7 @@ function baseConvert(util, name, func, options) {
spreadStart = mapping.methodSpread[name];
result = wrapped;
if (config.fixed) {
if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {
result = spreadStart === undefined
? ary(result, aryKey)
: spread(result, spreadStart);
@@ -282,7 +390,8 @@ function baseConvert(util, name, func, options) {
result = iterateeAry(result, aryN);
}
}
if (config.curry && aryKey > 1) {
if (forceCurry || (config.curry && aryKey > 1)) {
forceCurry && console.log(forceCurry, name);
result = curry(result, aryKey);
}
return false;
@@ -293,24 +402,26 @@ function baseConvert(util, name, func, options) {
result || (result = wrapped);
if (result == func) {
result = function() {
result = forceCurry ? curry(result, 1) : function() {
return func.apply(this, arguments);
};
}
result.convert = convertMethod;
result.convert = createConverter(name, func);
if (mapping.placeholder[name]) {
setPlaceholder = true;
result.placeholder = func.placeholder = placeholder;
}
return result;
};
}
/*--------------------------------------------------------------------------*/
if (!isObj) {
return wrap(name, func);
}
var _ = func;
// Iterate over methods for the current ary cap.
// Convert methods by ary cap.
var pairs = [];
each(aryMethodKeys, function(aryKey) {
each(mapping.aryMethod[aryKey], function(key) {
@@ -321,6 +432,21 @@ function baseConvert(util, name, func, options) {
});
});
// Convert remaining methods.
each(keys(_), function(key) {
var func = _[key];
if (typeof func == 'function') {
var length = pairs.length;
while (length--) {
if (pairs[length][0] == key) {
return;
}
}
func.convert = createConverter(key, func);
pairs.push([key, func]);
}
});
// Assign to `_` leaving `_.prototype` unchanged to allow chaining.
each(pairs, function(pair) {
_[pair[0]] = pair[1];
@@ -330,7 +456,7 @@ function baseConvert(util, name, func, options) {
if (setPlaceholder) {
_.placeholder = placeholder;
}
// Reassign aliases.
// Assign aliases.
each(keys(_), function(key) {
each(mapping.realToAlias[key] || [], function(alias) {
_[alias] = _[key];

View File

@@ -1,9 +1,10 @@
var baseConvert = require('./_baseConvert');
/**
* Converts `lodash` to an immutable auto-curried iteratee-first data-last version.
* Converts `lodash` to an immutable auto-curried iteratee-first data-last
* version with conversion `options` applied.
*
* @param {Function} lodash The lodash function.
* @param {Function} lodash The lodash function to convert.
* @param {Object} [options] The options object. See `baseConvert` for more details.
* @returns {Function} Returns the converted `lodash`.
*/

7
fp/_falseOptions.js Normal file
View File

@@ -0,0 +1,7 @@
module.exports = {
'cap': false,
'curry': false,
'fixed': false,
'immutable': false,
'rearg': false
};

View File

@@ -52,9 +52,10 @@ exports.aliasToReal = {
exports.aryMethod = {
'1': [
'attempt', 'castArray', 'ceil', 'create', 'curry', 'curryRight', 'floor',
'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'methodOf', 'mixin',
'over', 'overEvery', 'overSome', 'rest', 'reverse', 'round', 'runInContext',
'spread', 'template', 'trim', 'trimEnd', 'trimStart', 'uniqueId', 'words'
'flow', 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method',
'methodOf', 'mixin', 'over', 'overEvery', 'overSome', 'rest', 'reverse',
'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',
'uniqueId', 'words'
],
'2': [
'add', 'after', 'ary', 'assign', 'assignIn', 'at', 'before', 'bind', 'bindAll',
@@ -164,6 +165,10 @@ exports.methodRearg = {
exports.methodSpread = {
'invokeArgs': 2,
'invokeArgsMap': 2,
'over': 0,
'overArgs': 1,
'overEvery': 0,
'overSome': 0,
'partial': 1,
'partialRight': 1,
'without': 1
@@ -244,7 +249,17 @@ exports.remap = {
'trimCharsStart': 'trimStart'
};
/** Used to track methods that skip `_.rearg`. */
/** Used to track methods that skip fixing their arity. */
exports.skipFixed = {
'castArray': true,
'flow': true,
'flowRight': true,
'iteratee': true,
'mixin': true,
'runInContext': true
};
/** Used to track methods that skip rearranging arguments. */
exports.skipRearg = {
'add': true,
'assign': true,
@@ -263,6 +278,7 @@ exports.skipRearg = {
'matchesProperty': true,
'merge': true,
'multiply': true,
'overArgs': true,
'partial': true,
'partialRight': true,
'random': true,

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('add', require('../add'));
var convert = require('./convert'),
func = convert('add', require('../add'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('after', require('../after'));
var convert = require('./convert'),
func = convert('after', require('../after'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('ary', require('../ary'));
var convert = require('./convert'),
func = convert('ary', require('../ary'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('assign', require('../assign'));
var convert = require('./convert'),
func = convert('assign', require('../assign'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('assignIn', require('../assignIn'));
var convert = require('./convert'),
func = convert('assignIn', require('../assignIn'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('assignInWith', require('../assignInWith'));
var convert = require('./convert'),
func = convert('assignInWith', require('../assignInWith'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('assignWith', require('../assignWith'));
var convert = require('./convert'),
func = convert('assignWith', require('../assignWith'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('at', require('../at'));
var convert = require('./convert'),
func = convert('at', require('../at'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('attempt', require('../attempt'));
var convert = require('./convert'),
func = convert('attempt', require('../attempt'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('before', require('../before'));
var convert = require('./convert'),
func = convert('before', require('../before'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('bind', require('../bind'));
var convert = require('./convert'),
func = convert('bind', require('../bind'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('bindAll', require('../bindAll'));
var convert = require('./convert'),
func = convert('bindAll', require('../bindAll'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('bindKey', require('../bindKey'));
var convert = require('./convert'),
func = convert('bindKey', require('../bindKey'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../camelCase');
var convert = require('./convert'),
func = convert('camelCase', require('../camelCase'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../capitalize');
var convert = require('./convert'),
func = convert('capitalize', require('../capitalize'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('castArray', require('../castArray'));
var convert = require('./convert'),
func = convert('castArray', require('../castArray'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('ceil', require('../ceil'));
var convert = require('./convert'),
func = convert('ceil', require('../ceil'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../chain');
var convert = require('./convert'),
func = convert('chain', require('../chain'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('chunk', require('../chunk'));
var convert = require('./convert'),
func = convert('chunk', require('../chunk'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('clamp', require('../clamp'));
var convert = require('./convert'),
func = convert('clamp', require('../clamp'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../clone');
var convert = require('./convert'),
func = convert('clone', require('../clone'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../cloneDeep');
var convert = require('./convert'),
func = convert('cloneDeep', require('../cloneDeep'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('cloneDeepWith', require('../cloneDeepWith'));
var convert = require('./convert'),
func = convert('cloneDeepWith', require('../cloneDeepWith'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('cloneWith', require('../cloneWith'));
var convert = require('./convert'),
func = convert('cloneWith', require('../cloneWith'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../commit');
var convert = require('./convert'),
func = convert('commit', require('../commit'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../compact');
var convert = require('./convert'),
func = convert('compact', require('../compact'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('concat', require('../concat'));
var convert = require('./convert'),
func = convert('concat', require('../concat'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../cond');
var convert = require('./convert'),
func = convert('cond', require('../cond'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../conforms');
var convert = require('./convert'),
func = convert('conforms', require('../conforms'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../constant');
var convert = require('./convert'),
func = convert('constant', require('../constant'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -3,7 +3,8 @@ var baseConvert = require('./_baseConvert'),
/**
* Converts `func` of `name` to an immutable auto-curried iteratee-first data-last
* version. If `name` is an object its methods will be converted.
* version with conversion `options` applied. If `name` is an object its methods
* will be converted.
*
* @param {string} name The name of the function to wrap.
* @param {Function} [func] The function to wrap.

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('countBy', require('../countBy'));
var convert = require('./convert'),
func = convert('countBy', require('../countBy'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('create', require('../create'));
var convert = require('./convert'),
func = convert('create', require('../create'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('curry', require('../curry'));
var convert = require('./convert'),
func = convert('curry', require('../curry'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('curryN', require('../curry'));
var convert = require('./convert'),
func = convert('curryN', require('../curry'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('curryRight', require('../curryRight'));
var convert = require('./convert'),
func = convert('curryRight', require('../curryRight'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('curryRightN', require('../curryRight'));
var convert = require('./convert'),
func = convert('curryRightN', require('../curryRight'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('debounce', require('../debounce'));
var convert = require('./convert'),
func = convert('debounce', require('../debounce'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../deburr');
var convert = require('./convert'),
func = convert('deburr', require('../deburr'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('defaults', require('../defaults'));
var convert = require('./convert'),
func = convert('defaults', require('../defaults'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('defaultsDeep', require('../defaultsDeep'));
var convert = require('./convert'),
func = convert('defaultsDeep', require('../defaultsDeep'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../defer');
var convert = require('./convert'),
func = convert('defer', require('../defer'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('delay', require('../delay'));
var convert = require('./convert'),
func = convert('delay', require('../delay'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('difference', require('../difference'));
var convert = require('./convert'),
func = convert('difference', require('../difference'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('differenceBy', require('../differenceBy'));
var convert = require('./convert'),
func = convert('differenceBy', require('../differenceBy'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('differenceWith', require('../differenceWith'));
var convert = require('./convert'),
func = convert('differenceWith', require('../differenceWith'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('divide', require('../divide'));
var convert = require('./convert'),
func = convert('divide', require('../divide'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('drop', require('../drop'));
var convert = require('./convert'),
func = convert('drop', require('../drop'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('dropRight', require('../dropRight'));
var convert = require('./convert'),
func = convert('dropRight', require('../dropRight'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('dropRightWhile', require('../dropRightWhile'));
var convert = require('./convert'),
func = convert('dropRightWhile', require('../dropRightWhile'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('dropWhile', require('../dropWhile'));
var convert = require('./convert'),
func = convert('dropWhile', require('../dropWhile'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('endsWith', require('../endsWith'));
var convert = require('./convert'),
func = convert('endsWith', require('../endsWith'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('eq', require('../eq'));
var convert = require('./convert'),
func = convert('eq', require('../eq'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../escape');
var convert = require('./convert'),
func = convert('escape', require('../escape'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../escapeRegExp');
var convert = require('./convert'),
func = convert('escapeRegExp', require('../escapeRegExp'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('every', require('../every'));
var convert = require('./convert'),
func = convert('every', require('../every'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('fill', require('../fill'));
var convert = require('./convert'),
func = convert('fill', require('../fill'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('filter', require('../filter'));
var convert = require('./convert'),
func = convert('filter', require('../filter'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('find', require('../find'));
var convert = require('./convert'),
func = convert('find', require('../find'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('findIndex', require('../findIndex'));
var convert = require('./convert'),
func = convert('findIndex', require('../findIndex'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('findKey', require('../findKey'));
var convert = require('./convert'),
func = convert('findKey', require('../findKey'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('findLast', require('../findLast'));
var convert = require('./convert'),
func = convert('findLast', require('../findLast'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('findLastIndex', require('../findLastIndex'));
var convert = require('./convert'),
func = convert('findLastIndex', require('../findLastIndex'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('findLastKey', require('../findLastKey'));
var convert = require('./convert'),
func = convert('findLastKey', require('../findLastKey'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('flatMap', require('../flatMap'));
var convert = require('./convert'),
func = convert('flatMap', require('../flatMap'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('flatMapDeep', require('../flatMapDeep'));
var convert = require('./convert'),
func = convert('flatMapDeep', require('../flatMapDeep'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('flatMapDepth', require('../flatMapDepth'));
var convert = require('./convert'),
func = convert('flatMapDepth', require('../flatMapDepth'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../flatten');
var convert = require('./convert'),
func = convert('flatten', require('../flatten'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../flattenDeep');
var convert = require('./convert'),
func = convert('flattenDeep', require('../flattenDeep'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('flattenDepth', require('../flattenDepth'));
var convert = require('./convert'),
func = convert('flattenDepth', require('../flattenDepth'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../flip');
var convert = require('./convert'),
func = convert('flip', require('../flip'), require('./_falseOptions'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1,2 +1,5 @@
var convert = require('./convert');
module.exports = convert('floor', require('../floor'));
var convert = require('./convert'),
func = convert('floor', require('../floor'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../flow');
var convert = require('./convert'),
func = convert('flow', require('../flow'));
func.placeholder = require('./placeholder');
module.exports = func;

View File

@@ -1 +1,5 @@
module.exports = require('../flowRight');
var convert = require('./convert'),
func = convert('flowRight', require('../flowRight'));
func.placeholder = require('./placeholder');
module.exports = func;

Some files were not shown because too many files have changed in this diff Show More