ut2 1.5.2 → 1.5.4
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 -2
- package/dist/ut2.js +103 -129
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/gt.js +3 -4
- package/es/gte.js +3 -4
- package/es/internals/createExtremum.js +19 -12
- package/es/internals/createIteratee.js +2 -1
- package/es/internals/getTag.js +2 -23
- package/es/internals/getTagWithBugfix.js +6 -6
- package/es/internals/helpers.js +6 -4
- package/es/internals/isEqualDeep.js +178 -0
- package/es/internals/native.js +1 -3
- package/es/isArguments.js +3 -2
- package/es/isArrayBuffer.js +3 -2
- package/es/isBlob.js +3 -2
- package/es/isBoolean.js +3 -2
- package/es/isDate.js +3 -2
- package/es/isEmpty.js +4 -3
- package/es/isEqual.js +1 -175
- package/es/isError.js +3 -2
- package/es/isFunction.js +3 -2
- package/es/isMatch.js +10 -11
- package/es/isNumber.js +3 -2
- package/es/isObject.js +1 -1
- package/es/isObjectLike.js +1 -1
- package/es/isRegExp.js +3 -2
- package/es/isString.js +3 -2
- package/es/isSymbol.js +3 -2
- package/es/isTypedArray.js +3 -2
- package/es/isWeakSet.js +3 -2
- package/es/lowerFirst.js +3 -4
- package/es/lt.js +3 -4
- package/es/lte.js +3 -4
- package/es/max.js +2 -4
- package/es/min.js +2 -4
- package/es/nth.js +2 -6
- package/es/omit.js +1 -1
- package/es/omitBy.js +2 -1
- package/es/pickBy.js +2 -1
- package/es/toString.js +1 -1
- package/es/uniq.js +13 -5
- package/es/upperFirst.js +3 -4
- package/lib/gt.js +3 -4
- package/lib/gte.js +3 -4
- package/lib/internals/createExtremum.js +19 -12
- package/lib/internals/createIteratee.js +2 -1
- package/lib/internals/getTag.js +1 -22
- package/lib/internals/getTagWithBugfix.js +5 -5
- package/lib/internals/helpers.js +4 -2
- package/lib/internals/isEqualDeep.js +180 -0
- package/lib/internals/native.js +0 -2
- package/lib/isArguments.js +2 -1
- package/lib/isArrayBuffer.js +2 -1
- package/lib/isBlob.js +2 -1
- package/lib/isBoolean.js +2 -1
- package/lib/isDate.js +2 -1
- package/lib/isEmpty.js +4 -3
- package/lib/isEqual.js +1 -175
- package/lib/isError.js +2 -1
- package/lib/isFunction.js +2 -1
- package/lib/isMatch.js +9 -10
- package/lib/isNumber.js +2 -1
- package/lib/isObject.js +1 -1
- package/lib/isObjectLike.js +1 -1
- package/lib/isRegExp.js +2 -1
- package/lib/isString.js +2 -1
- package/lib/isSymbol.js +2 -1
- package/lib/isTypedArray.js +2 -1
- package/lib/isWeakSet.js +2 -1
- package/lib/lowerFirst.js +3 -4
- package/lib/lt.js +3 -4
- package/lib/lte.js +3 -4
- package/lib/max.js +2 -4
- package/lib/min.js +2 -4
- package/lib/nth.js +2 -6
- package/lib/omit.js +1 -1
- package/lib/omitBy.js +2 -1
- package/lib/pickBy.js +2 -1
- package/lib/toString.js +1 -1
- package/lib/uniq.js +13 -5
- package/lib/upperFirst.js +3 -4
- package/package.json +7 -2
- package/types/gt.d.ts +2 -2
- package/types/gte.d.ts +2 -2
- package/types/identity.d.ts +1 -1
- package/types/internals/createExtremum.d.ts +1 -1
- package/types/internals/createIteratee.d.ts +2 -1
- package/types/internals/decimalAdjust.d.ts +1 -1
- package/types/internals/getTag.d.ts +1 -1
- package/types/internals/helpers.d.ts +1 -0
- package/types/internals/isEqualDeep.d.ts +26 -0
- package/types/internals/native.d.ts +0 -2
- package/types/isEqual.d.ts +2 -2
- package/types/lowerFirst.d.ts +2 -2
- package/types/lt.d.ts +2 -2
- package/types/lte.d.ts +2 -2
- package/types/upperFirst.d.ts +2 -2
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
import isArray from '../isArray.js';
|
|
2
2
|
import isSymbol from '../isSymbol.js';
|
|
3
|
+
import isUndefined from '../isUndefined.js';
|
|
3
4
|
import createIteratee from './createIteratee.js';
|
|
4
5
|
|
|
5
|
-
function createExtremum(array,
|
|
6
|
+
function createExtremum(array, comparator, iteratee) {
|
|
6
7
|
if (!isArray(array)) {
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
9
10
|
var result, computed;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
if (isUndefined(iteratee)) {
|
|
12
|
+
array.forEach(function (value) {
|
|
13
|
+
if (value != null && (result === undefined ? value === value && !isSymbol(value) : comparator(value, result))) {
|
|
14
|
+
result = value;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
var internalIteratee_1 = createIteratee(iteratee);
|
|
20
|
+
array.forEach(function (value) {
|
|
21
|
+
var current = internalIteratee_1(value);
|
|
22
|
+
if (current != null && (computed === undefined ? current === current && !isSymbol(current) : comparator(current, computed))) {
|
|
23
|
+
computed = current;
|
|
24
|
+
result = value;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
21
28
|
return result;
|
|
22
29
|
}
|
|
23
30
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import identity from '../identity.js';
|
|
1
2
|
import isSymbol from '../isSymbol.js';
|
|
2
3
|
|
|
3
4
|
function createIteratee(iteratee) {
|
|
@@ -7,7 +8,7 @@ function createIteratee(iteratee) {
|
|
|
7
8
|
if (typeof iteratee === 'string' || typeof iteratee === 'number' || isSymbol(iteratee)) {
|
|
8
9
|
return function (value) { return value[iteratee]; };
|
|
9
10
|
}
|
|
10
|
-
return
|
|
11
|
+
return identity;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export { createIteratee as default };
|
package/es/internals/getTag.js
CHANGED
|
@@ -1,28 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { objectProtoToString } from './native.js';
|
|
2
2
|
|
|
3
|
-
function getRawTag(value) {
|
|
4
|
-
var isOwn = objectProtoHasOwnProperty.call(value, symbolToStringTag);
|
|
5
|
-
var tag = value[symbolToStringTag];
|
|
6
|
-
var unmasked = false;
|
|
7
|
-
try {
|
|
8
|
-
value[symbolToStringTag] = undefined;
|
|
9
|
-
unmasked = true;
|
|
10
|
-
}
|
|
11
|
-
catch (e) {
|
|
12
|
-
}
|
|
13
|
-
var result = objectProtoToString.call(value);
|
|
14
|
-
if (unmasked) {
|
|
15
|
-
if (isOwn) {
|
|
16
|
-
value[symbolToStringTag] = tag;
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
delete value[symbolToStringTag];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
3
|
function getTag(value) {
|
|
25
|
-
return
|
|
4
|
+
return objectProtoToString.call(value);
|
|
26
5
|
}
|
|
27
6
|
|
|
28
7
|
export { getTag as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { dataViewTag, mapTag, promiseTag, setTag, weakMapTag, objectTag } from './native.js';
|
|
2
2
|
import { toSource } from './helpers.js';
|
|
3
3
|
import getTag from './getTag.js';
|
|
4
4
|
|
|
@@ -13,11 +13,11 @@ var promiseCtorString = toSource(Promise);
|
|
|
13
13
|
var setCtorString = toSource(Set);
|
|
14
14
|
var weakMapCtorString = toSource(WeakMap);
|
|
15
15
|
var getTagWithBugfix = getTag;
|
|
16
|
-
if ((dataViewExisted &&
|
|
17
|
-
(mapExisted &&
|
|
18
|
-
(promiseExisted &&
|
|
19
|
-
(setExisted &&
|
|
20
|
-
(weakMapExisted &&
|
|
16
|
+
if ((dataViewExisted && getTag(new DataView(new ArrayBuffer(1))) !== dataViewTag) ||
|
|
17
|
+
(mapExisted && getTag(new Map()) !== mapTag) ||
|
|
18
|
+
(promiseExisted && getTag(Promise.resolve()) !== promiseTag) ||
|
|
19
|
+
(setExisted && getTag(new Set()) !== setTag) ||
|
|
20
|
+
(weakMapExisted && getTag(new WeakMap()) !== weakMapTag)) {
|
|
21
21
|
getTagWithBugfix = function (value) {
|
|
22
22
|
var result = getTag(value);
|
|
23
23
|
var Ctor = result === objectTag ? value.constructor : undefined;
|
package/es/internals/helpers.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './getTag.js';
|
|
2
|
+
import { argumentsTag, functionProtoToString } from './native.js';
|
|
2
3
|
|
|
3
|
-
var VERSION = "1.5.
|
|
4
|
-
var supportedArgumentsType =
|
|
4
|
+
var VERSION = "1.5.4";
|
|
5
|
+
var supportedArgumentsType = getTag((function () { return arguments; })()) === argumentsTag;
|
|
5
6
|
var FUNC_ERROR_TEXT = 'Expected a function';
|
|
6
7
|
function toSource(func) {
|
|
7
8
|
if (func !== null) {
|
|
@@ -18,5 +19,6 @@ function toSource(func) {
|
|
|
18
19
|
}
|
|
19
20
|
return '';
|
|
20
21
|
}
|
|
22
|
+
var stubFlase = function () { return false; };
|
|
21
23
|
|
|
22
|
-
export { FUNC_ERROR_TEXT, VERSION, supportedArgumentsType, toSource };
|
|
24
|
+
export { FUNC_ERROR_TEXT, VERSION, stubFlase, supportedArgumentsType, toSource };
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import allKeys from '../allKeys.js';
|
|
2
|
+
import eq from '../eq.js';
|
|
3
|
+
import getTagWithBugfix from './getTagWithBugfix.js';
|
|
4
|
+
import { symbolProto, arrayBufferTag, dataViewTag, errorTag, symbolTag, regExpTag, stringTag, dateTag, booleanTag, numberTag, objectTag, objectProtoHasOwnProperty, argumentsTag, setTag, mapTag, arrayTag, arrayProtoSlice } from './native.js';
|
|
5
|
+
import isBuffer from '../isBuffer.js';
|
|
6
|
+
import isFunction from '../isFunction.js';
|
|
7
|
+
import isNil from '../isNil.js';
|
|
8
|
+
import isObjectLike from '../isObjectLike.js';
|
|
9
|
+
import isTypedArray from '../isTypedArray.js';
|
|
10
|
+
import orderBy from '../orderBy.js';
|
|
11
|
+
|
|
12
|
+
var symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
|
|
13
|
+
function mapToArray(map) {
|
|
14
|
+
var result = [];
|
|
15
|
+
map.forEach(function (value, key) {
|
|
16
|
+
result.push([key, value]);
|
|
17
|
+
});
|
|
18
|
+
return orderBy(result, [0, 1]);
|
|
19
|
+
}
|
|
20
|
+
function setToArray(set) {
|
|
21
|
+
var result = [];
|
|
22
|
+
set.forEach(function (value) {
|
|
23
|
+
result.push(value);
|
|
24
|
+
});
|
|
25
|
+
return orderBy(result);
|
|
26
|
+
}
|
|
27
|
+
function argToArray(arg) {
|
|
28
|
+
return arrayProtoSlice.call(arg);
|
|
29
|
+
}
|
|
30
|
+
function toBufferView(bufferSource) {
|
|
31
|
+
return new Uint8Array(bufferSource.buffer || bufferSource, bufferSource.byteOffset || 0, bufferSource.byteLength);
|
|
32
|
+
}
|
|
33
|
+
function isDomNode(obj) {
|
|
34
|
+
return isObjectLike(obj) && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string' && typeof obj.isEqualNode === 'function';
|
|
35
|
+
}
|
|
36
|
+
function isEqualDeep(value, other, customizer, strictCheck, valueStack, otherStack) {
|
|
37
|
+
if (eq(value, other, strictCheck)) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
var valType = typeof value;
|
|
41
|
+
var othType = typeof other;
|
|
42
|
+
if (strictCheck && valType !== othType) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (isNil(value) || isNil(other) || (valType !== 'object' && othType !== 'object')) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
var tag = getTagWithBugfix(value);
|
|
49
|
+
if (tag !== getTagWithBugfix(other)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
var convert;
|
|
53
|
+
switch (tag) {
|
|
54
|
+
case numberTag:
|
|
55
|
+
return eq(+value, +other, strictCheck);
|
|
56
|
+
case booleanTag:
|
|
57
|
+
case dateTag:
|
|
58
|
+
return strictCheck ? +value === +other : eq(+value, +other);
|
|
59
|
+
case stringTag:
|
|
60
|
+
case regExpTag:
|
|
61
|
+
return '' + value === '' + other;
|
|
62
|
+
case symbolTag:
|
|
63
|
+
return symbolValueOf ? symbolValueOf.call(value) === symbolValueOf.call(other) : false;
|
|
64
|
+
case errorTag:
|
|
65
|
+
return value.name === other.name && value.message === other.message;
|
|
66
|
+
case dataViewTag:
|
|
67
|
+
case arrayBufferTag:
|
|
68
|
+
if (value.byteLength !== other.byteLength || (value.byteOffset && value.byteOffset !== other.byteOffset)) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
convert = toBufferView;
|
|
72
|
+
break;
|
|
73
|
+
case mapTag:
|
|
74
|
+
convert = mapToArray;
|
|
75
|
+
break;
|
|
76
|
+
case setTag:
|
|
77
|
+
convert = setToArray;
|
|
78
|
+
break;
|
|
79
|
+
case argumentsTag:
|
|
80
|
+
convert = argToArray;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
if (convert) {
|
|
84
|
+
return isEqualDeep(convert(value), convert(other), customizer, strictCheck, valueStack, otherStack);
|
|
85
|
+
}
|
|
86
|
+
if (isDomNode(value) && isDomNode(other)) {
|
|
87
|
+
return value.isEqualNode(other);
|
|
88
|
+
}
|
|
89
|
+
var areArrays = tag === arrayTag;
|
|
90
|
+
if (!areArrays && isTypedArray(value)) {
|
|
91
|
+
if (value.byteLength !== other.byteLength) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (value.buffer === other.buffer && value.byteOffset === other.byteOffset) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
areArrays = true;
|
|
98
|
+
}
|
|
99
|
+
if (isBuffer(value)) {
|
|
100
|
+
if (!isBuffer(other)) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
areArrays = true;
|
|
104
|
+
}
|
|
105
|
+
valueStack = valueStack || [];
|
|
106
|
+
otherStack = otherStack || [];
|
|
107
|
+
var length = valueStack.length;
|
|
108
|
+
while (length--) {
|
|
109
|
+
if (valueStack[length] === value) {
|
|
110
|
+
return otherStack[length] === other;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
valueStack.push(value);
|
|
114
|
+
otherStack.push(other);
|
|
115
|
+
var result = true;
|
|
116
|
+
var hasCustomizer = typeof customizer === 'function';
|
|
117
|
+
if (areArrays) {
|
|
118
|
+
length = value.length;
|
|
119
|
+
if (length !== other.length) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
while (length--) {
|
|
123
|
+
if (hasCustomizer) {
|
|
124
|
+
var compared = customizer(value[length], other[length], length, value, other, valueStack, otherStack);
|
|
125
|
+
if (compared !== undefined) {
|
|
126
|
+
if (!compared) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (!isEqualDeep(value[length], other[length], customizer, strictCheck, valueStack, otherStack)) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (tag === objectTag) {
|
|
138
|
+
var keys = allKeys(value);
|
|
139
|
+
length = keys.length;
|
|
140
|
+
if (allKeys(other).length !== length) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
var skipCtor = false;
|
|
144
|
+
while (length--) {
|
|
145
|
+
var key = keys[length];
|
|
146
|
+
if (hasCustomizer) {
|
|
147
|
+
var compared = customizer(value[key], other[key], key, value, other, valueStack, otherStack);
|
|
148
|
+
if (compared !== undefined) {
|
|
149
|
+
if (!compared) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (!(objectProtoHasOwnProperty.call(other, key) && isEqualDeep(value[key], other[key], customizer, strictCheck, valueStack, otherStack))) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
if (!skipCtor && key === 'constructor') {
|
|
159
|
+
skipCtor = true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (!skipCtor) {
|
|
163
|
+
var valCtor = value.constructor;
|
|
164
|
+
var othCtor = other.constructor;
|
|
165
|
+
if (valCtor !== othCtor && !(isFunction(valCtor) && valCtor instanceof valCtor && isFunction(othCtor) && othCtor instanceof othCtor) && 'constructor' in value && 'constructor' in other) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
result = false;
|
|
172
|
+
}
|
|
173
|
+
valueStack.pop();
|
|
174
|
+
otherStack.pop();
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export { isEqualDeep as default };
|
package/es/internals/native.js
CHANGED
|
@@ -9,10 +9,8 @@ var functionProto = Function.prototype;
|
|
|
9
9
|
var functionProtoToString = functionProto.toString;
|
|
10
10
|
var symbolExisted = typeof Symbol !== 'undefined';
|
|
11
11
|
var symbolProto = symbolExisted ? Symbol.prototype : undefined;
|
|
12
|
-
var symbolToStringTag = symbolExisted ? Symbol.toStringTag : undefined;
|
|
13
12
|
var arrayProto = Array.prototype;
|
|
14
13
|
var arrayProtoSlice = arrayProto.slice;
|
|
15
|
-
var arrayProtoAt = arrayProto.at;
|
|
16
14
|
var mathMin = Math.min;
|
|
17
15
|
var mathMax = Math.max;
|
|
18
16
|
var mathRandom = Math.random;
|
|
@@ -50,4 +48,4 @@ var promiseTag = '[object Promise]';
|
|
|
50
48
|
var setTag = '[object Set]';
|
|
51
49
|
var weakMapTag = '[object WeakMap]';
|
|
52
50
|
|
|
53
|
-
export { MAX_ARRAY_LENGTH, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, argumentsTag, arrayBufferTag, arrayProto,
|
|
51
|
+
export { MAX_ARRAY_LENGTH, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, argumentsTag, arrayBufferTag, arrayProto, arrayProtoSlice, arrayTag, blobTag, booleanTag, dataViewTag, dateTag, domExceptionTag, errorTag, functionProto, functionProtoToString, functionTags, globalExisted, globalThisExisted, mapTag, mathAbs, mathCeil, mathFloor, mathMax, mathMin, mathRandom, numberIsFinite, numberIsInteger, numberIsSafeInteger, numberTag, objectGetOwnPropertySymbols, objectGetPrototypeOf, objectKeys, objectProto, objectProtoHasOwnProperty, objectProtoPropertyIsEnumerable, objectProtoToString, objectTag, promiseTag, regExpTag, selfExisted, setTag, stringTag, symbolProto, symbolTag, typedArrayTags, weakMapTag, weakSetTag };
|
package/es/isArguments.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { argumentsTag, objectProtoHasOwnProperty, objectProtoPropertyIsEnumerable } from './internals/native.js';
|
|
2
2
|
import { supportedArgumentsType } from './internals/helpers.js';
|
|
3
3
|
import isObjectLike from './isObjectLike.js';
|
|
4
|
+
import getTag from './internals/getTag.js';
|
|
4
5
|
|
|
5
6
|
function isArguments(value) {
|
|
6
7
|
if (supportedArgumentsType) {
|
|
7
|
-
return
|
|
8
|
+
return getTag(value) === argumentsTag;
|
|
8
9
|
}
|
|
9
10
|
return isObjectLike(value) && objectProtoHasOwnProperty.call(value, 'callee') && !objectProtoPropertyIsEnumerable.call(value, 'callee');
|
|
10
11
|
}
|
package/es/isArrayBuffer.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
2
|
+
import { arrayBufferTag } from './internals/native.js';
|
|
2
3
|
import { nodeIsArrayBuffer } from './internals/nodeUtil.js';
|
|
3
4
|
|
|
4
5
|
function isArrayBuffer(value) {
|
|
5
|
-
return nodeIsArrayBuffer ? nodeIsArrayBuffer(value) :
|
|
6
|
+
return nodeIsArrayBuffer ? nodeIsArrayBuffer(value) : getTag(value) === arrayBufferTag;
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export { isArrayBuffer as default };
|
package/es/isBlob.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
2
|
+
import { blobTag } from './internals/native.js';
|
|
2
3
|
|
|
3
4
|
var blobExisted = typeof Blob !== 'undefined';
|
|
4
5
|
function isBlob(value) {
|
|
5
6
|
if (blobExisted && value instanceof Blob) {
|
|
6
7
|
return true;
|
|
7
8
|
}
|
|
8
|
-
return
|
|
9
|
+
return getTag(value) === blobTag;
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export { isBlob as default };
|
package/es/isBoolean.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
2
|
+
import { booleanTag } from './internals/native.js';
|
|
2
3
|
|
|
3
4
|
function isBoolean(value) {
|
|
4
|
-
return value === true || value === false ||
|
|
5
|
+
return value === true || value === false || getTag(value) === booleanTag;
|
|
5
6
|
}
|
|
6
7
|
|
|
7
8
|
export { isBoolean as default };
|
package/es/isDate.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
2
|
+
import { dateTag } from './internals/native.js';
|
|
2
3
|
import { nodeIsDate } from './internals/nodeUtil.js';
|
|
3
4
|
|
|
4
5
|
function isDate(value) {
|
|
5
|
-
return nodeIsDate ? nodeIsDate(value) :
|
|
6
|
+
return nodeIsDate ? nodeIsDate(value) : getTag(value) === dateTag;
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export { isDate as default };
|
package/es/isEmpty.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
1
2
|
import keys from './internals/keys.js';
|
|
3
|
+
import { mapTag, setTag } from './internals/native.js';
|
|
2
4
|
import isArrayLike from './isArrayLike.js';
|
|
3
|
-
import isMap from './isMap.js';
|
|
4
5
|
import isObjectLike from './isObjectLike.js';
|
|
5
|
-
import isSet from './isSet.js';
|
|
6
6
|
|
|
7
7
|
function isEmpty(value) {
|
|
8
8
|
if (value == null) {
|
|
9
9
|
return true;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
var tag = getTag(value);
|
|
12
|
+
if (tag === mapTag || tag === setTag) {
|
|
12
13
|
return !value.size;
|
|
13
14
|
}
|
|
14
15
|
if (isObjectLike(value)) {
|
package/es/isEqual.js
CHANGED
|
@@ -1,179 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import eq from './eq.js';
|
|
3
|
-
import getTagWithBugfix from './internals/getTagWithBugfix.js';
|
|
4
|
-
import { symbolProto, arrayBufferTag, dataViewTag, errorTag, symbolTag, regExpTag, stringTag, dateTag, booleanTag, numberTag, objectTag, objectProtoHasOwnProperty, argumentsTag, setTag, mapTag, arrayTag, arrayProtoSlice } from './internals/native.js';
|
|
5
|
-
import isBuffer from './isBuffer.js';
|
|
6
|
-
import isFunction from './isFunction.js';
|
|
7
|
-
import isNil from './isNil.js';
|
|
8
|
-
import isObjectLike from './isObjectLike.js';
|
|
9
|
-
import isTypedArray from './isTypedArray.js';
|
|
10
|
-
import orderBy from './orderBy.js';
|
|
1
|
+
import isEqualDeep from './internals/isEqualDeep.js';
|
|
11
2
|
|
|
12
|
-
var symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
|
|
13
|
-
function mapToArray(map) {
|
|
14
|
-
var result = [];
|
|
15
|
-
map.forEach(function (value, key) {
|
|
16
|
-
result.push([key, value]);
|
|
17
|
-
});
|
|
18
|
-
return orderBy(result, [0, 1]);
|
|
19
|
-
}
|
|
20
|
-
function setToArray(set) {
|
|
21
|
-
var result = [];
|
|
22
|
-
set.forEach(function (value) {
|
|
23
|
-
result.push(value);
|
|
24
|
-
});
|
|
25
|
-
return orderBy(result);
|
|
26
|
-
}
|
|
27
|
-
function argToArray(arg) {
|
|
28
|
-
return arrayProtoSlice.call(arg);
|
|
29
|
-
}
|
|
30
|
-
function toBufferView(bufferSource) {
|
|
31
|
-
return new Uint8Array(bufferSource.buffer || bufferSource, bufferSource.byteOffset || 0, bufferSource.byteLength);
|
|
32
|
-
}
|
|
33
|
-
function isDomNode(obj) {
|
|
34
|
-
return isObjectLike(obj) && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string' && typeof obj.isEqualNode === 'function';
|
|
35
|
-
}
|
|
36
|
-
function isEqualDeep(value, other, customizer, strictCheck, valueStack, otherStack) {
|
|
37
|
-
if (eq(value, other, strictCheck)) {
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
var valType = typeof value;
|
|
41
|
-
var othType = typeof other;
|
|
42
|
-
if (strictCheck && valType !== othType) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
if (isNil(value) || isNil(other) || (valType !== 'object' && othType !== 'object')) {
|
|
46
|
-
return false;
|
|
47
|
-
}
|
|
48
|
-
var tag = getTagWithBugfix(value);
|
|
49
|
-
if (tag !== getTagWithBugfix(other)) {
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
var convert;
|
|
53
|
-
switch (tag) {
|
|
54
|
-
case numberTag:
|
|
55
|
-
return eq(+value, +other, strictCheck);
|
|
56
|
-
case booleanTag:
|
|
57
|
-
case dateTag:
|
|
58
|
-
return strictCheck ? +value === +other : eq(+value, +other);
|
|
59
|
-
case stringTag:
|
|
60
|
-
case regExpTag:
|
|
61
|
-
return '' + value === '' + other;
|
|
62
|
-
case symbolTag:
|
|
63
|
-
return symbolValueOf ? symbolValueOf.call(value) === symbolValueOf.call(other) : false;
|
|
64
|
-
case errorTag:
|
|
65
|
-
return value.name == other.name && value.message == other.message;
|
|
66
|
-
case dataViewTag:
|
|
67
|
-
case arrayBufferTag:
|
|
68
|
-
if (value.byteLength !== other.byteLength || (value.byteOffset && value.byteOffset !== other.byteOffset)) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
convert = toBufferView;
|
|
72
|
-
break;
|
|
73
|
-
case mapTag:
|
|
74
|
-
convert = mapToArray;
|
|
75
|
-
break;
|
|
76
|
-
case setTag:
|
|
77
|
-
convert = setToArray;
|
|
78
|
-
break;
|
|
79
|
-
case argumentsTag:
|
|
80
|
-
convert = argToArray;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
83
|
-
if (convert) {
|
|
84
|
-
return isEqualDeep(convert(value), convert(other), customizer, strictCheck, valueStack, otherStack);
|
|
85
|
-
}
|
|
86
|
-
if (isDomNode(value) && isDomNode(other)) {
|
|
87
|
-
return value.isEqualNode(other);
|
|
88
|
-
}
|
|
89
|
-
var areArrays = tag === arrayTag;
|
|
90
|
-
if (!areArrays && isTypedArray(value)) {
|
|
91
|
-
if (value.byteLength !== other.byteLength) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
if (value.buffer === other.buffer && value.byteOffset === other.byteOffset) {
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
areArrays = true;
|
|
98
|
-
}
|
|
99
|
-
if (isBuffer(value)) {
|
|
100
|
-
if (!isBuffer(other)) {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
areArrays = true;
|
|
104
|
-
}
|
|
105
|
-
valueStack = valueStack || [];
|
|
106
|
-
otherStack = otherStack || [];
|
|
107
|
-
var length = valueStack.length;
|
|
108
|
-
while (length--) {
|
|
109
|
-
if (valueStack[length] === value) {
|
|
110
|
-
return otherStack[length] === other;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
valueStack.push(value);
|
|
114
|
-
otherStack.push(other);
|
|
115
|
-
var result = true;
|
|
116
|
-
var hasCustomizer = typeof customizer === 'function';
|
|
117
|
-
if (areArrays) {
|
|
118
|
-
length = value.length;
|
|
119
|
-
if (length !== other.length) {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
while (length--) {
|
|
123
|
-
if (hasCustomizer) {
|
|
124
|
-
var compared = customizer(value[length], other[length], length, value, other, valueStack, otherStack);
|
|
125
|
-
if (compared !== undefined) {
|
|
126
|
-
if (!compared) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
continue;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (!isEqualDeep(value[length], other[length], customizer, strictCheck, valueStack, otherStack)) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
else if (tag === objectTag) {
|
|
138
|
-
var keys = allKeys(value);
|
|
139
|
-
length = keys.length;
|
|
140
|
-
if (allKeys(other).length !== length) {
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
var skipCtor = false;
|
|
144
|
-
while (length--) {
|
|
145
|
-
var key = keys[length];
|
|
146
|
-
if (hasCustomizer) {
|
|
147
|
-
var compared = customizer(value[key], other[key], key, value, other, valueStack, otherStack);
|
|
148
|
-
if (compared !== undefined) {
|
|
149
|
-
if (!compared) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
continue;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (!(objectProtoHasOwnProperty.call(other, key) && isEqualDeep(value[key], other[key], customizer, strictCheck, valueStack, otherStack))) {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
if (!skipCtor && key === 'constructor') {
|
|
159
|
-
skipCtor = true;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
if (!skipCtor) {
|
|
163
|
-
var valCtor = value.constructor;
|
|
164
|
-
var othCtor = other.constructor;
|
|
165
|
-
if (valCtor !== othCtor && !(isFunction(valCtor) && valCtor instanceof valCtor && isFunction(othCtor) && othCtor instanceof othCtor) && 'constructor' in value && 'constructor' in other) {
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
result = false;
|
|
172
|
-
}
|
|
173
|
-
valueStack.pop();
|
|
174
|
-
otherStack.pop();
|
|
175
|
-
return result;
|
|
176
|
-
}
|
|
177
3
|
function isEqual(value, other, customizer, strictCheck) {
|
|
178
4
|
if (strictCheck === void 0) { strictCheck = false; }
|
|
179
5
|
if (typeof customizer === 'function') {
|
package/es/isError.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
2
|
+
import { errorTag, domExceptionTag } from './internals/native.js';
|
|
2
3
|
import isObjectLike from './isObjectLike.js';
|
|
3
4
|
|
|
4
5
|
function isError(value) {
|
|
@@ -8,7 +9,7 @@ function isError(value) {
|
|
|
8
9
|
if (value instanceof Error) {
|
|
9
10
|
return true;
|
|
10
11
|
}
|
|
11
|
-
var tag =
|
|
12
|
+
var tag = getTag(value);
|
|
12
13
|
return tag === errorTag || tag === domExceptionTag;
|
|
13
14
|
}
|
|
14
15
|
|
package/es/isFunction.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTag from './internals/getTag.js';
|
|
2
|
+
import { functionTags } from './internals/native.js';
|
|
2
3
|
|
|
3
4
|
function isFunction(value) {
|
|
4
5
|
if (typeof value === 'function') {
|
|
5
6
|
return true;
|
|
6
7
|
}
|
|
7
|
-
var tag =
|
|
8
|
+
var tag = getTag(value);
|
|
8
9
|
return functionTags.some(function (item) { return item === tag; });
|
|
9
10
|
}
|
|
10
11
|
|