ut2 1.0.4 → 1.1.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 +6 -3
- package/dist/ut2.js +70 -98
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/allKeys.js +11 -0
- package/es/allKeysIn.js +12 -0
- package/es/debounce.js +2 -84
- package/es/index.js +3 -0
- package/es/internals/baseDebounce.js +86 -0
- package/es/internals/getSymbolsIn.js +3 -2
- package/es/internals/helpers.js +1 -1
- package/es/keysIn.js +11 -0
- package/es/omit.js +9 -7
- package/es/partial.js +1 -3
- package/es/pick.js +2 -3
- package/es/pickBy.js +6 -9
- package/es/throttle.js +1 -1
- package/es/union.js +1 -2
- package/lib/allKeys.js +13 -0
- package/lib/allKeysIn.js +14 -0
- package/lib/debounce.js +2 -87
- package/lib/index.js +7 -1
- package/lib/internals/baseDebounce.js +88 -0
- package/lib/internals/getSymbolsIn.js +3 -2
- package/lib/internals/helpers.js +1 -1
- package/lib/keysIn.js +13 -0
- package/lib/omit.js +9 -7
- package/lib/partial.js +1 -3
- package/lib/pick.js +2 -3
- package/lib/pickBy.js +6 -9
- package/lib/throttle.js +2 -2
- package/lib/union.js +1 -2
- package/package.json +10 -10
- package/types/allKeys.d.ts +24 -0
- package/types/allKeysIn.d.ts +24 -0
- package/types/debounce.d.ts +0 -6
- package/types/index.d.ts +3 -0
- package/types/internals/baseDebounce.d.ts +7 -0
- package/types/keysIn.d.ts +24 -0
package/README.md
CHANGED
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
**与其他工具库对比([`lodash`]、[`underscore`])**
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
- 使用 TypeScript
|
|
15
|
-
- 导出 `es
|
|
13
|
+
- 基于 ES2015+ 标准,无需原生支持的方法(`forEach`、`filter`、`Object.keys`、`Object.entries` ……)。
|
|
14
|
+
- 使用 TypeScript 实现,提供类型定义。
|
|
15
|
+
- 导出 `es`、`cjs`、`umd` 模块格式,支持不同开发环境使用。
|
|
16
16
|
|
|
17
17
|
## 使用
|
|
18
18
|
|
|
@@ -95,6 +95,9 @@ const debounced = debounce(() => {
|
|
|
95
95
|
- random - 随机小数。
|
|
96
96
|
- randomInt - 随机整数。
|
|
97
97
|
- Object 对象
|
|
98
|
+
- allKeys - 对象自身的可枚举属性(包含 `Symbol` 属性)。
|
|
99
|
+
- allKeysIn - 对象自身及继承的可枚举属性(包含 `Symbol` 属性)。
|
|
100
|
+
- keysIn - 对象自身及继承的可枚举属性(不包含 `Symbol` 属性)。
|
|
98
101
|
- merge - 递归对象或数组进行合并。
|
|
99
102
|
- omit - 排除部分属性。
|
|
100
103
|
- omitBy - 根据方法,排除部分属性。
|
package/dist/ut2.js
CHANGED
|
@@ -262,7 +262,7 @@
|
|
|
262
262
|
var numberIsSafeInteger = Number.isSafeInteger;
|
|
263
263
|
var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
264
264
|
var arrayAt = Array.prototype.at;
|
|
265
|
-
var VERSION = "1.0
|
|
265
|
+
var VERSION = "1.1.0";
|
|
266
266
|
|
|
267
267
|
function isFunction(value) {
|
|
268
268
|
if (!isObject(value)) {
|
|
@@ -336,61 +336,6 @@
|
|
|
336
336
|
return result;
|
|
337
337
|
}
|
|
338
338
|
|
|
339
|
-
/******************************************************************************
|
|
340
|
-
Copyright (c) Microsoft Corporation.
|
|
341
|
-
|
|
342
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
343
|
-
purpose with or without fee is hereby granted.
|
|
344
|
-
|
|
345
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
346
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
347
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
348
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
349
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
350
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
351
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
352
|
-
***************************************************************************** */
|
|
353
|
-
/* global Reflect, Promise */
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
var __assign = function() {
|
|
357
|
-
__assign = Object.assign || function __assign(t) {
|
|
358
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
359
|
-
s = arguments[i];
|
|
360
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
361
|
-
}
|
|
362
|
-
return t;
|
|
363
|
-
};
|
|
364
|
-
return __assign.apply(this, arguments);
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
function __read(o, n) {
|
|
368
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
369
|
-
if (!m) return o;
|
|
370
|
-
var i = m.call(o), r, ar = [], e;
|
|
371
|
-
try {
|
|
372
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
373
|
-
}
|
|
374
|
-
catch (error) { e = { error: error }; }
|
|
375
|
-
finally {
|
|
376
|
-
try {
|
|
377
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
378
|
-
}
|
|
379
|
-
finally { if (e) throw e.error; }
|
|
380
|
-
}
|
|
381
|
-
return ar;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
function __spreadArray(to, from, pack) {
|
|
385
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
386
|
-
if (ar || !(i in from)) {
|
|
387
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
388
|
-
ar[i] = from[i];
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
392
|
-
}
|
|
393
|
-
|
|
394
339
|
function uniq(array, iteratee) {
|
|
395
340
|
if (!isArray(array)) {
|
|
396
341
|
return [];
|
|
@@ -406,7 +351,7 @@
|
|
|
406
351
|
if (other === void 0) { other = []; }
|
|
407
352
|
array = isArray(array) ? array : [];
|
|
408
353
|
other = isArray(other) ? other : [];
|
|
409
|
-
return uniq(
|
|
354
|
+
return uniq(array.concat(other), iteratee);
|
|
410
355
|
}
|
|
411
356
|
|
|
412
357
|
function isArrayLikeObject(value) {
|
|
@@ -692,6 +637,7 @@
|
|
|
692
637
|
debounced.pending = pending;
|
|
693
638
|
return debounced;
|
|
694
639
|
}
|
|
640
|
+
|
|
695
641
|
function debounce(func, wait, immediate) {
|
|
696
642
|
if (wait === void 0) { wait = 0; }
|
|
697
643
|
if (immediate === void 0) { immediate = false; }
|
|
@@ -737,7 +683,7 @@
|
|
|
737
683
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
738
684
|
remainingArgs[_i] = arguments[_i];
|
|
739
685
|
}
|
|
740
|
-
return func.apply(this,
|
|
686
|
+
return func.apply(this, args.concat(remainingArgs));
|
|
741
687
|
};
|
|
742
688
|
}
|
|
743
689
|
|
|
@@ -894,6 +840,56 @@
|
|
|
894
840
|
return min + Math.random() * (max - min);
|
|
895
841
|
}
|
|
896
842
|
|
|
843
|
+
function getSymbols(object) {
|
|
844
|
+
if (!objectGetOwnPropertySymbols || object === null) {
|
|
845
|
+
return [];
|
|
846
|
+
}
|
|
847
|
+
return objectGetOwnPropertySymbols(object).filter(function (item) {
|
|
848
|
+
return propertyIsEnumerable.call(object, item);
|
|
849
|
+
});
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
function allKeys(object) {
|
|
853
|
+
if (!isObject(object)) {
|
|
854
|
+
return [];
|
|
855
|
+
}
|
|
856
|
+
return Object.keys(object).concat(getSymbols(object));
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
function getKeysIn(object) {
|
|
860
|
+
var result = [];
|
|
861
|
+
for (var key in object) {
|
|
862
|
+
result.push(key);
|
|
863
|
+
}
|
|
864
|
+
return result;
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
function getSymbolsIn(object) {
|
|
868
|
+
var result = [];
|
|
869
|
+
var o = Object(object);
|
|
870
|
+
while (o) {
|
|
871
|
+
getSymbols(o).forEach(function (item) {
|
|
872
|
+
result.push(item);
|
|
873
|
+
});
|
|
874
|
+
o = Object.getPrototypeOf(o);
|
|
875
|
+
}
|
|
876
|
+
return result;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
function allKeysIn(object) {
|
|
880
|
+
if (!isObject(object)) {
|
|
881
|
+
return [];
|
|
882
|
+
}
|
|
883
|
+
return getKeysIn(object).concat(getSymbolsIn(object));
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
function keysIn(object) {
|
|
887
|
+
if (!isObject(object)) {
|
|
888
|
+
return [];
|
|
889
|
+
}
|
|
890
|
+
return getKeysIn(object);
|
|
891
|
+
}
|
|
892
|
+
|
|
897
893
|
function baseMerge(object, source, customizer, storage) {
|
|
898
894
|
if (storage === void 0) { storage = new WeakMap(); }
|
|
899
895
|
var obj = Object(object);
|
|
@@ -941,39 +937,14 @@
|
|
|
941
937
|
|
|
942
938
|
function omit(object, fields) {
|
|
943
939
|
if (fields === void 0) { fields = []; }
|
|
944
|
-
var
|
|
940
|
+
var keys = allKeysIn(object);
|
|
945
941
|
var fieldArr = castArray(fields);
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
}
|
|
952
|
-
|
|
953
|
-
function getKeysIn(object) {
|
|
954
|
-
var result = [];
|
|
955
|
-
for (var key in object) {
|
|
956
|
-
result.push(key);
|
|
957
|
-
}
|
|
958
|
-
return result;
|
|
959
|
-
}
|
|
960
|
-
|
|
961
|
-
function getSymbols(object) {
|
|
962
|
-
if (!objectGetOwnPropertySymbols || object === null) {
|
|
963
|
-
return [];
|
|
964
|
-
}
|
|
965
|
-
return objectGetOwnPropertySymbols(object).filter(function (item) {
|
|
966
|
-
return propertyIsEnumerable.call(object, item);
|
|
942
|
+
var result = {};
|
|
943
|
+
keys.forEach(function (key) {
|
|
944
|
+
if (!fieldArr.includes(key)) {
|
|
945
|
+
result[key] = object[key];
|
|
946
|
+
}
|
|
967
947
|
});
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
function getSymbolsIn(object) {
|
|
971
|
-
var result = [];
|
|
972
|
-
var o = Object(object);
|
|
973
|
-
while (o) {
|
|
974
|
-
result.push.apply(result, __spreadArray([], __read(getSymbols(o)), false));
|
|
975
|
-
o = Object.getPrototypeOf(o);
|
|
976
|
-
}
|
|
977
948
|
return result;
|
|
978
949
|
}
|
|
979
950
|
|
|
@@ -983,13 +954,12 @@
|
|
|
983
954
|
if (object === null) {
|
|
984
955
|
return result;
|
|
985
956
|
}
|
|
986
|
-
var
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
result[currentKey] = object[currentKey];
|
|
957
|
+
var keys = allKeysIn(object);
|
|
958
|
+
keys.forEach(function (key) {
|
|
959
|
+
if (predicate(object[key], key)) {
|
|
960
|
+
result[key] = object[key];
|
|
991
961
|
}
|
|
992
|
-
}
|
|
962
|
+
});
|
|
993
963
|
return result;
|
|
994
964
|
}
|
|
995
965
|
|
|
@@ -1002,12 +972,11 @@
|
|
|
1002
972
|
if (fields === void 0) { fields = []; }
|
|
1003
973
|
var result = {};
|
|
1004
974
|
var fieldArr = castArray(fields);
|
|
1005
|
-
|
|
1006
|
-
var field = fieldArr[i];
|
|
975
|
+
fieldArr.forEach(function (field) {
|
|
1007
976
|
if (field in object) {
|
|
1008
977
|
result[field] = object[field];
|
|
1009
978
|
}
|
|
1010
|
-
}
|
|
979
|
+
});
|
|
1011
980
|
return result;
|
|
1012
981
|
}
|
|
1013
982
|
|
|
@@ -1410,6 +1379,8 @@
|
|
|
1410
1379
|
exports.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
|
|
1411
1380
|
exports.VERSION = VERSION;
|
|
1412
1381
|
exports.after = after;
|
|
1382
|
+
exports.allKeys = allKeys;
|
|
1383
|
+
exports.allKeysIn = allKeysIn;
|
|
1413
1384
|
exports.before = before;
|
|
1414
1385
|
exports.camelCase = camelCase;
|
|
1415
1386
|
exports.capitalize = capitalize;
|
|
@@ -1473,6 +1444,7 @@
|
|
|
1473
1444
|
exports.isWeakSet = isWeakSet;
|
|
1474
1445
|
exports.kebabCase = kebabCase;
|
|
1475
1446
|
exports.keyBy = keyBy;
|
|
1447
|
+
exports.keysIn = keysIn;
|
|
1476
1448
|
exports.lowerCase = lowerCase;
|
|
1477
1449
|
exports.lowerFirst = lowerFirst;
|
|
1478
1450
|
exports.lt = lt;
|