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/es/allKeys.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import getSymbols from './internals/getSymbols.js';
|
|
2
|
+
import isObject from './isObject.js';
|
|
3
|
+
|
|
4
|
+
function allKeys(object) {
|
|
5
|
+
if (!isObject(object)) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
return Object.keys(object).concat(getSymbols(object));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { allKeys as default };
|
package/es/allKeysIn.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import getKeysIn from './internals/getKeysIn.js';
|
|
2
|
+
import getSymbolsIn from './internals/getSymbolsIn.js';
|
|
3
|
+
import isObject from './isObject.js';
|
|
4
|
+
|
|
5
|
+
function allKeysIn(object) {
|
|
6
|
+
if (!isObject(object)) {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
return getKeysIn(object).concat(getSymbolsIn(object));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { allKeysIn as default };
|
package/es/debounce.js
CHANGED
|
@@ -1,91 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { FUNC_ERROR_TEXT } from './internals/helpers.js';
|
|
3
|
-
import toNumber from './toNumber.js';
|
|
1
|
+
import baseDebounce from './internals/baseDebounce.js';
|
|
4
2
|
|
|
5
|
-
function baseDebounce(func, wait, immediate, __throttle__) {
|
|
6
|
-
if (__throttle__ === void 0) { __throttle__ = false; }
|
|
7
|
-
if (typeof func !== 'function') {
|
|
8
|
-
throw new TypeError(FUNC_ERROR_TEXT);
|
|
9
|
-
}
|
|
10
|
-
var timer, lastCallTime, lastInvokeTime, lastArgs, lastThis, result;
|
|
11
|
-
wait = defaultTo(toNumber(wait), 0);
|
|
12
|
-
function shouldInvoke(time) {
|
|
13
|
-
if (lastCallTime === undefined) {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
var timeSinceLastCall = time - lastCallTime;
|
|
17
|
-
var timeSinceLastInvoke = time - lastInvokeTime;
|
|
18
|
-
return (timeSinceLastCall >= wait ||
|
|
19
|
-
timeSinceLastCall < 0 ||
|
|
20
|
-
(__throttle__ && timeSinceLastInvoke >= wait));
|
|
21
|
-
}
|
|
22
|
-
function invokeFunc(time) {
|
|
23
|
-
lastInvokeTime = time;
|
|
24
|
-
result = func.apply(lastThis, lastArgs);
|
|
25
|
-
lastThis = lastArgs = undefined;
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
function debounced() {
|
|
29
|
-
var args = [];
|
|
30
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
31
|
-
args[_i] = arguments[_i];
|
|
32
|
-
}
|
|
33
|
-
lastThis = this;
|
|
34
|
-
lastArgs = args;
|
|
35
|
-
var time = Date.now();
|
|
36
|
-
var isInvoke = shouldInvoke(time);
|
|
37
|
-
var waitTime = !__throttle__
|
|
38
|
-
? wait
|
|
39
|
-
: !isInvoke && lastCallTime !== undefined && timer === undefined
|
|
40
|
-
? wait - (time - lastCallTime)
|
|
41
|
-
: wait;
|
|
42
|
-
lastCallTime = time;
|
|
43
|
-
if (isInvoke) {
|
|
44
|
-
if (immediate && timer === undefined) {
|
|
45
|
-
return invokeFunc(time);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (timer !== undefined && !__throttle__) {
|
|
49
|
-
clearTimeout(timer);
|
|
50
|
-
timer = undefined;
|
|
51
|
-
}
|
|
52
|
-
if (timer === undefined) {
|
|
53
|
-
timer = setTimeout(function () {
|
|
54
|
-
timer = undefined;
|
|
55
|
-
invokeFunc(Date.now());
|
|
56
|
-
}, waitTime);
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
function cancel() {
|
|
61
|
-
if (timer !== undefined) {
|
|
62
|
-
clearTimeout(timer);
|
|
63
|
-
timer = undefined;
|
|
64
|
-
}
|
|
65
|
-
lastCallTime = timer = lastArgs = lastThis = undefined;
|
|
66
|
-
}
|
|
67
|
-
function flush() {
|
|
68
|
-
if (timer !== undefined) {
|
|
69
|
-
clearTimeout(timer);
|
|
70
|
-
timer = undefined;
|
|
71
|
-
if (lastArgs) {
|
|
72
|
-
return invokeFunc(Date.now());
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return result;
|
|
76
|
-
}
|
|
77
|
-
function pending() {
|
|
78
|
-
return timer !== undefined;
|
|
79
|
-
}
|
|
80
|
-
debounced.cancel = cancel;
|
|
81
|
-
debounced.flush = flush;
|
|
82
|
-
debounced.pending = pending;
|
|
83
|
-
return debounced;
|
|
84
|
-
}
|
|
85
3
|
function debounce(func, wait, immediate) {
|
|
86
4
|
if (wait === void 0) { wait = 0; }
|
|
87
5
|
if (immediate === void 0) { immediate = false; }
|
|
88
6
|
return baseDebounce(func, wait, immediate);
|
|
89
7
|
}
|
|
90
8
|
|
|
91
|
-
export {
|
|
9
|
+
export { debounce as default };
|
package/es/index.js
CHANGED
|
@@ -31,6 +31,9 @@ export { default as clamp } from './clamp.js';
|
|
|
31
31
|
export { default as inRange } from './inRange.js';
|
|
32
32
|
export { default as random } from './random.js';
|
|
33
33
|
export { default as randomInt } from './randomInt.js';
|
|
34
|
+
export { default as allKeys } from './allKeys.js';
|
|
35
|
+
export { default as allKeysIn } from './allKeysIn.js';
|
|
36
|
+
export { default as keysIn } from './keysIn.js';
|
|
34
37
|
export { default as merge } from './merge.js';
|
|
35
38
|
export { default as omit } from './omit.js';
|
|
36
39
|
export { default as omitBy } from './omitBy.js';
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import defaultTo from '../defaultTo.js';
|
|
2
|
+
import toNumber from '../toNumber.js';
|
|
3
|
+
import { FUNC_ERROR_TEXT } from './helpers.js';
|
|
4
|
+
|
|
5
|
+
function baseDebounce(func, wait, immediate, __throttle__) {
|
|
6
|
+
if (__throttle__ === void 0) { __throttle__ = false; }
|
|
7
|
+
if (typeof func !== 'function') {
|
|
8
|
+
throw new TypeError(FUNC_ERROR_TEXT);
|
|
9
|
+
}
|
|
10
|
+
var timer, lastCallTime, lastInvokeTime, lastArgs, lastThis, result;
|
|
11
|
+
wait = defaultTo(toNumber(wait), 0);
|
|
12
|
+
function shouldInvoke(time) {
|
|
13
|
+
if (lastCallTime === undefined) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
var timeSinceLastCall = time - lastCallTime;
|
|
17
|
+
var timeSinceLastInvoke = time - lastInvokeTime;
|
|
18
|
+
return (timeSinceLastCall >= wait ||
|
|
19
|
+
timeSinceLastCall < 0 ||
|
|
20
|
+
(__throttle__ && timeSinceLastInvoke >= wait));
|
|
21
|
+
}
|
|
22
|
+
function invokeFunc(time) {
|
|
23
|
+
lastInvokeTime = time;
|
|
24
|
+
result = func.apply(lastThis, lastArgs);
|
|
25
|
+
lastThis = lastArgs = undefined;
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
function debounced() {
|
|
29
|
+
var args = [];
|
|
30
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
31
|
+
args[_i] = arguments[_i];
|
|
32
|
+
}
|
|
33
|
+
lastThis = this;
|
|
34
|
+
lastArgs = args;
|
|
35
|
+
var time = Date.now();
|
|
36
|
+
var isInvoke = shouldInvoke(time);
|
|
37
|
+
var waitTime = !__throttle__
|
|
38
|
+
? wait
|
|
39
|
+
: !isInvoke && lastCallTime !== undefined && timer === undefined
|
|
40
|
+
? wait - (time - lastCallTime)
|
|
41
|
+
: wait;
|
|
42
|
+
lastCallTime = time;
|
|
43
|
+
if (isInvoke) {
|
|
44
|
+
if (immediate && timer === undefined) {
|
|
45
|
+
return invokeFunc(time);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (timer !== undefined && !__throttle__) {
|
|
49
|
+
clearTimeout(timer);
|
|
50
|
+
timer = undefined;
|
|
51
|
+
}
|
|
52
|
+
if (timer === undefined) {
|
|
53
|
+
timer = setTimeout(function () {
|
|
54
|
+
timer = undefined;
|
|
55
|
+
invokeFunc(Date.now());
|
|
56
|
+
}, waitTime);
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
function cancel() {
|
|
61
|
+
if (timer !== undefined) {
|
|
62
|
+
clearTimeout(timer);
|
|
63
|
+
timer = undefined;
|
|
64
|
+
}
|
|
65
|
+
lastCallTime = timer = lastArgs = lastThis = undefined;
|
|
66
|
+
}
|
|
67
|
+
function flush() {
|
|
68
|
+
if (timer !== undefined) {
|
|
69
|
+
clearTimeout(timer);
|
|
70
|
+
timer = undefined;
|
|
71
|
+
if (lastArgs) {
|
|
72
|
+
return invokeFunc(Date.now());
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
function pending() {
|
|
78
|
+
return timer !== undefined;
|
|
79
|
+
}
|
|
80
|
+
debounced.cancel = cancel;
|
|
81
|
+
debounced.flush = flush;
|
|
82
|
+
debounced.pending = pending;
|
|
83
|
+
return debounced;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export { baseDebounce as default };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { __spreadArray, __read } from 'tslib';
|
|
2
1
|
import getSymbols from './getSymbols.js';
|
|
3
2
|
|
|
4
3
|
function getSymbolsIn(object) {
|
|
5
4
|
var result = [];
|
|
6
5
|
var o = Object(object);
|
|
7
6
|
while (o) {
|
|
8
|
-
|
|
7
|
+
getSymbols(o).forEach(function (item) {
|
|
8
|
+
result.push(item);
|
|
9
|
+
});
|
|
9
10
|
o = Object.getPrototypeOf(o);
|
|
10
11
|
}
|
|
11
12
|
return result;
|
package/es/internals/helpers.js
CHANGED
|
@@ -8,6 +8,6 @@ var numberIsInteger = Number.isInteger;
|
|
|
8
8
|
var numberIsSafeInteger = Number.isSafeInteger;
|
|
9
9
|
var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
10
10
|
var arrayAt = Array.prototype.at;
|
|
11
|
-
var VERSION = "1.0
|
|
11
|
+
var VERSION = "1.1.0";
|
|
12
12
|
|
|
13
13
|
export { FUNC_ERROR_TEXT, VERSION, argType, arrayAt, numberIsFinite, numberIsInteger, numberIsSafeInteger, objectGetOwnPropertySymbols, supportedArgumentsType };
|
package/es/keysIn.js
ADDED
package/es/omit.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import allKeysIn from './allKeysIn.js';
|
|
2
2
|
import castArray from './castArray.js';
|
|
3
3
|
|
|
4
4
|
function omit(object, fields) {
|
|
5
5
|
if (fields === void 0) { fields = []; }
|
|
6
|
-
var
|
|
6
|
+
var keys = allKeysIn(object);
|
|
7
7
|
var fieldArr = castArray(fields);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
var result = {};
|
|
9
|
+
keys.forEach(function (key) {
|
|
10
|
+
if (!fieldArr.includes(key)) {
|
|
11
|
+
result[key] = object[key];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
return result;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export { omit as default };
|
package/es/partial.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { __spreadArray, __read } from 'tslib';
|
|
2
|
-
|
|
3
1
|
function partial(func) {
|
|
4
2
|
var args = [];
|
|
5
3
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -10,7 +8,7 @@ function partial(func) {
|
|
|
10
8
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
11
9
|
remainingArgs[_i] = arguments[_i];
|
|
12
10
|
}
|
|
13
|
-
return func.apply(this,
|
|
11
|
+
return func.apply(this, args.concat(remainingArgs));
|
|
14
12
|
};
|
|
15
13
|
}
|
|
16
14
|
|
package/es/pick.js
CHANGED
|
@@ -4,12 +4,11 @@ function pick(object, fields) {
|
|
|
4
4
|
if (fields === void 0) { fields = []; }
|
|
5
5
|
var result = {};
|
|
6
6
|
var fieldArr = castArray(fields);
|
|
7
|
-
|
|
8
|
-
var field = fieldArr[i];
|
|
7
|
+
fieldArr.forEach(function (field) {
|
|
9
8
|
if (field in object) {
|
|
10
9
|
result[field] = object[field];
|
|
11
10
|
}
|
|
12
|
-
}
|
|
11
|
+
});
|
|
13
12
|
return result;
|
|
14
13
|
}
|
|
15
14
|
|
package/es/pickBy.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import getKeysIn from './internals/getKeysIn.js';
|
|
3
|
-
import getSymbolsIn from './internals/getSymbolsIn.js';
|
|
1
|
+
import allKeysIn from './allKeysIn.js';
|
|
4
2
|
|
|
5
3
|
function pickBy(object, predicate) {
|
|
6
4
|
if (predicate === void 0) { predicate = function () { return false; }; }
|
|
@@ -8,13 +6,12 @@ function pickBy(object, predicate) {
|
|
|
8
6
|
if (object === null) {
|
|
9
7
|
return result;
|
|
10
8
|
}
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
result[currentKey] = object[currentKey];
|
|
9
|
+
var keys = allKeysIn(object);
|
|
10
|
+
keys.forEach(function (key) {
|
|
11
|
+
if (predicate(object[key], key)) {
|
|
12
|
+
result[key] = object[key];
|
|
16
13
|
}
|
|
17
|
-
}
|
|
14
|
+
});
|
|
18
15
|
return result;
|
|
19
16
|
}
|
|
20
17
|
|
package/es/throttle.js
CHANGED
package/es/union.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __spreadArray, __read } from 'tslib';
|
|
2
1
|
import isArray from './isArray.js';
|
|
3
2
|
import uniq from './uniq.js';
|
|
4
3
|
|
|
@@ -6,7 +5,7 @@ function union(array, other, iteratee) {
|
|
|
6
5
|
if (other === void 0) { other = []; }
|
|
7
6
|
array = isArray(array) ? array : [];
|
|
8
7
|
other = isArray(other) ? other : [];
|
|
9
|
-
return uniq(
|
|
8
|
+
return uniq(array.concat(other), iteratee);
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
export { union as default };
|
package/lib/allKeys.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getSymbols = require('./internals/getSymbols.js');
|
|
4
|
+
var isObject = require('./isObject.js');
|
|
5
|
+
|
|
6
|
+
function allKeys(object) {
|
|
7
|
+
if (!isObject(object)) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
return Object.keys(object).concat(getSymbols(object));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
module.exports = allKeys;
|
package/lib/allKeysIn.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getKeysIn = require('./internals/getKeysIn.js');
|
|
4
|
+
var getSymbolsIn = require('./internals/getSymbolsIn.js');
|
|
5
|
+
var isObject = require('./isObject.js');
|
|
6
|
+
|
|
7
|
+
function allKeysIn(object) {
|
|
8
|
+
if (!isObject(object)) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
return getKeysIn(object).concat(getSymbolsIn(object));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
module.exports = allKeysIn;
|
package/lib/debounce.js
CHANGED
|
@@ -1,96 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var baseDebounce = require('./internals/baseDebounce.js');
|
|
4
4
|
|
|
5
|
-
var defaultTo = require('./defaultTo.js');
|
|
6
|
-
var helpers = require('./internals/helpers.js');
|
|
7
|
-
var toNumber = require('./toNumber.js');
|
|
8
|
-
|
|
9
|
-
function baseDebounce(func, wait, immediate, __throttle__) {
|
|
10
|
-
if (__throttle__ === void 0) { __throttle__ = false; }
|
|
11
|
-
if (typeof func !== 'function') {
|
|
12
|
-
throw new TypeError(helpers.FUNC_ERROR_TEXT);
|
|
13
|
-
}
|
|
14
|
-
var timer, lastCallTime, lastInvokeTime, lastArgs, lastThis, result;
|
|
15
|
-
wait = defaultTo(toNumber(wait), 0);
|
|
16
|
-
function shouldInvoke(time) {
|
|
17
|
-
if (lastCallTime === undefined) {
|
|
18
|
-
return true;
|
|
19
|
-
}
|
|
20
|
-
var timeSinceLastCall = time - lastCallTime;
|
|
21
|
-
var timeSinceLastInvoke = time - lastInvokeTime;
|
|
22
|
-
return (timeSinceLastCall >= wait ||
|
|
23
|
-
timeSinceLastCall < 0 ||
|
|
24
|
-
(__throttle__ && timeSinceLastInvoke >= wait));
|
|
25
|
-
}
|
|
26
|
-
function invokeFunc(time) {
|
|
27
|
-
lastInvokeTime = time;
|
|
28
|
-
result = func.apply(lastThis, lastArgs);
|
|
29
|
-
lastThis = lastArgs = undefined;
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
function debounced() {
|
|
33
|
-
var args = [];
|
|
34
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
35
|
-
args[_i] = arguments[_i];
|
|
36
|
-
}
|
|
37
|
-
lastThis = this;
|
|
38
|
-
lastArgs = args;
|
|
39
|
-
var time = Date.now();
|
|
40
|
-
var isInvoke = shouldInvoke(time);
|
|
41
|
-
var waitTime = !__throttle__
|
|
42
|
-
? wait
|
|
43
|
-
: !isInvoke && lastCallTime !== undefined && timer === undefined
|
|
44
|
-
? wait - (time - lastCallTime)
|
|
45
|
-
: wait;
|
|
46
|
-
lastCallTime = time;
|
|
47
|
-
if (isInvoke) {
|
|
48
|
-
if (immediate && timer === undefined) {
|
|
49
|
-
return invokeFunc(time);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (timer !== undefined && !__throttle__) {
|
|
53
|
-
clearTimeout(timer);
|
|
54
|
-
timer = undefined;
|
|
55
|
-
}
|
|
56
|
-
if (timer === undefined) {
|
|
57
|
-
timer = setTimeout(function () {
|
|
58
|
-
timer = undefined;
|
|
59
|
-
invokeFunc(Date.now());
|
|
60
|
-
}, waitTime);
|
|
61
|
-
}
|
|
62
|
-
return result;
|
|
63
|
-
}
|
|
64
|
-
function cancel() {
|
|
65
|
-
if (timer !== undefined) {
|
|
66
|
-
clearTimeout(timer);
|
|
67
|
-
timer = undefined;
|
|
68
|
-
}
|
|
69
|
-
lastCallTime = timer = lastArgs = lastThis = undefined;
|
|
70
|
-
}
|
|
71
|
-
function flush() {
|
|
72
|
-
if (timer !== undefined) {
|
|
73
|
-
clearTimeout(timer);
|
|
74
|
-
timer = undefined;
|
|
75
|
-
if (lastArgs) {
|
|
76
|
-
return invokeFunc(Date.now());
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return result;
|
|
80
|
-
}
|
|
81
|
-
function pending() {
|
|
82
|
-
return timer !== undefined;
|
|
83
|
-
}
|
|
84
|
-
debounced.cancel = cancel;
|
|
85
|
-
debounced.flush = flush;
|
|
86
|
-
debounced.pending = pending;
|
|
87
|
-
return debounced;
|
|
88
|
-
}
|
|
89
5
|
function debounce(func, wait, immediate) {
|
|
90
6
|
if (wait === void 0) { wait = 0; }
|
|
91
7
|
if (immediate === void 0) { immediate = false; }
|
|
92
8
|
return baseDebounce(func, wait, immediate);
|
|
93
9
|
}
|
|
94
10
|
|
|
95
|
-
exports
|
|
96
|
-
exports.default = debounce;
|
|
11
|
+
module.exports = debounce;
|
package/lib/index.js
CHANGED
|
@@ -33,6 +33,9 @@ var clamp = require('./clamp.js');
|
|
|
33
33
|
var inRange = require('./inRange.js');
|
|
34
34
|
var random = require('./random.js');
|
|
35
35
|
var randomInt = require('./randomInt.js');
|
|
36
|
+
var allKeys = require('./allKeys.js');
|
|
37
|
+
var allKeysIn = require('./allKeysIn.js');
|
|
38
|
+
var keysIn = require('./keysIn.js');
|
|
36
39
|
var merge = require('./merge.js');
|
|
37
40
|
var omit = require('./omit.js');
|
|
38
41
|
var omitBy = require('./omitBy.js');
|
|
@@ -130,7 +133,7 @@ exports.orderBy = orderBy;
|
|
|
130
133
|
exports.partition = partition;
|
|
131
134
|
exports.after = after;
|
|
132
135
|
exports.before = before;
|
|
133
|
-
exports.debounce = debounce
|
|
136
|
+
exports.debounce = debounce;
|
|
134
137
|
exports.delay = delay;
|
|
135
138
|
exports.negate = negate;
|
|
136
139
|
exports.partial = partial;
|
|
@@ -144,6 +147,9 @@ exports.clamp = clamp;
|
|
|
144
147
|
exports.inRange = inRange;
|
|
145
148
|
exports.random = random;
|
|
146
149
|
exports.randomInt = randomInt;
|
|
150
|
+
exports.allKeys = allKeys;
|
|
151
|
+
exports.allKeysIn = allKeysIn;
|
|
152
|
+
exports.keysIn = keysIn;
|
|
147
153
|
exports.merge = merge;
|
|
148
154
|
exports.omit = omit;
|
|
149
155
|
exports.omitBy = omitBy;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defaultTo = require('../defaultTo.js');
|
|
4
|
+
var toNumber = require('../toNumber.js');
|
|
5
|
+
var helpers = require('./helpers.js');
|
|
6
|
+
|
|
7
|
+
function baseDebounce(func, wait, immediate, __throttle__) {
|
|
8
|
+
if (__throttle__ === void 0) { __throttle__ = false; }
|
|
9
|
+
if (typeof func !== 'function') {
|
|
10
|
+
throw new TypeError(helpers.FUNC_ERROR_TEXT);
|
|
11
|
+
}
|
|
12
|
+
var timer, lastCallTime, lastInvokeTime, lastArgs, lastThis, result;
|
|
13
|
+
wait = defaultTo(toNumber(wait), 0);
|
|
14
|
+
function shouldInvoke(time) {
|
|
15
|
+
if (lastCallTime === undefined) {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
var timeSinceLastCall = time - lastCallTime;
|
|
19
|
+
var timeSinceLastInvoke = time - lastInvokeTime;
|
|
20
|
+
return (timeSinceLastCall >= wait ||
|
|
21
|
+
timeSinceLastCall < 0 ||
|
|
22
|
+
(__throttle__ && timeSinceLastInvoke >= wait));
|
|
23
|
+
}
|
|
24
|
+
function invokeFunc(time) {
|
|
25
|
+
lastInvokeTime = time;
|
|
26
|
+
result = func.apply(lastThis, lastArgs);
|
|
27
|
+
lastThis = lastArgs = undefined;
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
function debounced() {
|
|
31
|
+
var args = [];
|
|
32
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
33
|
+
args[_i] = arguments[_i];
|
|
34
|
+
}
|
|
35
|
+
lastThis = this;
|
|
36
|
+
lastArgs = args;
|
|
37
|
+
var time = Date.now();
|
|
38
|
+
var isInvoke = shouldInvoke(time);
|
|
39
|
+
var waitTime = !__throttle__
|
|
40
|
+
? wait
|
|
41
|
+
: !isInvoke && lastCallTime !== undefined && timer === undefined
|
|
42
|
+
? wait - (time - lastCallTime)
|
|
43
|
+
: wait;
|
|
44
|
+
lastCallTime = time;
|
|
45
|
+
if (isInvoke) {
|
|
46
|
+
if (immediate && timer === undefined) {
|
|
47
|
+
return invokeFunc(time);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (timer !== undefined && !__throttle__) {
|
|
51
|
+
clearTimeout(timer);
|
|
52
|
+
timer = undefined;
|
|
53
|
+
}
|
|
54
|
+
if (timer === undefined) {
|
|
55
|
+
timer = setTimeout(function () {
|
|
56
|
+
timer = undefined;
|
|
57
|
+
invokeFunc(Date.now());
|
|
58
|
+
}, waitTime);
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
function cancel() {
|
|
63
|
+
if (timer !== undefined) {
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
timer = undefined;
|
|
66
|
+
}
|
|
67
|
+
lastCallTime = timer = lastArgs = lastThis = undefined;
|
|
68
|
+
}
|
|
69
|
+
function flush() {
|
|
70
|
+
if (timer !== undefined) {
|
|
71
|
+
clearTimeout(timer);
|
|
72
|
+
timer = undefined;
|
|
73
|
+
if (lastArgs) {
|
|
74
|
+
return invokeFunc(Date.now());
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
function pending() {
|
|
80
|
+
return timer !== undefined;
|
|
81
|
+
}
|
|
82
|
+
debounced.cancel = cancel;
|
|
83
|
+
debounced.flush = flush;
|
|
84
|
+
debounced.pending = pending;
|
|
85
|
+
return debounced;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
module.exports = baseDebounce;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib = require('tslib');
|
|
4
3
|
var getSymbols = require('./getSymbols.js');
|
|
5
4
|
|
|
6
5
|
function getSymbolsIn(object) {
|
|
7
6
|
var result = [];
|
|
8
7
|
var o = Object(object);
|
|
9
8
|
while (o) {
|
|
10
|
-
|
|
9
|
+
getSymbols(o).forEach(function (item) {
|
|
10
|
+
result.push(item);
|
|
11
|
+
});
|
|
11
12
|
o = Object.getPrototypeOf(o);
|
|
12
13
|
}
|
|
13
14
|
return result;
|
package/lib/internals/helpers.js
CHANGED
|
@@ -10,4 +10,4 @@ exports.numberIsInteger = Number.isInteger;
|
|
|
10
10
|
exports.numberIsSafeInteger = Number.isSafeInteger;
|
|
11
11
|
exports.objectGetOwnPropertySymbols = Object.getOwnPropertySymbols;
|
|
12
12
|
exports.arrayAt = Array.prototype.at;
|
|
13
|
-
exports.VERSION = "1.0
|
|
13
|
+
exports.VERSION = "1.1.0";
|
package/lib/keysIn.js
ADDED
package/lib/omit.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var allKeysIn = require('./allKeysIn.js');
|
|
4
4
|
var castArray = require('./castArray.js');
|
|
5
5
|
|
|
6
6
|
function omit(object, fields) {
|
|
7
7
|
if (fields === void 0) { fields = []; }
|
|
8
|
-
var
|
|
8
|
+
var keys = allKeysIn(object);
|
|
9
9
|
var fieldArr = castArray(fields);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
var result = {};
|
|
11
|
+
keys.forEach(function (key) {
|
|
12
|
+
if (!fieldArr.includes(key)) {
|
|
13
|
+
result[key] = object[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return result;
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
module.exports = omit;
|