ut2 1.5.5 → 1.6.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 -1
- package/dist/ut2.js +53 -20
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/index.js +1 -0
- package/es/internals/helpers.js +1 -1
- package/es/merge.js +28 -18
- package/es/range.js +28 -0
- package/es/toString.js +1 -1
- package/lib/index.js +2 -0
- package/lib/internals/helpers.js +1 -1
- package/lib/merge.js +28 -18
- package/lib/range.js +30 -0
- package/lib/toString.js +1 -1
- package/package.json +1 -1
- package/types/index.d.ts +1 -0
- package/types/lowerFirst.d.ts +4 -0
- package/types/range.d.ts +4 -0
- package/types/upperFirst.d.ts +4 -0
package/es/merge.js
CHANGED
|
@@ -2,36 +2,46 @@ import allKeysIn from './allKeysIn.js';
|
|
|
2
2
|
import isArray from './isArray.js';
|
|
3
3
|
import isObject from './isObject.js';
|
|
4
4
|
import isObjectLike from './isObjectLike.js';
|
|
5
|
+
import isPlainObject from './isPlainObject.js';
|
|
5
6
|
|
|
6
|
-
function baseMerge(object, source, customizer,
|
|
7
|
-
if (
|
|
7
|
+
function baseMerge(object, source, customizer, stack) {
|
|
8
|
+
if (stack === void 0) { stack = new WeakMap(); }
|
|
8
9
|
var obj = Object(object);
|
|
9
10
|
if (!isObject(source) || obj === source) {
|
|
10
11
|
return obj;
|
|
11
12
|
}
|
|
12
13
|
var keys = allKeysIn(source);
|
|
14
|
+
var hasCustomizer = typeof customizer === 'function';
|
|
13
15
|
keys.forEach(function (key) {
|
|
14
16
|
var srcValue = source[key];
|
|
15
|
-
var
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
if (isObjectLike(newValue) && key in obj && !storage.has(newValue)) {
|
|
20
|
-
storage.set(newValue, true);
|
|
21
|
-
var objValue = obj[key];
|
|
22
|
-
var newObjValue = void 0;
|
|
23
|
-
if (isArray(newValue)) {
|
|
24
|
-
newObjValue = isArray(objValue) ? objValue : [];
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
newObjValue = isObjectLike(objValue) ? objValue : {};
|
|
28
|
-
}
|
|
29
|
-
obj[key] = baseMerge(newObjValue, newValue, customizer, storage);
|
|
17
|
+
var srcIsObj = isObject(srcValue);
|
|
18
|
+
if (srcIsObj && stack.has(srcValue)) {
|
|
19
|
+
obj[key] = srcValue;
|
|
30
20
|
}
|
|
31
21
|
else {
|
|
32
|
-
|
|
22
|
+
var newValue = hasCustomizer ? customizer(obj[key], srcValue, key, obj, source) : undefined;
|
|
23
|
+
if (newValue !== undefined) {
|
|
33
24
|
obj[key] = newValue;
|
|
34
25
|
}
|
|
26
|
+
else {
|
|
27
|
+
var objValue = obj[key];
|
|
28
|
+
var newObjValue = void 0;
|
|
29
|
+
if (srcIsObj) {
|
|
30
|
+
stack.set(srcValue, true);
|
|
31
|
+
if (isArray(srcValue)) {
|
|
32
|
+
newObjValue = isArray(objValue) ? objValue : [];
|
|
33
|
+
}
|
|
34
|
+
else if (isPlainObject(srcValue)) {
|
|
35
|
+
newObjValue = isObjectLike(objValue) ? objValue : {};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (newObjValue) {
|
|
39
|
+
obj[key] = baseMerge(newObjValue, srcValue, customizer, stack);
|
|
40
|
+
}
|
|
41
|
+
else if (srcValue !== undefined || !(key in obj)) {
|
|
42
|
+
obj[key] = srcValue;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
35
45
|
}
|
|
36
46
|
});
|
|
37
47
|
return obj;
|
package/es/range.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { mathMax, mathCeil } from './internals/native.js';
|
|
2
|
+
import isNil from './isNil.js';
|
|
3
|
+
import toFinite from './toFinite.js';
|
|
4
|
+
|
|
5
|
+
function range(start, end, step) {
|
|
6
|
+
start = toFinite(start);
|
|
7
|
+
if (isNil(end)) {
|
|
8
|
+
end = start;
|
|
9
|
+
start = 0;
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
end = toFinite(end);
|
|
13
|
+
}
|
|
14
|
+
step = toFinite(step);
|
|
15
|
+
if (!step) {
|
|
16
|
+
step = start < end ? 1 : -1;
|
|
17
|
+
}
|
|
18
|
+
var index = -1;
|
|
19
|
+
var length = mathMax(mathCeil((end - start) / step), 0);
|
|
20
|
+
var result = Array(length);
|
|
21
|
+
while (length--) {
|
|
22
|
+
result[++index] = start;
|
|
23
|
+
start += step;
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { range as default };
|
package/es/toString.js
CHANGED
package/lib/index.js
CHANGED
|
@@ -104,6 +104,7 @@ var lt = require('./lt.js');
|
|
|
104
104
|
var lte = require('./lte.js');
|
|
105
105
|
var noop = require('./noop.js');
|
|
106
106
|
var nthArg = require('./nthArg.js');
|
|
107
|
+
var range = require('./range.js');
|
|
107
108
|
var sleep = require('./sleep.js');
|
|
108
109
|
var times = require('./times.js');
|
|
109
110
|
var toFinite = require('./toFinite.js');
|
|
@@ -222,6 +223,7 @@ exports.lt = lt;
|
|
|
222
223
|
exports.lte = lte;
|
|
223
224
|
exports.noop = noop;
|
|
224
225
|
exports.nthArg = nthArg;
|
|
226
|
+
exports.range = range;
|
|
225
227
|
exports.sleep = sleep;
|
|
226
228
|
exports.times = times;
|
|
227
229
|
exports.toFinite = toFinite;
|
package/lib/internals/helpers.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var getTag = require('./getTag.js');
|
|
4
4
|
var native = require('./native.js');
|
|
5
5
|
|
|
6
|
-
exports.VERSION = "1.
|
|
6
|
+
exports.VERSION = "1.6.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) {
|
package/lib/merge.js
CHANGED
|
@@ -4,36 +4,46 @@ var allKeysIn = require('./allKeysIn.js');
|
|
|
4
4
|
var isArray = require('./isArray.js');
|
|
5
5
|
var isObject = require('./isObject.js');
|
|
6
6
|
var isObjectLike = require('./isObjectLike.js');
|
|
7
|
+
var isPlainObject = require('./isPlainObject.js');
|
|
7
8
|
|
|
8
|
-
function baseMerge(object, source, customizer,
|
|
9
|
-
if (
|
|
9
|
+
function baseMerge(object, source, customizer, stack) {
|
|
10
|
+
if (stack === void 0) { stack = new WeakMap(); }
|
|
10
11
|
var obj = Object(object);
|
|
11
12
|
if (!isObject(source) || obj === source) {
|
|
12
13
|
return obj;
|
|
13
14
|
}
|
|
14
15
|
var keys = allKeysIn(source);
|
|
16
|
+
var hasCustomizer = typeof customizer === 'function';
|
|
15
17
|
keys.forEach(function (key) {
|
|
16
18
|
var srcValue = source[key];
|
|
17
|
-
var
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
if (isObjectLike(newValue) && key in obj && !storage.has(newValue)) {
|
|
22
|
-
storage.set(newValue, true);
|
|
23
|
-
var objValue = obj[key];
|
|
24
|
-
var newObjValue = void 0;
|
|
25
|
-
if (isArray(newValue)) {
|
|
26
|
-
newObjValue = isArray(objValue) ? objValue : [];
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
newObjValue = isObjectLike(objValue) ? objValue : {};
|
|
30
|
-
}
|
|
31
|
-
obj[key] = baseMerge(newObjValue, newValue, customizer, storage);
|
|
19
|
+
var srcIsObj = isObject(srcValue);
|
|
20
|
+
if (srcIsObj && stack.has(srcValue)) {
|
|
21
|
+
obj[key] = srcValue;
|
|
32
22
|
}
|
|
33
23
|
else {
|
|
34
|
-
|
|
24
|
+
var newValue = hasCustomizer ? customizer(obj[key], srcValue, key, obj, source) : undefined;
|
|
25
|
+
if (newValue !== undefined) {
|
|
35
26
|
obj[key] = newValue;
|
|
36
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, customizer, stack);
|
|
42
|
+
}
|
|
43
|
+
else if (srcValue !== undefined || !(key in obj)) {
|
|
44
|
+
obj[key] = srcValue;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
37
47
|
}
|
|
38
48
|
});
|
|
39
49
|
return obj;
|
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/toString.js
CHANGED
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -156,6 +156,7 @@ export { default as lt } from './lt';
|
|
|
156
156
|
export { default as lte } from './lte';
|
|
157
157
|
export { default as noop } from './noop';
|
|
158
158
|
export { default as nthArg } from './nthArg';
|
|
159
|
+
export { default as range } from './range';
|
|
159
160
|
export { default as sleep } from './sleep';
|
|
160
161
|
export { default as times } from './times';
|
|
161
162
|
export { default as toFinite } from './toFinite';
|
package/types/lowerFirst.d.ts
CHANGED
package/types/range.d.ts
ADDED
package/types/upperFirst.d.ts
CHANGED