ut2 1.7.2 → 1.8.1
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.
- package/README.md +6 -2
- package/dist/ut2.js +127 -64
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/before.js +2 -1
- package/es/clamp.js +7 -6
- package/es/conforms.js +4 -3
- package/es/conformsTo.js +2 -1
- package/es/curry.js +32 -0
- package/es/index.js +4 -0
- package/es/internals/baseDebounce.js +15 -14
- package/es/internals/createExtremum.js +2 -1
- package/es/internals/getTagWithBugfix.js +7 -7
- package/es/internals/helpers.js +3 -2
- package/es/internals/isEqualDeep.js +4 -4
- package/es/internals/native.js +10 -6
- package/es/internals/nodeUtil.js +4 -2
- package/es/invert.js +22 -0
- package/es/isBigInt.js +8 -0
- package/es/isBlob.js +2 -2
- package/es/isEqual.js +2 -1
- package/es/isMatch.js +5 -5
- package/es/isUndefined.js +3 -1
- package/es/merge.js +4 -3
- package/es/nth.js +2 -1
- package/es/omit.js +4 -3
- package/es/orderBy.js +3 -2
- package/es/partial.js +1 -1
- package/es/pascalCase.js +11 -0
- package/es/pick.js +4 -3
- package/es/toString.js +2 -2
- package/lib/before.js +2 -1
- package/lib/clamp.js +7 -6
- package/lib/conforms.js +4 -3
- package/lib/conformsTo.js +2 -1
- package/lib/curry.js +34 -0
- package/lib/index.js +8 -0
- package/lib/internals/baseDebounce.js +15 -14
- package/lib/internals/createExtremum.js +2 -1
- package/lib/internals/getTagWithBugfix.js +6 -6
- package/lib/internals/helpers.js +2 -1
- package/lib/internals/isEqualDeep.js +3 -3
- package/lib/internals/native.js +9 -5
- package/lib/internals/nodeUtil.js +4 -2
- package/lib/invert.js +24 -0
- package/lib/isBigInt.js +10 -0
- package/lib/isBlob.js +1 -1
- package/lib/isEqual.js +2 -1
- package/lib/isMatch.js +4 -4
- package/lib/isUndefined.js +3 -1
- package/lib/merge.js +4 -3
- package/lib/nth.js +2 -1
- package/lib/omit.js +4 -3
- package/lib/orderBy.js +3 -2
- package/lib/partial.js +1 -1
- package/lib/pascalCase.js +13 -0
- package/lib/pick.js +4 -3
- package/lib/toString.js +1 -1
- package/package.json +1 -1
- package/types/allKeys.d.ts +1 -1
- package/types/allKeysIn.d.ts +1 -1
- package/types/conforms.d.ts +7 -2
- package/types/conformsTo.d.ts +3 -3
- package/types/curry.d.ts +123 -0
- package/types/delay.d.ts +1 -1
- package/types/index.d.ts +4 -0
- package/types/internals/compare.d.ts +4 -4
- package/types/internals/helpers.d.ts +1 -0
- package/types/internals/native.d.ts +4 -0
- package/types/internals/types.d.ts +2 -0
- package/types/invert.d.ts +19 -0
- package/types/isBigInt.d.ts +22 -0
- package/types/keys.d.ts +1 -1
- package/types/keysIn.d.ts +1 -1
- package/types/omit.d.ts +6 -1
- package/types/omitBy.d.ts +3 -2
- package/types/orderBy.d.ts +3 -3
- package/types/partial.d.ts +5 -5
- package/types/pascalCase.d.ts +27 -0
- package/types/pick.d.ts +6 -1
- package/types/pickBy.d.ts +3 -2
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
**与其他工具库对比([`lodash`]、[`underscore`])**
|
|
10
10
|
|
|
11
|
-
-
|
|
11
|
+
- 大部分是基于 ES2015+ 标准实现的纯函数,没有过多的包装嵌套。
|
|
12
12
|
- 使用 TypeScript 实现,提供类型定义。
|
|
13
13
|
- 导出 `es`、`cjs`、`umd` 模块格式,支持不同开发环境使用。
|
|
14
14
|
|
|
@@ -91,6 +91,7 @@ const debounced = debounce(() => {
|
|
|
91
91
|
- [Function](https://caijf.github.io/ut2/module-Function.html) 函数
|
|
92
92
|
- [after](https://caijf.github.io/ut2/module-Function.html#.after) - 调用 `n` 或更多次之后触发。
|
|
93
93
|
- [before](https://caijf.github.io/ut2/module-Function.html#.before) - 调用次数少于 `n` 次之前触发。
|
|
94
|
+
- [curry](https://caijf.github.io/ut2/module-Function.html#.curry) - 柯里化函数。
|
|
94
95
|
- [debounce](https://caijf.github.io/ut2/module-Function.html#.debounce) - 防抖函数。
|
|
95
96
|
- [delay](https://caijf.github.io/ut2/module-Function.html#.delay) - 延迟触发。
|
|
96
97
|
- [negate](https://caijf.github.io/ut2/module-Function.html#.negate) - 否定断言。
|
|
@@ -103,6 +104,7 @@ const debounced = debounce(() => {
|
|
|
103
104
|
- [isArrayBuffer](https://caijf.github.io/ut2/module-Language.html#.isArrayBuffer) - `ArrayBuffer` 对象。
|
|
104
105
|
- [isArrayLike](https://caijf.github.io/ut2/module-Language.html#.isArrayLike) - 类数组。
|
|
105
106
|
- [isArrayLikeObject](https://caijf.github.io/ut2/module-Language.html#.isArrayLikeObject) - 类数组对象。
|
|
107
|
+
- [isBigInt](https://caijf.github.io/ut2/module-Language.html#.isBigInt) - `bigint` 类型或对象。
|
|
106
108
|
- [isBlob](https://caijf.github.io/ut2/module-Language.html#.isBlob) - `Blob` 对象。
|
|
107
109
|
- [isBoolean](https://caijf.github.io/ut2/module-Language.html#.isBoolean) - 布尔类型或对象。
|
|
108
110
|
- [isBuffer](https://caijf.github.io/ut2/module-Language.html#.isBuffer) - `Buffer` 对象。
|
|
@@ -149,6 +151,7 @@ const debounced = debounce(() => {
|
|
|
149
151
|
- [Object](https://caijf.github.io/ut2/module-Object.html) 对象
|
|
150
152
|
- [allKeys](https://caijf.github.io/ut2/module-Object.html#.allKeys) - 对象自身的可枚举属性(包含 `Symbol` 属性)。
|
|
151
153
|
- [allKeysIn](https://caijf.github.io/ut2/module-Object.html#.allKeysIn) - 对象自身及继承的可枚举属性(包含 `Symbol` 属性)。
|
|
154
|
+
- [invert](https://caijf.github.io/ut2/module-Object.html#.invert) - 对象自身的可枚举属性(不包含 `Symbol` 属性)和值反转。
|
|
152
155
|
- [keys](https://caijf.github.io/ut2/module-Object.html#.keys) - 对象自身的可枚举属性(不包含 `Symbol` 属性)。
|
|
153
156
|
- [keysIn](https://caijf.github.io/ut2/module-Object.html#.keysIn) - 对象自身及继承的可枚举属性(不包含 `Symbol` 属性)。
|
|
154
157
|
- [merge](https://caijf.github.io/ut2/module-Object.html#.merge) - 递归对象或数组进行合并。
|
|
@@ -164,7 +167,8 @@ const debounced = debounce(() => {
|
|
|
164
167
|
- [kebabCase](https://caijf.github.io/ut2/module-String.html#.kebabCase) - 连接符分隔小写。
|
|
165
168
|
- [lowerCase](https://caijf.github.io/ut2/module-String.html#.lowerCase) - 空格分隔小写。
|
|
166
169
|
- [lowerFirst](https://caijf.github.io/ut2/module-String.html#.lowerFirst) - 首字母小写。
|
|
167
|
-
- [
|
|
170
|
+
- [pascalCase](https://caijf.github.io/ut2/module-String.html#.pascalCase) - 帕斯卡小写。又名大驼峰。
|
|
171
|
+
- [snakeCase](https://caijf.github.io/ut2/module-String.html#.snakeCase) - 下划线分隔小写。
|
|
168
172
|
- [unescape](https://caijf.github.io/ut2/module-String.html#.unescape) - 转义字符串中的 HTML 实体字符 `&` `<` `"` `'`。
|
|
169
173
|
- [upperCase](https://caijf.github.io/ut2/module-String.html#.upperCase) - 空格分隔大写。
|
|
170
174
|
- [upperFirst](https://caijf.github.io/ut2/module-String.html#.upperFirst) - 首字母大写。
|
package/dist/ut2.js
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ut2 = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
+
var nativeUndefined = void 0;
|
|
8
|
+
var stringUndefined = 'undefined';
|
|
9
|
+
var stringObject = 'object';
|
|
7
10
|
var objectProto = Object.prototype;
|
|
8
11
|
var objectProtoToString = objectProto.toString;
|
|
9
12
|
var objectProtoHasOwnProperty = objectProto.hasOwnProperty;
|
|
@@ -13,8 +16,8 @@
|
|
|
13
16
|
var objectKeys = Object.keys;
|
|
14
17
|
var functionProto = Function.prototype;
|
|
15
18
|
var functionProtoToString = functionProto.toString;
|
|
16
|
-
var symbolExisted = typeof Symbol !==
|
|
17
|
-
var symbolProto = symbolExisted ? Symbol.prototype :
|
|
19
|
+
var symbolExisted = typeof Symbol !== stringUndefined;
|
|
20
|
+
var symbolProto = symbolExisted ? Symbol.prototype : nativeUndefined;
|
|
18
21
|
var arrayProto = Array.prototype;
|
|
19
22
|
var arrayProtoSlice = arrayProto.slice;
|
|
20
23
|
var mathMin = Math.min;
|
|
@@ -26,12 +29,13 @@
|
|
|
26
29
|
var numberIsFinite = Number.isFinite;
|
|
27
30
|
var numberIsInteger = Number.isInteger;
|
|
28
31
|
var numberIsSafeInteger = Number.isSafeInteger;
|
|
29
|
-
var globalThisExisted = typeof globalThis ===
|
|
30
|
-
var globalExisted = typeof global ===
|
|
31
|
-
var selfExisted = typeof self ===
|
|
32
|
+
var globalThisExisted = typeof globalThis === stringObject && globalThis;
|
|
33
|
+
var globalExisted = typeof global === stringObject && global;
|
|
34
|
+
var selfExisted = typeof self === stringObject && self;
|
|
32
35
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
33
36
|
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
|
|
34
37
|
var MAX_ARRAY_LENGTH = 4294967295;
|
|
38
|
+
var bigIntTag = '[object BigInt]';
|
|
35
39
|
var numberTag = '[object Number]';
|
|
36
40
|
var booleanTag = '[object Boolean]';
|
|
37
41
|
var stringTag = '[object String]';
|
|
@@ -224,7 +228,7 @@
|
|
|
224
228
|
function nth(array, n) {
|
|
225
229
|
if (n === void 0) { n = 0; }
|
|
226
230
|
if (!isArrayLike(array)) {
|
|
227
|
-
return
|
|
231
|
+
return nativeUndefined;
|
|
228
232
|
}
|
|
229
233
|
n += n < 0 ? array.length : 0;
|
|
230
234
|
return array[n];
|
|
@@ -459,7 +463,7 @@
|
|
|
459
463
|
return value == null;
|
|
460
464
|
}
|
|
461
465
|
|
|
462
|
-
var symbolToString = symbolProto ? symbolProto.toString :
|
|
466
|
+
var symbolToString = symbolProto ? symbolProto.toString : nativeUndefined;
|
|
463
467
|
function baseToString(value) {
|
|
464
468
|
if (typeof value === 'string') {
|
|
465
469
|
return value;
|
|
@@ -521,8 +525,8 @@
|
|
|
521
525
|
|
|
522
526
|
var orderBy = function (collection, iteratees, orders) {
|
|
523
527
|
var result = [];
|
|
524
|
-
iteratees = (isArray(iteratees) ? iteratees : iteratees !==
|
|
525
|
-
orders = (isArray(orders) ? orders : orders !==
|
|
528
|
+
iteratees = (isArray(iteratees) ? iteratees : iteratees !== nativeUndefined ? [iteratees] : [identity]);
|
|
529
|
+
orders = (isArray(orders) ? orders : orders !== nativeUndefined ? [orders] : []);
|
|
526
530
|
var index = -1;
|
|
527
531
|
forEach(collection, function (item) {
|
|
528
532
|
var criteria = iteratees.map(function (iteratee) { return createIteratee(iteratee)(item); });
|
|
@@ -598,7 +602,7 @@
|
|
|
598
602
|
return value == null || value !== value ? defaultValue : value;
|
|
599
603
|
};
|
|
600
604
|
|
|
601
|
-
var VERSION = "1.
|
|
605
|
+
var VERSION = "1.8.1";
|
|
602
606
|
var supportedArgumentsType = getTag((function () { return arguments; })()) === argumentsTag;
|
|
603
607
|
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
604
608
|
function toSource(func) {
|
|
@@ -617,6 +621,7 @@
|
|
|
617
621
|
return '';
|
|
618
622
|
}
|
|
619
623
|
var stubFlase = function () { return false; };
|
|
624
|
+
var stubTrue = function () { return true; };
|
|
620
625
|
|
|
621
626
|
function after(n, func) {
|
|
622
627
|
if (typeof func !== 'function') {
|
|
@@ -641,12 +646,42 @@
|
|
|
641
646
|
result = func.apply(this, arguments);
|
|
642
647
|
}
|
|
643
648
|
if (n <= 1) {
|
|
644
|
-
func =
|
|
649
|
+
func = nativeUndefined;
|
|
645
650
|
}
|
|
646
651
|
return result;
|
|
647
652
|
};
|
|
648
653
|
}
|
|
649
654
|
|
|
655
|
+
function isUndefined(value) {
|
|
656
|
+
return value === nativeUndefined;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
var PLACEHOLDER$1 = {
|
|
660
|
+
__ut2_curry_ph__: null
|
|
661
|
+
};
|
|
662
|
+
var curry = function (func, arity) {
|
|
663
|
+
arity = isUndefined(arity) ? func.length : mathMax(toInteger(arity), 0);
|
|
664
|
+
function wrap() {
|
|
665
|
+
var args = arrayProtoSlice.call(arguments);
|
|
666
|
+
var context = this;
|
|
667
|
+
function inner() {
|
|
668
|
+
var argsInner = arrayProtoSlice.call(arguments);
|
|
669
|
+
for (var i = 0; i < args.length; i++) {
|
|
670
|
+
args[i] = args[i] === PLACEHOLDER$1 && argsInner.length > 0 ? argsInner.shift() : args[i];
|
|
671
|
+
}
|
|
672
|
+
args = args.concat(argsInner);
|
|
673
|
+
var realArgsLength = args.filter(function (arg) { return arg !== PLACEHOLDER$1; }).length;
|
|
674
|
+
if (realArgsLength >= arity) {
|
|
675
|
+
return func.apply(context, args);
|
|
676
|
+
}
|
|
677
|
+
return inner;
|
|
678
|
+
}
|
|
679
|
+
return inner();
|
|
680
|
+
}
|
|
681
|
+
return wrap;
|
|
682
|
+
};
|
|
683
|
+
curry.placeholder = curry._ = PLACEHOLDER$1;
|
|
684
|
+
|
|
650
685
|
function baseDebounce(func, wait, immediate, __throttle__) {
|
|
651
686
|
if (__throttle__ === void 0) { __throttle__ = false; }
|
|
652
687
|
if (typeof func !== 'function') {
|
|
@@ -655,7 +690,7 @@
|
|
|
655
690
|
var timer, lastCallTime, lastInvokeTime, lastArgs, lastThis, result;
|
|
656
691
|
wait = defaultTo(toNumber(wait), 0);
|
|
657
692
|
function shouldInvoke(time) {
|
|
658
|
-
if (lastCallTime ===
|
|
693
|
+
if (lastCallTime === nativeUndefined) {
|
|
659
694
|
return true;
|
|
660
695
|
}
|
|
661
696
|
var timeSinceLastCall = time - lastCallTime;
|
|
@@ -665,7 +700,7 @@
|
|
|
665
700
|
function invokeFunc(time) {
|
|
666
701
|
lastInvokeTime = time;
|
|
667
702
|
result = func.apply(lastThis, lastArgs);
|
|
668
|
-
lastThis = lastArgs =
|
|
703
|
+
lastThis = lastArgs = nativeUndefined;
|
|
669
704
|
return result;
|
|
670
705
|
}
|
|
671
706
|
function debounced() {
|
|
@@ -677,36 +712,36 @@
|
|
|
677
712
|
lastArgs = args;
|
|
678
713
|
var time = Date.now();
|
|
679
714
|
var isInvoke = shouldInvoke(time);
|
|
680
|
-
var waitTime = !__throttle__ ? wait : !isInvoke && lastCallTime !==
|
|
715
|
+
var waitTime = !__throttle__ ? wait : !isInvoke && lastCallTime !== nativeUndefined && timer === nativeUndefined ? wait - (time - lastCallTime) : wait;
|
|
681
716
|
lastCallTime = time;
|
|
682
717
|
if (isInvoke) {
|
|
683
|
-
if (immediate && timer ===
|
|
718
|
+
if (immediate && timer === nativeUndefined) {
|
|
684
719
|
return invokeFunc(time);
|
|
685
720
|
}
|
|
686
721
|
}
|
|
687
|
-
if (timer !==
|
|
722
|
+
if (timer !== nativeUndefined && !__throttle__) {
|
|
688
723
|
clearTimeout(timer);
|
|
689
|
-
timer =
|
|
724
|
+
timer = nativeUndefined;
|
|
690
725
|
}
|
|
691
|
-
if (timer ===
|
|
726
|
+
if (timer === nativeUndefined) {
|
|
692
727
|
timer = setTimeout(function () {
|
|
693
|
-
timer =
|
|
728
|
+
timer = nativeUndefined;
|
|
694
729
|
invokeFunc(Date.now());
|
|
695
730
|
}, waitTime);
|
|
696
731
|
}
|
|
697
732
|
return result;
|
|
698
733
|
}
|
|
699
734
|
function cancel() {
|
|
700
|
-
if (timer !==
|
|
735
|
+
if (timer !== nativeUndefined) {
|
|
701
736
|
clearTimeout(timer);
|
|
702
|
-
timer =
|
|
737
|
+
timer = nativeUndefined;
|
|
703
738
|
}
|
|
704
|
-
lastCallTime = timer = lastArgs = lastThis =
|
|
739
|
+
lastCallTime = timer = lastArgs = lastThis = nativeUndefined;
|
|
705
740
|
}
|
|
706
741
|
function flush() {
|
|
707
|
-
if (timer !==
|
|
742
|
+
if (timer !== nativeUndefined) {
|
|
708
743
|
clearTimeout(timer);
|
|
709
|
-
timer =
|
|
744
|
+
timer = nativeUndefined;
|
|
710
745
|
if (lastArgs) {
|
|
711
746
|
return invokeFunc(Date.now());
|
|
712
747
|
}
|
|
@@ -714,7 +749,7 @@
|
|
|
714
749
|
return result;
|
|
715
750
|
}
|
|
716
751
|
function pending() {
|
|
717
|
-
return timer !==
|
|
752
|
+
return timer !== nativeUndefined;
|
|
718
753
|
}
|
|
719
754
|
debounced.cancel = cancel;
|
|
720
755
|
debounced.flush = flush;
|
|
@@ -762,7 +797,7 @@
|
|
|
762
797
|
}
|
|
763
798
|
|
|
764
799
|
var PLACEHOLDER = {
|
|
765
|
-
|
|
800
|
+
__ut2_partial_ph__: null
|
|
766
801
|
};
|
|
767
802
|
var partial = function (func) {
|
|
768
803
|
var argsOrig = arrayProtoSlice.call(arguments, 1);
|
|
@@ -790,8 +825,8 @@
|
|
|
790
825
|
return isObjectLike(value) && objectProtoHasOwnProperty.call(value, 'callee') && !objectProtoPropertyIsEnumerable.call(value, 'callee');
|
|
791
826
|
}
|
|
792
827
|
|
|
793
|
-
var freeExports = typeof exports ===
|
|
794
|
-
var freeModule = freeExports && typeof module ===
|
|
828
|
+
var freeExports = typeof exports === stringObject && exports && !exports.nodeType && exports;
|
|
829
|
+
var freeModule = freeExports && typeof module === stringObject && module && !module.nodeType && module;
|
|
795
830
|
var nodeUtil = (function () {
|
|
796
831
|
try {
|
|
797
832
|
var types = freeModule && freeModule.require && freeModule.require('util').types;
|
|
@@ -813,7 +848,11 @@
|
|
|
813
848
|
return nodeIsArrayBuffer ? nodeIsArrayBuffer(value) : getTag(value) === arrayBufferTag;
|
|
814
849
|
}
|
|
815
850
|
|
|
816
|
-
|
|
851
|
+
function isBigInt(value) {
|
|
852
|
+
return typeof value === 'bigint' || getTag(value) === bigIntTag;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
var blobExisted = typeof Blob !== stringUndefined;
|
|
817
856
|
function isBlob(value) {
|
|
818
857
|
if (blobExisted && value instanceof Blob) {
|
|
819
858
|
return true;
|
|
@@ -835,11 +874,11 @@
|
|
|
835
874
|
return false;
|
|
836
875
|
}
|
|
837
876
|
|
|
838
|
-
var dataViewExisted = typeof DataView !==
|
|
839
|
-
var mapExisted = typeof Map !==
|
|
840
|
-
var promiseExisted = typeof Promise !==
|
|
841
|
-
var setExisted = typeof Set !==
|
|
842
|
-
var weakMapExisted = typeof WeakMap !==
|
|
877
|
+
var dataViewExisted = typeof DataView !== stringUndefined;
|
|
878
|
+
var mapExisted = typeof Map !== stringUndefined;
|
|
879
|
+
var promiseExisted = typeof Promise !== stringUndefined;
|
|
880
|
+
var setExisted = typeof Set !== stringUndefined;
|
|
881
|
+
var weakMapExisted = typeof WeakMap !== stringUndefined;
|
|
843
882
|
var dataViewCtorString = toSource(DataView);
|
|
844
883
|
var mapCtorString = toSource(Map);
|
|
845
884
|
var promiseCtorString = toSource(Promise);
|
|
@@ -853,7 +892,7 @@
|
|
|
853
892
|
(weakMapExisted && getTag(new WeakMap()) !== weakMapTag)) {
|
|
854
893
|
getTagWithBugfix = function (value) {
|
|
855
894
|
var result = getTag(value);
|
|
856
|
-
var Ctor = result === objectTag ? value.constructor :
|
|
895
|
+
var Ctor = result === objectTag ? value.constructor : nativeUndefined;
|
|
857
896
|
var ctorString = Ctor ? toSource(Ctor) : '';
|
|
858
897
|
if (ctorString) {
|
|
859
898
|
switch (ctorString) {
|
|
@@ -963,7 +1002,7 @@
|
|
|
963
1002
|
return false;
|
|
964
1003
|
}
|
|
965
1004
|
|
|
966
|
-
var symbolValueOf = symbolProto ? symbolProto.valueOf :
|
|
1005
|
+
var symbolValueOf = symbolProto ? symbolProto.valueOf : nativeUndefined;
|
|
967
1006
|
function mapToArray(map) {
|
|
968
1007
|
var result = [];
|
|
969
1008
|
map.forEach(function (value, key) {
|
|
@@ -1076,7 +1115,7 @@
|
|
|
1076
1115
|
while (length--) {
|
|
1077
1116
|
if (hasCustomizer) {
|
|
1078
1117
|
var compared = customizer(value[length], other[length], length, value, other, valueStack, otherStack);
|
|
1079
|
-
if (compared !==
|
|
1118
|
+
if (compared !== nativeUndefined) {
|
|
1080
1119
|
if (!compared) {
|
|
1081
1120
|
return false;
|
|
1082
1121
|
}
|
|
@@ -1099,7 +1138,7 @@
|
|
|
1099
1138
|
var key = keys[length];
|
|
1100
1139
|
if (hasCustomizer) {
|
|
1101
1140
|
var compared = customizer(value[key], other[key], key, value, other, valueStack, otherStack);
|
|
1102
|
-
if (compared !==
|
|
1141
|
+
if (compared !== nativeUndefined) {
|
|
1103
1142
|
if (!compared) {
|
|
1104
1143
|
return false;
|
|
1105
1144
|
}
|
|
@@ -1133,7 +1172,7 @@
|
|
|
1133
1172
|
if (strictCheck === void 0) { strictCheck = false; }
|
|
1134
1173
|
if (typeof customizer === 'function') {
|
|
1135
1174
|
var result = customizer(value, other);
|
|
1136
|
-
if (result !==
|
|
1175
|
+
if (result !== nativeUndefined) {
|
|
1137
1176
|
return !!result;
|
|
1138
1177
|
}
|
|
1139
1178
|
}
|
|
@@ -1196,7 +1235,7 @@
|
|
|
1196
1235
|
}
|
|
1197
1236
|
if (hasCustomizer) {
|
|
1198
1237
|
var compared = customizer(object[key], source[key], key, object, source, objStack, srcStack);
|
|
1199
|
-
if (compared !==
|
|
1238
|
+
if (compared !== nativeUndefined) {
|
|
1200
1239
|
if (!compared) {
|
|
1201
1240
|
return false;
|
|
1202
1241
|
}
|
|
@@ -1214,7 +1253,7 @@
|
|
|
1214
1253
|
var result = isEqualDeep(object, source, function (objValue, srcValue, k, obj, src) {
|
|
1215
1254
|
if (hasCustomizer) {
|
|
1216
1255
|
var compared = customizer(objValue, srcValue, k, obj, src, objStack, srcStack);
|
|
1217
|
-
if (compared !==
|
|
1256
|
+
if (compared !== nativeUndefined) {
|
|
1218
1257
|
return compared;
|
|
1219
1258
|
}
|
|
1220
1259
|
}
|
|
@@ -1228,11 +1267,11 @@
|
|
|
1228
1267
|
if (strictCheck === void 0) { strictCheck = false; }
|
|
1229
1268
|
if (typeof customizer === 'function') {
|
|
1230
1269
|
var compared = customizer(object, source);
|
|
1231
|
-
if (compared !==
|
|
1270
|
+
if (compared !== nativeUndefined) {
|
|
1232
1271
|
return !!compared;
|
|
1233
1272
|
}
|
|
1234
1273
|
}
|
|
1235
|
-
return baseIsMatch(object, source, customizer, strictCheck,
|
|
1274
|
+
return baseIsMatch(object, source, customizer, strictCheck, nativeUndefined, nativeUndefined);
|
|
1236
1275
|
}
|
|
1237
1276
|
|
|
1238
1277
|
function isNumber(value) {
|
|
@@ -1267,10 +1306,6 @@
|
|
|
1267
1306
|
return typeof value === 'string' || getTag(value) === stringTag;
|
|
1268
1307
|
}
|
|
1269
1308
|
|
|
1270
|
-
function isUndefined(value) {
|
|
1271
|
-
return value === void 0;
|
|
1272
|
-
}
|
|
1273
|
-
|
|
1274
1309
|
function isWeakMap(value) {
|
|
1275
1310
|
return getTagWithBugfix$1(value) === weakMapTag;
|
|
1276
1311
|
}
|
|
@@ -1331,7 +1366,7 @@
|
|
|
1331
1366
|
var internalIteratee = createIteratee(iteratee);
|
|
1332
1367
|
array.forEach(function (value) {
|
|
1333
1368
|
var current = internalIteratee(value);
|
|
1334
|
-
if (current != null && (computed ===
|
|
1369
|
+
if (current != null && (computed === nativeUndefined ? current === current && !isSymbol(current) : comparator(current, computed))) {
|
|
1335
1370
|
computed = current;
|
|
1336
1371
|
result = value;
|
|
1337
1372
|
}
|
|
@@ -1352,22 +1387,22 @@
|
|
|
1352
1387
|
}
|
|
1353
1388
|
|
|
1354
1389
|
var clamp = function (number, lower, upper) {
|
|
1355
|
-
if (upper ===
|
|
1390
|
+
if (upper === nativeUndefined) {
|
|
1356
1391
|
upper = lower;
|
|
1357
|
-
lower =
|
|
1392
|
+
lower = nativeUndefined;
|
|
1358
1393
|
}
|
|
1359
|
-
if (upper !==
|
|
1394
|
+
if (upper !== nativeUndefined) {
|
|
1360
1395
|
upper = defaultTo(toNumber(upper), 0);
|
|
1361
1396
|
}
|
|
1362
|
-
if (lower !==
|
|
1397
|
+
if (lower !== nativeUndefined) {
|
|
1363
1398
|
lower = defaultTo(toNumber(lower), 0);
|
|
1364
1399
|
}
|
|
1365
1400
|
number = toNumber(number);
|
|
1366
1401
|
if (number === number) {
|
|
1367
|
-
if (upper !==
|
|
1402
|
+
if (upper !== nativeUndefined) {
|
|
1368
1403
|
number = number <= upper ? number : upper;
|
|
1369
1404
|
}
|
|
1370
|
-
if (lower !==
|
|
1405
|
+
if (lower !== nativeUndefined) {
|
|
1371
1406
|
number = number >= lower ? number : lower;
|
|
1372
1407
|
}
|
|
1373
1408
|
}
|
|
@@ -1421,6 +1456,23 @@
|
|
|
1421
1456
|
return getKeysIn(object).concat(getSymbolsIn(object));
|
|
1422
1457
|
}
|
|
1423
1458
|
|
|
1459
|
+
function invert(object, predicate) {
|
|
1460
|
+
if (predicate === void 0) { predicate = stubTrue; }
|
|
1461
|
+
var _keys = keys$1(object);
|
|
1462
|
+
var result = {};
|
|
1463
|
+
_keys.forEach(function (key) {
|
|
1464
|
+
var value = object[key];
|
|
1465
|
+
if (predicate(value, key)) {
|
|
1466
|
+
var valueStr = value != null && typeof value.toString != 'function' ? objectProtoToString.call(value) : value;
|
|
1467
|
+
result[valueStr] = key;
|
|
1468
|
+
}
|
|
1469
|
+
else {
|
|
1470
|
+
result[key] = value;
|
|
1471
|
+
}
|
|
1472
|
+
});
|
|
1473
|
+
return result;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1424
1476
|
function keysIn(object) {
|
|
1425
1477
|
if (!isObject(object)) {
|
|
1426
1478
|
return [];
|
|
@@ -1443,8 +1495,8 @@
|
|
|
1443
1495
|
obj[key] = srcValue;
|
|
1444
1496
|
}
|
|
1445
1497
|
else {
|
|
1446
|
-
var newValue = hasCustomizer ? customizer(obj[key], srcValue, key, obj, source) :
|
|
1447
|
-
if (newValue !==
|
|
1498
|
+
var newValue = hasCustomizer ? customizer(obj[key], srcValue, key, obj, source) : nativeUndefined;
|
|
1499
|
+
if (newValue !== nativeUndefined) {
|
|
1448
1500
|
obj[key] = newValue;
|
|
1449
1501
|
}
|
|
1450
1502
|
else {
|
|
@@ -1462,7 +1514,7 @@
|
|
|
1462
1514
|
if (newObjValue) {
|
|
1463
1515
|
obj[key] = baseMerge(newObjValue, srcValue, getKeys, customizer, stack);
|
|
1464
1516
|
}
|
|
1465
|
-
else if (srcValue !==
|
|
1517
|
+
else if (srcValue !== nativeUndefined || !(key in obj)) {
|
|
1466
1518
|
obj[key] = srcValue;
|
|
1467
1519
|
}
|
|
1468
1520
|
}
|
|
@@ -1482,7 +1534,7 @@
|
|
|
1482
1534
|
return isArray(value) ? value : [value];
|
|
1483
1535
|
}
|
|
1484
1536
|
|
|
1485
|
-
function
|
|
1537
|
+
var omit = function (object, fields) {
|
|
1486
1538
|
if (fields === void 0) { fields = []; }
|
|
1487
1539
|
var keys = allKeysIn(object);
|
|
1488
1540
|
var fieldArr = castArray(fields);
|
|
@@ -1493,7 +1545,7 @@
|
|
|
1493
1545
|
}
|
|
1494
1546
|
});
|
|
1495
1547
|
return result;
|
|
1496
|
-
}
|
|
1548
|
+
};
|
|
1497
1549
|
|
|
1498
1550
|
function pickBy(object, predicate) {
|
|
1499
1551
|
if (predicate === void 0) { predicate = stubFlase; }
|
|
@@ -1515,7 +1567,7 @@
|
|
|
1515
1567
|
return pickBy(object, negate(predicate));
|
|
1516
1568
|
}
|
|
1517
1569
|
|
|
1518
|
-
function
|
|
1570
|
+
var pick = function (object, fields) {
|
|
1519
1571
|
if (fields === void 0) { fields = []; }
|
|
1520
1572
|
var result = {};
|
|
1521
1573
|
var fieldArr = castArray(fields);
|
|
@@ -1525,7 +1577,7 @@
|
|
|
1525
1577
|
}
|
|
1526
1578
|
});
|
|
1527
1579
|
return result;
|
|
1528
|
-
}
|
|
1580
|
+
};
|
|
1529
1581
|
|
|
1530
1582
|
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
|
|
1531
1583
|
function words(string, pattern) {
|
|
@@ -1596,6 +1648,13 @@
|
|
|
1596
1648
|
|
|
1597
1649
|
var lowerFirst = createCaseFirst('toLowerCase');
|
|
1598
1650
|
|
|
1651
|
+
function pascalCase(string, pattern) {
|
|
1652
|
+
return splitCaseWords(string, pattern).reduce(function (prev, cur) {
|
|
1653
|
+
cur = cur.toLowerCase();
|
|
1654
|
+
return prev + upperFirst(cur);
|
|
1655
|
+
}, '');
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1599
1658
|
function snakeCase(string, pattern) {
|
|
1600
1659
|
return splitCaseWords(string, pattern).reduce(function (prev, cur, index) { return prev + (index ? '_' : '') + cur.toLowerCase(); }, '');
|
|
1601
1660
|
}
|
|
@@ -1635,18 +1694,18 @@
|
|
|
1635
1694
|
var key = props[i];
|
|
1636
1695
|
var predicate = source[key];
|
|
1637
1696
|
var value = object[key];
|
|
1638
|
-
if ((value ===
|
|
1697
|
+
if ((value === nativeUndefined && !(key in object)) || !predicate(value)) {
|
|
1639
1698
|
return false;
|
|
1640
1699
|
}
|
|
1641
1700
|
}
|
|
1642
1701
|
return true;
|
|
1643
1702
|
};
|
|
1644
1703
|
|
|
1645
|
-
function
|
|
1704
|
+
var conforms = function (source) {
|
|
1646
1705
|
return function (object) {
|
|
1647
1706
|
return conformsTo(object, source);
|
|
1648
1707
|
};
|
|
1649
|
-
}
|
|
1708
|
+
};
|
|
1650
1709
|
|
|
1651
1710
|
function constant(value) {
|
|
1652
1711
|
return function () {
|
|
@@ -1761,6 +1820,7 @@
|
|
|
1761
1820
|
exports.conformsTo = conformsTo;
|
|
1762
1821
|
exports.constant = constant;
|
|
1763
1822
|
exports.countBy = countBy;
|
|
1823
|
+
exports.curry = curry;
|
|
1764
1824
|
exports.debounce = debounce;
|
|
1765
1825
|
exports.defaultTo = defaultTo;
|
|
1766
1826
|
exports.delay = delay;
|
|
@@ -1781,11 +1841,13 @@
|
|
|
1781
1841
|
exports.identity = identity;
|
|
1782
1842
|
exports.inRange = inRange;
|
|
1783
1843
|
exports.intersection = intersection;
|
|
1844
|
+
exports.invert = invert;
|
|
1784
1845
|
exports.isArguments = isArguments;
|
|
1785
1846
|
exports.isArray = isArray;
|
|
1786
1847
|
exports.isArrayBuffer = isArrayBuffer;
|
|
1787
1848
|
exports.isArrayLike = isArrayLike;
|
|
1788
1849
|
exports.isArrayLikeObject = isArrayLikeObject;
|
|
1850
|
+
exports.isBigInt = isBigInt;
|
|
1789
1851
|
exports.isBlob = isBlob;
|
|
1790
1852
|
exports.isBoolean = isBoolean;
|
|
1791
1853
|
exports.isBuffer = isBuffer;
|
|
@@ -1840,6 +1902,7 @@
|
|
|
1840
1902
|
exports.orderBy = orderBy;
|
|
1841
1903
|
exports.partial = partial;
|
|
1842
1904
|
exports.partition = partition;
|
|
1905
|
+
exports.pascalCase = pascalCase;
|
|
1843
1906
|
exports.pick = pick;
|
|
1844
1907
|
exports.pickBy = pickBy;
|
|
1845
1908
|
exports.random = random;
|