ut2 1.5.6 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +11 -0
  2. package/dist/ut2.js +239 -101
  3. package/dist/ut2.js.map +1 -1
  4. package/dist/ut2.min.js +1 -1
  5. package/dist/ut2.min.js.map +1 -1
  6. package/es/countBy.js +11 -13
  7. package/es/difference.js +2 -0
  8. package/es/every.js +16 -0
  9. package/es/filter.js +15 -0
  10. package/es/find.js +16 -0
  11. package/es/forEach.js +6 -0
  12. package/es/forEachRight.js +6 -0
  13. package/es/groupBy.js +13 -13
  14. package/es/index.js +11 -0
  15. package/es/internals/createExtremum.js +8 -18
  16. package/es/internals/createForEach.js +23 -0
  17. package/es/internals/createReduce.js +29 -0
  18. package/es/internals/helpers.js +1 -1
  19. package/es/intersection.js +2 -0
  20. package/es/isEmpty.js +1 -1
  21. package/es/keyBy.js +8 -8
  22. package/es/keys.js +11 -0
  23. package/es/map.js +13 -0
  24. package/es/merge.js +32 -22
  25. package/es/orderBy.js +9 -9
  26. package/es/partition.js +7 -7
  27. package/es/range.js +28 -0
  28. package/es/reduce.js +6 -0
  29. package/es/reduceRight.js +6 -0
  30. package/es/some.js +16 -0
  31. package/es/toString.js +1 -1
  32. package/es/uniq.js +5 -13
  33. package/es/xor.js +2 -0
  34. package/lib/countBy.js +11 -13
  35. package/lib/difference.js +2 -0
  36. package/lib/every.js +18 -0
  37. package/lib/filter.js +17 -0
  38. package/lib/find.js +18 -0
  39. package/lib/forEach.js +8 -0
  40. package/lib/forEachRight.js +8 -0
  41. package/lib/groupBy.js +13 -13
  42. package/lib/index.js +22 -0
  43. package/lib/internals/createExtremum.js +8 -18
  44. package/lib/internals/createForEach.js +25 -0
  45. package/lib/internals/createReduce.js +31 -0
  46. package/lib/internals/helpers.js +1 -1
  47. package/lib/intersection.js +2 -0
  48. package/lib/isEmpty.js +2 -2
  49. package/lib/keyBy.js +8 -8
  50. package/lib/keys.js +13 -0
  51. package/lib/map.js +15 -0
  52. package/lib/merge.js +32 -22
  53. package/lib/orderBy.js +9 -9
  54. package/lib/partition.js +7 -7
  55. package/lib/range.js +30 -0
  56. package/lib/reduce.js +8 -0
  57. package/lib/reduceRight.js +8 -0
  58. package/lib/some.js +18 -0
  59. package/lib/toString.js +1 -1
  60. package/lib/uniq.js +5 -13
  61. package/lib/xor.js +2 -0
  62. package/package.json +1 -1
  63. package/types/allKeys.d.ts +1 -1
  64. package/types/allKeysIn.d.ts +1 -1
  65. package/types/conformsTo.d.ts +2 -1
  66. package/types/countBy.d.ts +3 -24
  67. package/types/difference.d.ts +3 -2
  68. package/types/every.d.ts +6 -0
  69. package/types/filter.d.ts +6 -0
  70. package/types/find.d.ts +6 -0
  71. package/types/forEach.d.ts +36 -0
  72. package/types/forEachRight.d.ts +36 -0
  73. package/types/groupBy.d.ts +3 -24
  74. package/types/index.d.ts +11 -0
  75. package/types/internals/compare.d.ts +2 -1
  76. package/types/internals/createExtremum.d.ts +2 -1
  77. package/types/internals/createForEach.d.ts +15 -0
  78. package/types/internals/createIteratee.d.ts +2 -2
  79. package/types/internals/createReduce.d.ts +19 -0
  80. package/types/intersection.d.ts +3 -2
  81. package/types/isArrayBuffer.d.ts +1 -1
  82. package/types/isArrayLike.d.ts +1 -1
  83. package/types/isError.d.ts +1 -1
  84. package/types/isWeakMap.d.ts +1 -1
  85. package/types/isWeakSet.d.ts +1 -1
  86. package/types/keyBy.d.ts +3 -24
  87. package/types/keys.d.ts +24 -0
  88. package/types/keysIn.d.ts +1 -1
  89. package/types/map.d.ts +6 -0
  90. package/types/max.d.ts +3 -2
  91. package/types/merge.d.ts +6 -2
  92. package/types/min.d.ts +3 -2
  93. package/types/orderBy.d.ts +3 -39
  94. package/types/partition.d.ts +3 -34
  95. package/types/range.d.ts +4 -0
  96. package/types/reduce.d.ts +38 -0
  97. package/types/reduceRight.d.ts +38 -0
  98. package/types/some.d.ts +6 -0
  99. package/types/union.d.ts +2 -1
  100. package/types/uniq.d.ts +2 -1
  101. package/types/xor.d.ts +3 -2
  102. /package/es/internals/{keys.js → specialKeys.js} +0 -0
  103. /package/lib/internals/{keys.js → specialKeys.js} +0 -0
  104. /package/types/internals/{keys.d.ts → specialKeys.d.ts} +0 -0
package/lib/difference.js CHANGED
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var eq = require('./eq.js');
4
+ var identity = require('./identity.js');
4
5
  var createIteratee = require('./internals/createIteratee.js');
5
6
  var isArray = require('./isArray.js');
6
7
 
7
8
  function difference(array, values, iteratee, strictCheck) {
9
+ if (iteratee === void 0) { iteratee = identity; }
8
10
  if (strictCheck === void 0) { strictCheck = false; }
9
11
  if (!isArray(array)) {
10
12
  return [];
package/lib/every.js ADDED
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
5
+
6
+ function every(collection, predicate) {
7
+ if (predicate === void 0) { predicate = identity; }
8
+ var result = true;
9
+ forEach(collection, function (item, index, arr) {
10
+ if (!predicate(item, index, arr)) {
11
+ result = false;
12
+ return false;
13
+ }
14
+ });
15
+ return result;
16
+ }
17
+
18
+ module.exports = every;
package/lib/filter.js ADDED
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
5
+
6
+ function filter(array, predicate) {
7
+ if (predicate === void 0) { predicate = identity; }
8
+ var results = [];
9
+ forEach(array, function (item, index) {
10
+ if (predicate(item, index, array)) {
11
+ results.push(item);
12
+ }
13
+ });
14
+ return results;
15
+ }
16
+
17
+ module.exports = filter;
package/lib/find.js ADDED
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
5
+
6
+ function find(collection, predicate) {
7
+ if (predicate === void 0) { predicate = identity; }
8
+ var result;
9
+ forEach(collection, function (item, index, arr) {
10
+ if (predicate(item, index, arr)) {
11
+ result = item;
12
+ return false;
13
+ }
14
+ });
15
+ return result;
16
+ }
17
+
18
+ module.exports = find;
package/lib/forEach.js ADDED
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var createForEach = require('./internals/createForEach.js');
4
+
5
+ var forEach = createForEach(1);
6
+ var forEach$1 = forEach;
7
+
8
+ module.exports = forEach$1;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var createForEach = require('./internals/createForEach.js');
4
+
5
+ var forEachRight = createForEach(-1);
6
+ var forEachRight$1 = forEachRight;
7
+
8
+ module.exports = forEachRight$1;
package/lib/groupBy.js CHANGED
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
3
5
  var createIteratee = require('./internals/createIteratee.js');
4
- var isArray = require('./isArray.js');
5
6
 
6
7
  function groupBy(collection, iteratee) {
8
+ if (iteratee === void 0) { iteratee = identity; }
7
9
  var result = {};
8
- if (isArray(collection)) {
9
- var internalIteratee_1 = createIteratee(iteratee);
10
- collection.forEach(function (item) {
11
- var key = internalIteratee_1(item);
12
- if (key in result) {
13
- result[key].push(item);
14
- }
15
- else {
16
- result[key] = [item];
17
- }
18
- });
19
- }
10
+ var internalIteratee = createIteratee(iteratee);
11
+ forEach(collection, function (item) {
12
+ var key = internalIteratee(item);
13
+ if (key in result) {
14
+ result[key].push(item);
15
+ }
16
+ else {
17
+ result[key] = [item];
18
+ }
19
+ });
20
20
  return result;
21
21
  }
22
22
 
package/lib/index.js CHANGED
@@ -13,10 +13,19 @@ var unzip = require('./unzip.js');
13
13
  var xor = require('./xor.js');
14
14
  var zip = require('./zip.js');
15
15
  var countBy = require('./countBy.js');
16
+ var every = require('./every.js');
17
+ var find = require('./find.js');
18
+ var filter = require('./filter.js');
19
+ var forEach = require('./forEach.js');
20
+ var forEachRight = require('./forEachRight.js');
16
21
  var groupBy = require('./groupBy.js');
17
22
  var keyBy = require('./keyBy.js');
18
23
  var orderBy = require('./orderBy.js');
24
+ var map = require('./map.js');
19
25
  var partition = require('./partition.js');
26
+ var reduce = require('./reduce.js');
27
+ var reduceRight = require('./reduceRight.js');
28
+ var some = require('./some.js');
20
29
  var after = require('./after.js');
21
30
  var before = require('./before.js');
22
31
  var debounce = require('./debounce.js');
@@ -73,6 +82,7 @@ var random = require('./random.js');
73
82
  var randomInt = require('./randomInt.js');
74
83
  var allKeys = require('./allKeys.js');
75
84
  var allKeysIn = require('./allKeysIn.js');
85
+ var keys = require('./keys.js');
76
86
  var keysIn = require('./keysIn.js');
77
87
  var merge = require('./merge.js');
78
88
  var omit = require('./omit.js');
@@ -104,6 +114,7 @@ var lt = require('./lt.js');
104
114
  var lte = require('./lte.js');
105
115
  var noop = require('./noop.js');
106
116
  var nthArg = require('./nthArg.js');
117
+ var range = require('./range.js');
107
118
  var sleep = require('./sleep.js');
108
119
  var times = require('./times.js');
109
120
  var toFinite = require('./toFinite.js');
@@ -131,10 +142,19 @@ exports.unzip = unzip;
131
142
  exports.xor = xor;
132
143
  exports.zip = zip;
133
144
  exports.countBy = countBy;
145
+ exports.every = every;
146
+ exports.find = find;
147
+ exports.filter = filter;
148
+ exports.forEach = forEach;
149
+ exports.forEachRight = forEachRight;
134
150
  exports.groupBy = groupBy;
135
151
  exports.keyBy = keyBy;
136
152
  exports.orderBy = orderBy;
153
+ exports.map = map;
137
154
  exports.partition = partition;
155
+ exports.reduce = reduce;
156
+ exports.reduceRight = reduceRight;
157
+ exports.some = some;
138
158
  exports.after = after;
139
159
  exports.before = before;
140
160
  exports.debounce = debounce;
@@ -191,6 +211,7 @@ exports.random = random;
191
211
  exports.randomInt = randomInt;
192
212
  exports.allKeys = allKeys;
193
213
  exports.allKeysIn = allKeysIn;
214
+ exports.keys = keys;
194
215
  exports.keysIn = keysIn;
195
216
  exports.merge = merge;
196
217
  exports.omit = omit;
@@ -222,6 +243,7 @@ exports.lt = lt;
222
243
  exports.lte = lte;
223
244
  exports.noop = noop;
224
245
  exports.nthArg = nthArg;
246
+ exports.range = range;
225
247
  exports.sleep = sleep;
226
248
  exports.times = times;
227
249
  exports.toFinite = toFinite;
@@ -2,7 +2,6 @@
2
2
 
3
3
  var isArray = require('../isArray.js');
4
4
  var isSymbol = require('../isSymbol.js');
5
- var isUndefined = require('../isUndefined.js');
6
5
  var createIteratee = require('./createIteratee.js');
7
6
 
8
7
  function createExtremum(array, comparator, iteratee) {
@@ -10,23 +9,14 @@ function createExtremum(array, comparator, iteratee) {
10
9
  return;
11
10
  }
12
11
  var result, computed;
13
- if (isUndefined(iteratee)) {
14
- array.forEach(function (value) {
15
- if (value != null && (result === undefined ? value === value && !isSymbol(value) : comparator(value, result))) {
16
- result = value;
17
- }
18
- });
19
- }
20
- else {
21
- var internalIteratee_1 = createIteratee(iteratee);
22
- array.forEach(function (value) {
23
- var current = internalIteratee_1(value);
24
- if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) {
25
- computed = current;
26
- result = value;
27
- }
28
- });
29
- }
12
+ var internalIteratee = createIteratee(iteratee);
13
+ array.forEach(function (value) {
14
+ var current = internalIteratee(value);
15
+ if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) {
16
+ computed = current;
17
+ result = value;
18
+ }
19
+ });
30
20
  return result;
31
21
  }
32
22
 
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var identity = require('../identity.js');
4
+ var isArrayLike = require('../isArrayLike.js');
5
+ var keys = require('../keys.js');
6
+
7
+ function createForEach(dir) {
8
+ function forEach(collection, iteratee) {
9
+ if (iteratee === void 0) { iteratee = identity; }
10
+ var _keys = !isArrayLike(collection) && keys(collection);
11
+ var len = (_keys || collection).length;
12
+ var i = dir > 0 ? 0 : len - 1;
13
+ while (i >= 0 && i < len) {
14
+ var currentKey = _keys ? _keys[i] : i;
15
+ if (iteratee(collection[currentKey], currentKey, collection) === false) {
16
+ break;
17
+ }
18
+ i += dir;
19
+ }
20
+ return collection;
21
+ }
22
+ return forEach;
23
+ }
24
+
25
+ module.exports = createForEach;
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var identity = require('../identity.js');
4
+ var isArrayLike = require('../isArrayLike.js');
5
+ var keys = require('../keys.js');
6
+
7
+ function createReduce(dir) {
8
+ function reducer(collection, iteratee, memo, initial) {
9
+ var _keys = !isArrayLike(collection) && keys(collection);
10
+ var len = (_keys || collection).length;
11
+ var i = dir > 0 ? 0 : len - 1;
12
+ if (!initial && len > 0) {
13
+ memo = collection[_keys ? _keys[i] : i];
14
+ i += dir;
15
+ }
16
+ while (i >= 0 && i < len) {
17
+ var currentKey = _keys ? _keys[i] : i;
18
+ memo = iteratee(memo, collection[currentKey], currentKey, collection);
19
+ i += dir;
20
+ }
21
+ return memo;
22
+ }
23
+ function reduce(collection, iteratee, initialValue) {
24
+ if (iteratee === void 0) { iteratee = identity; }
25
+ var initial = arguments.length >= 3;
26
+ return reducer(collection, iteratee, initialValue, initial);
27
+ }
28
+ return reduce;
29
+ }
30
+
31
+ module.exports = createReduce;
@@ -3,7 +3,7 @@
3
3
  var getTag = require('./getTag.js');
4
4
  var native = require('./native.js');
5
5
 
6
- exports.VERSION = "1.5.6";
6
+ exports.VERSION = "1.7.0";
7
7
  exports.supportedArgumentsType = getTag((function () { return arguments; })()) === native.argumentsTag;
8
8
  exports.FUNC_ERROR_TEXT = 'Expected a function';
9
9
  function toSource(func) {
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var eq = require('./eq.js');
4
+ var identity = require('./identity.js');
4
5
  var createIteratee = require('./internals/createIteratee.js');
5
6
  var isArray = require('./isArray.js');
6
7
 
7
8
  function intersection(array, other, iteratee, strictCheck) {
9
+ if (iteratee === void 0) { iteratee = identity; }
8
10
  if (strictCheck === void 0) { strictCheck = false; }
9
11
  if (!isArray(array) || !isArray(other)) {
10
12
  return [];
package/lib/isEmpty.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var getTag = require('./internals/getTag.js');
4
- var keys = require('./internals/keys.js');
4
+ var specialKeys = require('./internals/specialKeys.js');
5
5
  var native = require('./internals/native.js');
6
6
  var isArrayLike = require('./isArrayLike.js');
7
7
  var isNil = require('./isNil.js');
@@ -16,7 +16,7 @@ function isEmpty(value) {
16
16
  return !value.size;
17
17
  }
18
18
  if (isObjectLike(value)) {
19
- return !keys(value).length;
19
+ return !specialKeys(value).length;
20
20
  }
21
21
  if (isArrayLike(value)) {
22
22
  return !value.length;
package/lib/keyBy.js CHANGED
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
3
5
  var createIteratee = require('./internals/createIteratee.js');
4
- var isArray = require('./isArray.js');
5
6
 
6
7
  function keyBy(collection, iteratee) {
8
+ if (iteratee === void 0) { iteratee = identity; }
7
9
  var result = {};
8
- if (isArray(collection)) {
9
- var internalIteratee_1 = createIteratee(iteratee);
10
- collection.forEach(function (item) {
11
- var key = internalIteratee_1(item);
12
- result[key] = item;
13
- });
14
- }
10
+ var internalIteratee = createIteratee(iteratee);
11
+ forEach(collection, function (item) {
12
+ var key = internalIteratee(item);
13
+ result[key] = item;
14
+ });
15
15
  return result;
16
16
  }
17
17
 
package/lib/keys.js ADDED
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var native = require('./internals/native.js');
4
+ var isObject = require('./isObject.js');
5
+
6
+ function keys(object) {
7
+ if (!isObject(object)) {
8
+ return [];
9
+ }
10
+ return native.objectKeys(object);
11
+ }
12
+
13
+ module.exports = keys;
package/lib/map.js ADDED
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
5
+
6
+ function map(collection, iteratee) {
7
+ if (iteratee === void 0) { iteratee = identity; }
8
+ var result = [];
9
+ forEach(collection, function (item, index, arr) {
10
+ result.push(iteratee(item, index, arr));
11
+ });
12
+ return result;
13
+ }
14
+
15
+ module.exports = map;
package/lib/merge.js CHANGED
@@ -1,46 +1,56 @@
1
1
  'use strict';
2
2
 
3
- var allKeysIn = require('./allKeysIn.js');
3
+ var keysIn = require('./keysIn.js');
4
4
  var isArray = require('./isArray.js');
5
5
  var isObject = require('./isObject.js');
6
6
  var isObjectLike = require('./isObjectLike.js');
7
7
  var isPlainObject = require('./isPlainObject.js');
8
8
 
9
- function baseMerge(object, source, customizer, storage) {
10
- if (storage === void 0) { storage = new WeakMap(); }
9
+ function baseMerge(object, source, getKeys, customizer, stack) {
10
+ if (stack === void 0) { stack = new WeakMap(); }
11
11
  var obj = Object(object);
12
12
  if (!isObject(source) || obj === source) {
13
13
  return obj;
14
14
  }
15
- var keys = allKeysIn(source);
15
+ var keys = getKeys(source);
16
+ var hasCustomizer = typeof customizer === 'function';
16
17
  keys.forEach(function (key) {
17
18
  var srcValue = source[key];
18
- var newValue = typeof customizer === 'function' ? customizer(obj[key], srcValue, key, obj, source) : undefined;
19
- if (newValue === undefined) {
20
- newValue = srcValue;
21
- }
22
- if (isObjectLike(newValue) && !storage.has(newValue)) {
23
- storage.set(newValue, true);
24
- var objValue = obj[key];
25
- var newObjValue = void 0;
26
- if (isArray(newValue)) {
27
- newObjValue = isArray(objValue) ? objValue : [];
28
- }
29
- else if (isPlainObject(newValue)) {
30
- newObjValue = isPlainObject(objValue) ? objValue : {};
31
- }
32
- obj[key] = newObjValue ? baseMerge(newObjValue, newValue, customizer, storage) : newValue;
19
+ var srcIsObj = isObject(srcValue);
20
+ if (srcIsObj && stack.has(srcValue)) {
21
+ obj[key] = srcValue;
33
22
  }
34
23
  else {
35
- if (newValue !== undefined || (newValue === undefined && !(key in obj))) {
24
+ var newValue = hasCustomizer ? customizer(obj[key], srcValue, key, obj, source) : undefined;
25
+ if (newValue !== undefined) {
36
26
  obj[key] = newValue;
37
27
  }
28
+ else {
29
+ var objValue = obj[key];
30
+ var newObjValue = void 0;
31
+ if (srcIsObj) {
32
+ stack.set(srcValue, true);
33
+ if (isArray(srcValue)) {
34
+ newObjValue = isArray(objValue) ? objValue : [];
35
+ }
36
+ else if (isPlainObject(srcValue)) {
37
+ newObjValue = isObjectLike(objValue) ? objValue : {};
38
+ }
39
+ }
40
+ if (newObjValue) {
41
+ obj[key] = baseMerge(newObjValue, srcValue, getKeys, customizer, stack);
42
+ }
43
+ else if (srcValue !== undefined || !(key in obj)) {
44
+ obj[key] = srcValue;
45
+ }
46
+ }
38
47
  }
39
48
  });
40
49
  return obj;
41
50
  }
42
- function merge(object, source, customizer) {
43
- return baseMerge(object, source, customizer);
51
+ function merge(object, source, customizer, getKeys) {
52
+ if (getKeys === void 0) { getKeys = keysIn; }
53
+ return baseMerge(object, source, getKeys, customizer);
44
54
  }
45
55
 
46
56
  module.exports = merge;
package/lib/orderBy.js CHANGED
@@ -4,21 +4,21 @@ var identity = require('./identity.js');
4
4
  var createIteratee = require('./internals/createIteratee.js');
5
5
  var compare = require('./internals/compare.js');
6
6
  var isArray = require('./isArray.js');
7
+ var forEach = require('./forEach.js');
7
8
 
8
9
  function orderBy(collection, iteratees, orders) {
9
10
  var result = [];
10
11
  iteratees = (isArray(iteratees) ? iteratees : iteratees !== undefined ? [iteratees] : [identity]);
11
12
  orders = (isArray(orders) ? orders : orders !== undefined ? [orders] : []);
12
- if (isArray(collection)) {
13
- collection.forEach(function (item, index) {
14
- var criteria = iteratees.map(function (iteratee) { return createIteratee(iteratee)(item); });
15
- result.push({
16
- criteria: criteria,
17
- index: index,
18
- value: item
19
- });
13
+ var index = -1;
14
+ forEach(collection, function (item) {
15
+ var criteria = iteratees.map(function (iteratee) { return createIteratee(iteratee)(item); });
16
+ result.push({
17
+ criteria: criteria,
18
+ index: ++index,
19
+ value: item
20
20
  });
21
- }
21
+ });
22
22
  return result.sort(function (a, b) { return compare.compareMultiple(a, b, orders); }).map(function (item) { return item.value; });
23
23
  }
24
24
 
package/lib/partition.js CHANGED
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
3
5
  var createIteratee = require('./internals/createIteratee.js');
4
- var isArray = require('./isArray.js');
5
6
 
6
7
  function partition(collection, predicate) {
8
+ if (predicate === void 0) { predicate = identity; }
7
9
  var result = [[], []];
8
- if (isArray(collection)) {
9
- var internalIteratee_1 = createIteratee(predicate);
10
- collection.forEach(function (item) {
11
- result[internalIteratee_1(item) ? 0 : 1].push(item);
12
- });
13
- }
10
+ var internalIteratee = createIteratee(predicate);
11
+ forEach(collection, function (item) {
12
+ result[internalIteratee(item) ? 0 : 1].push(item);
13
+ });
14
14
  return result;
15
15
  }
16
16
 
package/lib/range.js ADDED
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var native = require('./internals/native.js');
4
+ var isNil = require('./isNil.js');
5
+ var toFinite = require('./toFinite.js');
6
+
7
+ function range(start, end, step) {
8
+ start = toFinite(start);
9
+ if (isNil(end)) {
10
+ end = start;
11
+ start = 0;
12
+ }
13
+ else {
14
+ end = toFinite(end);
15
+ }
16
+ step = toFinite(step);
17
+ if (!step) {
18
+ step = start < end ? 1 : -1;
19
+ }
20
+ var index = -1;
21
+ var length = native.mathMax(native.mathCeil((end - start) / step), 0);
22
+ var result = Array(length);
23
+ while (length--) {
24
+ result[++index] = start;
25
+ start += step;
26
+ }
27
+ return result;
28
+ }
29
+
30
+ module.exports = range;
package/lib/reduce.js ADDED
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var createReduce = require('./internals/createReduce.js');
4
+
5
+ var reduce = createReduce(1);
6
+ var reduce$1 = reduce;
7
+
8
+ module.exports = reduce$1;
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var createReduce = require('./internals/createReduce.js');
4
+
5
+ var reduceRight = createReduce(-1);
6
+ var reduceRight$1 = reduceRight;
7
+
8
+ module.exports = reduceRight$1;
package/lib/some.js ADDED
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var forEach = require('./forEach.js');
4
+ var identity = require('./identity.js');
5
+
6
+ function some(collection, predicate) {
7
+ if (predicate === void 0) { predicate = identity; }
8
+ var result = false;
9
+ forEach(collection, function (item, index, arr) {
10
+ if (predicate(item, index, arr)) {
11
+ result = true;
12
+ return false;
13
+ }
14
+ });
15
+ return result;
16
+ }
17
+
18
+ module.exports = some;
package/lib/toString.js CHANGED
@@ -11,7 +11,7 @@ function baseToString(value) {
11
11
  return value;
12
12
  }
13
13
  if (isArray(value)) {
14
- return "".concat(value.map(baseToString));
14
+ return '' + value.map(baseToString);
15
15
  }
16
16
  if (isSymbol(value)) {
17
17
  return symbolToString ? symbolToString.call(value) : '';
package/lib/uniq.js CHANGED
@@ -3,25 +3,17 @@
3
3
  var eq = require('./eq.js');
4
4
  var createIteratee = require('./internals/createIteratee.js');
5
5
  var isArray = require('./isArray.js');
6
- var isUndefined = require('./isUndefined.js');
7
6
 
8
7
  function uniq(array, iteratee, strickCheck) {
9
8
  if (strickCheck === void 0) { strickCheck = false; }
10
9
  if (!isArray(array)) {
11
10
  return [];
12
11
  }
13
- if (isUndefined(iteratee)) {
14
- return array.filter(function (value, index, arr) {
15
- return arr.findIndex(function (item) { return eq(item, value, strickCheck); }) === index;
16
- });
17
- }
18
- else {
19
- var internalIteratee_1 = createIteratee(iteratee);
20
- return array.filter(function (value, index, arr) {
21
- var current = internalIteratee_1(value);
22
- return arr.findIndex(function (item) { return eq(internalIteratee_1(item), current, strickCheck); }) === index;
23
- });
24
- }
12
+ var internalIteratee = createIteratee(iteratee);
13
+ return array.filter(function (value, index, arr) {
14
+ var current = internalIteratee(value);
15
+ return arr.findIndex(function (item) { return eq(internalIteratee(item), current, strickCheck); }) === index;
16
+ });
25
17
  }
26
18
 
27
19
  module.exports = uniq;
package/lib/xor.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var difference = require('./difference.js');
4
+ var identity = require('./identity.js');
4
5
  var createIteratee = require('./internals/createIteratee.js');
5
6
  var intersection = require('./intersection.js');
6
7
  var isArray = require('./isArray.js');
@@ -9,6 +10,7 @@ var uniq = require('./uniq.js');
9
10
 
10
11
  function xor(array, other, iteratee, strickCheck) {
11
12
  if (other === void 0) { other = []; }
13
+ if (iteratee === void 0) { iteratee = identity; }
12
14
  if (strickCheck === void 0) { strickCheck = false; }
13
15
  if (!isArray(array) && !isArray(other)) {
14
16
  return [];