ut2 1.16.0 → 1.18.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.
- package/README.md +2 -0
- package/dist/ut2.js +74 -24
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/equalArrayLike.js +19 -0
- package/es/index.js +2 -0
- package/es/internals/helpers.js +2 -2
- package/es/internals/isEqualDeep.js +1 -1
- package/es/internals/native.js +24 -23
- package/es/memoize.js +36 -0
- package/lib/equalArrayLike.js +21 -0
- package/lib/index.js +4 -0
- package/lib/internals/helpers.js +1 -1
- package/lib/internals/native.js +24 -23
- package/lib/memoize.js +38 -0
- package/package.json +24 -25
- package/types/equalArrayLike.d.ts +37 -0
- package/types/index.d.ts +2 -0
- package/types/internals/native.d.ts +22 -22
- package/types/memoize.d.ts +50 -0
- package/types/uniqueId.d.ts +5 -1
package/README.md
CHANGED
|
@@ -94,6 +94,7 @@ const debounced = debounce(() => {
|
|
|
94
94
|
- [curry](https://caijf.github.io/ut2/module-Function.html#.curry) - 柯里化函数。
|
|
95
95
|
- [debounce](https://caijf.github.io/ut2/module-Function.html#.debounce) - 防抖函数。
|
|
96
96
|
- [delay](https://caijf.github.io/ut2/module-Function.html#.delay) - 延迟触发。
|
|
97
|
+
- [memoize](https://caijf.github.io/ut2/module-Function.html#.memoize) - 缓存函数结果。
|
|
97
98
|
- [negate](https://caijf.github.io/ut2/module-Function.html#.negate) - 否定断言。
|
|
98
99
|
- [once](https://caijf.github.io/ut2/module-Function.html#.once) - 只执行一次。
|
|
99
100
|
- [partial](https://caijf.github.io/ut2/module-Function.html#.partial) - 预设部分参数。
|
|
@@ -189,6 +190,7 @@ const debounced = debounce(() => {
|
|
|
189
190
|
- [constant](https://caijf.github.io/ut2/module-Util.html#.constant) - 返回自身的函数。
|
|
190
191
|
- [defaultTo](https://caijf.github.io/ut2/module-Util.html#.defaultTo) - 默认值。
|
|
191
192
|
- [eq](https://caijf.github.io/ut2/module-Util.html#.eq) - 等于。
|
|
193
|
+
- [equalArrayLike](https://caijf.github.io/ut2/module-Util.html#.equalArrayLike) - 比较类数组。
|
|
192
194
|
- [gt](https://caijf.github.io/ut2/module-Util.html#.gt) - 大于。
|
|
193
195
|
- [gte](https://caijf.github.io/ut2/module-Util.html#.gte) - 大于等于。
|
|
194
196
|
- [guard](https://caijf.github.io/ut2/module-Util.html#.guard) - 函数守卫。
|
package/dist/ut2.js
CHANGED
|
@@ -35,29 +35,30 @@
|
|
|
35
35
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
36
36
|
var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;
|
|
37
37
|
var MAX_ARRAY_LENGTH = 4294967295;
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
var
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
var
|
|
50
|
-
var
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
var
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
38
|
+
var tagPrefix = '[object ';
|
|
39
|
+
var bigIntTag = tagPrefix + 'BigInt]';
|
|
40
|
+
var numberTag = tagPrefix + 'Number]';
|
|
41
|
+
var booleanTag = tagPrefix + 'Boolean]';
|
|
42
|
+
var stringTag = tagPrefix + 'String]';
|
|
43
|
+
var dateTag = tagPrefix + 'Date]';
|
|
44
|
+
var regExpTag = tagPrefix + 'RegExp]';
|
|
45
|
+
var symbolTag = tagPrefix + 'Symbol]';
|
|
46
|
+
var errorTag = tagPrefix + 'Error]';
|
|
47
|
+
var arrayBufferTag = tagPrefix + 'ArrayBuffer]';
|
|
48
|
+
var argumentsTag = tagPrefix + 'Arguments]';
|
|
49
|
+
var arrayTag = tagPrefix + 'Array]';
|
|
50
|
+
var functionTags = ['Function', 'AsyncFunction', 'GeneratorFunction', 'Proxy'].map(function (item) { return tagPrefix + item + ']'; });
|
|
51
|
+
var weakSetTag = tagPrefix + 'WeakSet]';
|
|
52
|
+
var blobTag = tagPrefix + 'Blob]';
|
|
53
|
+
var fileTag = tagPrefix + 'File]';
|
|
54
|
+
var domExceptionTag = tagPrefix + 'DOMException]';
|
|
55
|
+
var objectTag = tagPrefix + 'Object]';
|
|
56
|
+
var dataViewTag = tagPrefix + 'DataView]';
|
|
57
|
+
var mapTag = tagPrefix + 'Map]';
|
|
58
|
+
var promiseTag = tagPrefix + 'Promise]';
|
|
59
|
+
var setTag = tagPrefix + 'Set]';
|
|
60
|
+
var weakMapTag = tagPrefix + 'WeakMap]';
|
|
61
|
+
var windowTag = tagPrefix + 'Window]';
|
|
61
62
|
|
|
62
63
|
function isArray(value) {
|
|
63
64
|
return Array.isArray(value);
|
|
@@ -606,7 +607,7 @@
|
|
|
606
607
|
return value == null || value !== value ? defaultValue : value;
|
|
607
608
|
};
|
|
608
609
|
|
|
609
|
-
var VERSION = "1.
|
|
610
|
+
var VERSION = "1.18.0";
|
|
610
611
|
var isBrowser = typeof window !== stringUndefined && isObjectLike(window) && typeof document !== stringUndefined && isObjectLike(document) && window.document === document;
|
|
611
612
|
var supportedArgumentsType = getTag((function () { return arguments; })()) === argumentsTag;
|
|
612
613
|
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
@@ -783,6 +784,53 @@
|
|
|
783
784
|
}, wait);
|
|
784
785
|
}
|
|
785
786
|
|
|
787
|
+
function equalArrayLike(arg1, arg2, strictCheck) {
|
|
788
|
+
if (strictCheck === void 0) { strictCheck = true; }
|
|
789
|
+
if (eq(arg1, arg2, strictCheck))
|
|
790
|
+
return true;
|
|
791
|
+
if (!isArrayLike(arg1) || !isArrayLike(arg2))
|
|
792
|
+
return false;
|
|
793
|
+
if (arg1.length !== arg2.length)
|
|
794
|
+
return false;
|
|
795
|
+
for (var i = 0; i < arg1.length; i++) {
|
|
796
|
+
if (!eq(arg1[i], arg2[i], strictCheck))
|
|
797
|
+
return false;
|
|
798
|
+
}
|
|
799
|
+
return true;
|
|
800
|
+
}
|
|
801
|
+
|
|
802
|
+
function memoize(func, options) {
|
|
803
|
+
var opts = options || {};
|
|
804
|
+
var max = mathCeil(opts.max || 0);
|
|
805
|
+
var isEqual = typeof opts.isEqual === 'function' ? opts.isEqual : equalArrayLike;
|
|
806
|
+
var cache = [];
|
|
807
|
+
function memoized() {
|
|
808
|
+
var _this = this;
|
|
809
|
+
var newArgs = [];
|
|
810
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
811
|
+
newArgs[_i] = arguments[_i];
|
|
812
|
+
}
|
|
813
|
+
var cacheValue = cache.find(function (item) { return item.lastThis === _this && isEqual(item.lastArgs, newArgs); });
|
|
814
|
+
if (cacheValue) {
|
|
815
|
+
return cacheValue.lastReturn;
|
|
816
|
+
}
|
|
817
|
+
var lastReturn = func.apply(this, newArgs);
|
|
818
|
+
if (max > 0 && cache.length >= max) {
|
|
819
|
+
cache.shift();
|
|
820
|
+
}
|
|
821
|
+
cache.push({
|
|
822
|
+
lastArgs: newArgs,
|
|
823
|
+
lastThis: this,
|
|
824
|
+
lastReturn: lastReturn
|
|
825
|
+
});
|
|
826
|
+
return lastReturn;
|
|
827
|
+
}
|
|
828
|
+
memoized.clear = function () {
|
|
829
|
+
cache.length = 0;
|
|
830
|
+
};
|
|
831
|
+
return memoized;
|
|
832
|
+
}
|
|
833
|
+
|
|
786
834
|
function negate(predicate) {
|
|
787
835
|
var _this = this;
|
|
788
836
|
if (typeof predicate !== 'function') {
|
|
@@ -2154,6 +2202,7 @@
|
|
|
2154
2202
|
exports.delay = delay;
|
|
2155
2203
|
exports.difference = difference;
|
|
2156
2204
|
exports.eq = eq;
|
|
2205
|
+
exports.equalArrayLike = equalArrayLike;
|
|
2157
2206
|
exports.escape = escape;
|
|
2158
2207
|
exports.escapeRegExp = escapeRegExp;
|
|
2159
2208
|
exports.every = every;
|
|
@@ -2226,6 +2275,7 @@
|
|
|
2226
2275
|
exports.lte = lte;
|
|
2227
2276
|
exports.map = map;
|
|
2228
2277
|
exports.max = max;
|
|
2278
|
+
exports.memoize = memoize;
|
|
2229
2279
|
exports.merge = merge;
|
|
2230
2280
|
exports.mergeObject = mergeObject;
|
|
2231
2281
|
exports.min = min;
|