es-toolkit 1.12.0 → 1.13.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/CHANGELOG.md +16 -5
- package/dist/array/chunk.mjs +1 -1
- package/dist/array/compact.mjs +1 -1
- package/dist/array/countBy.mjs +1 -1
- package/dist/array/difference.mjs +1 -1
- package/dist/array/differenceBy.mjs +1 -1
- package/dist/array/differenceWith.mjs +1 -1
- package/dist/array/drop.mjs +1 -1
- package/dist/array/dropRight.mjs +1 -1
- package/dist/array/dropRightWhile.mjs +1 -1
- package/dist/array/dropWhile.mjs +1 -1
- package/dist/array/fill.mjs +1 -1
- package/dist/array/flatMap.mjs +1 -1
- package/dist/array/flatten.mjs +1 -1
- package/dist/array/flattenDeep.mjs +1 -1
- package/dist/array/forEachRight.mjs +1 -1
- package/dist/array/groupBy.mjs +1 -1
- package/dist/array/head.mjs +1 -1
- package/dist/array/index.js.map +1 -1
- package/dist/array/index.mjs +14 -14
- package/dist/array/initial.mjs +1 -1
- package/dist/array/intersection.mjs +1 -1
- package/dist/array/intersectionBy.mjs +1 -1
- package/dist/array/intersectionWith.mjs +1 -1
- package/dist/array/keyBy.mjs +1 -1
- package/dist/array/last.mjs +1 -1
- package/dist/array/maxBy.mjs +1 -1
- package/dist/array/minBy.mjs +1 -1
- package/dist/array/orderBy.mjs +1 -1
- package/dist/array/partition.mjs +1 -1
- package/dist/array/sample.mjs +1 -1
- package/dist/array/sampleSize.mjs +1 -1
- package/dist/array/shuffle.mjs +1 -1
- package/dist/array/tail.d.mts +24 -0
- package/dist/array/tail.d.ts +24 -0
- package/dist/array/tail.js.map +1 -1
- package/dist/array/tail.mjs +2 -2
- package/dist/array/take.mjs +1 -1
- package/dist/array/takeRight.mjs +1 -1
- package/dist/array/takeRightWhile.mjs +1 -1
- package/dist/array/takeWhile.mjs +1 -1
- package/dist/array/toFilled.mjs +1 -1
- package/dist/array/union.mjs +1 -1
- package/dist/array/unionBy.mjs +1 -1
- package/dist/array/unionWith.mjs +1 -1
- package/dist/array/uniq.mjs +1 -1
- package/dist/array/uniqBy.mjs +1 -1
- package/dist/array/uniqWith.mjs +1 -1
- package/dist/array/unzip.mjs +1 -1
- package/dist/array/unzipWith.mjs +1 -1
- package/dist/array/without.mjs +1 -1
- package/dist/array/xor.mjs +1 -1
- package/dist/array/xorBy.mjs +1 -1
- package/dist/array/xorWith.mjs +1 -1
- package/dist/array/zip.mjs +1 -1
- package/dist/array/zipObject.mjs +1 -1
- package/dist/array/zipWith.mjs +1 -1
- package/dist/browser.d.mts +2 -0
- package/dist/browser.d.ts +2 -0
- package/dist/browser.js +1108 -0
- package/dist/browser.js.map +1 -0
- package/dist/browser.mjs +108 -0
- package/dist/browser.mjs.map +1 -0
- package/dist/{chunk-424M7IR7.mjs → chunk-24FKGR6U.mjs} +6 -1
- package/dist/chunk-27QMXBLJ.mjs +9 -0
- package/dist/chunk-27QMXBLJ.mjs.map +1 -0
- package/dist/chunk-54TK5BIS.mjs +1 -0
- package/dist/chunk-B645AYL4.mjs +1 -0
- package/dist/{chunk-J3GE7DEU.mjs → chunk-CVVZHOJX.mjs} +2 -2
- package/dist/{chunk-XWPCDIFC.mjs → chunk-IIDZ3KAJ.mjs} +3 -3
- package/dist/chunk-MIGAC7F4.mjs +25 -0
- package/dist/chunk-MIGAC7F4.mjs.map +1 -0
- package/dist/chunk-SPKLWVNJ.mjs +373 -0
- package/dist/chunk-SPKLWVNJ.mjs.map +1 -0
- package/dist/{chunk-OF6NM4G7.mjs → chunk-TJ4Z5I7M.mjs} +1 -1
- package/dist/{chunk-OF6NM4G7.mjs.map → chunk-TJ4Z5I7M.mjs.map} +1 -1
- package/dist/{chunk-U7V3G7CR.mjs → chunk-WFZXCGEG.mjs} +2 -2
- package/dist/chunk-XGQWTHW6.mjs +34 -0
- package/dist/chunk-XGQWTHW6.mjs.map +1 -0
- package/dist/compat/index.d.mts +59 -3
- package/dist/compat/index.d.ts +59 -3
- package/dist/compat/index.js +105 -1
- package/dist/compat/index.js.map +1 -1
- package/dist/compat/index.mjs +105 -51
- package/dist/compat/index.mjs.map +1 -1
- package/dist/error/AbortError.mjs +1 -1
- package/dist/error/TimeoutError.mjs +1 -1
- package/dist/error/index.mjs +1 -1
- package/dist/function/debounce.mjs +1 -1
- package/dist/function/index.mjs +4 -4
- package/dist/function/negate.mjs +1 -1
- package/dist/function/noop.mjs +1 -1
- package/dist/function/once.mjs +1 -1
- package/dist/function/throttle.mjs +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +62 -50
- package/dist/math/clamp.mjs +1 -1
- package/dist/math/inRange.mjs +1 -1
- package/dist/math/index.mjs +7 -7
- package/dist/math/mean.mjs +1 -1
- package/dist/math/meanBy.mjs +1 -1
- package/dist/math/random.mjs +1 -1
- package/dist/math/randomInt.mjs +1 -1
- package/dist/math/range.mjs +1 -1
- package/dist/math/round.mjs +1 -1
- package/dist/math/sum.mjs +1 -1
- package/dist/math/sumBy.mjs +1 -1
- package/dist/object/clone.mjs +1 -1
- package/dist/object/flattenObject.d.mts +28 -0
- package/dist/object/flattenObject.d.ts +28 -0
- package/dist/object/flattenObject.js +77 -0
- package/dist/object/flattenObject.js.map +1 -0
- package/dist/object/flattenObject.mjs +9 -0
- package/dist/object/index.d.mts +1 -0
- package/dist/object/index.d.ts +1 -0
- package/dist/object/index.js +49 -0
- package/dist/object/index.js.map +1 -1
- package/dist/object/index.mjs +14 -9
- package/dist/object/invert.mjs +1 -1
- package/dist/object/omit.mjs +2 -2
- package/dist/object/omitBy.mjs +1 -1
- package/dist/object/pick.mjs +1 -1
- package/dist/object/pickBy.mjs +1 -1
- package/dist/predicate/index.d.mts +2 -0
- package/dist/predicate/index.d.ts +2 -0
- package/dist/predicate/index.js +30 -0
- package/dist/predicate/index.js.map +1 -1
- package/dist/predicate/index.mjs +15 -7
- package/dist/predicate/isEqual.mjs +1 -1
- package/dist/predicate/isLength.d.mts +3 -0
- package/dist/predicate/isLength.d.ts +3 -0
- package/dist/predicate/isLength.js +33 -0
- package/dist/predicate/isLength.js.map +1 -0
- package/dist/predicate/isLength.mjs +8 -0
- package/dist/predicate/isLength.mjs.map +1 -0
- package/dist/predicate/isNil.mjs +1 -1
- package/dist/predicate/isNotNil.mjs +1 -1
- package/dist/predicate/isNull.mjs +1 -1
- package/dist/predicate/isPlainObject.d.mts +16 -0
- package/dist/predicate/isPlainObject.d.ts +16 -0
- package/dist/predicate/isPlainObject.js +49 -0
- package/dist/predicate/isPlainObject.js.map +1 -0
- package/dist/predicate/isPlainObject.mjs +8 -0
- package/dist/predicate/isPlainObject.mjs.map +1 -0
- package/dist/predicate/isUndefined.mjs +1 -1
- package/dist/promise/delay.mjs +1 -1
- package/dist/promise/index.mjs +3 -3
- package/dist/promise/timeout.mjs +2 -2
- package/dist/promise/withTimeout.mjs +3 -3
- package/dist/string/camelCase.mjs +1 -1
- package/dist/string/capitalize.mjs +1 -1
- package/dist/string/index.mjs +7 -7
- package/dist/string/kebabCase.mjs +1 -1
- package/dist/string/lowerCase.mjs +1 -1
- package/dist/string/snakeCase.mjs +1 -1
- package/dist/string/startCase.mjs +1 -1
- package/package.json +3 -1
- package/umd/browser.global.js +2 -0
- package/dist/chunk-ASJF5D6C.mjs +0 -1
- package/dist/chunk-NKLIE2OI.mjs +0 -1
- package/dist/chunk-OSOLEQLZ.mjs +0 -1
- /package/dist/{chunk-424M7IR7.mjs.map → chunk-24FKGR6U.mjs.map} +0 -0
- /package/dist/{chunk-ASJF5D6C.mjs.map → chunk-54TK5BIS.mjs.map} +0 -0
- /package/dist/{chunk-NKLIE2OI.mjs.map → chunk-B645AYL4.mjs.map} +0 -0
- /package/dist/{chunk-J3GE7DEU.mjs.map → chunk-CVVZHOJX.mjs.map} +0 -0
- /package/dist/{chunk-XWPCDIFC.mjs.map → chunk-IIDZ3KAJ.mjs.map} +0 -0
- /package/dist/{chunk-U7V3G7CR.mjs.map → chunk-WFZXCGEG.mjs.map} +0 -0
- /package/dist/{chunk-OSOLEQLZ.mjs.map → object/flattenObject.mjs.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -76,6 +76,7 @@ __export(src_exports, {
|
|
|
76
76
|
flatMap: () => flatMap,
|
|
77
77
|
flatten: () => flatten,
|
|
78
78
|
flattenDeep: () => flattenDeep,
|
|
79
|
+
flattenObject: () => flattenObject,
|
|
79
80
|
forEachRight: () => forEachRight,
|
|
80
81
|
groupBy: () => groupBy,
|
|
81
82
|
head: () => head,
|
|
@@ -86,9 +87,11 @@ __export(src_exports, {
|
|
|
86
87
|
intersectionWith: () => intersectionWith,
|
|
87
88
|
invert: () => invert,
|
|
88
89
|
isEqual: () => isEqual,
|
|
90
|
+
isLength: () => isLength,
|
|
89
91
|
isNil: () => isNil,
|
|
90
92
|
isNotNil: () => isNotNil,
|
|
91
93
|
isNull: () => isNull,
|
|
94
|
+
isPlainObject: () => isPlainObject,
|
|
92
95
|
isUndefined: () => isUndefined,
|
|
93
96
|
kebabCase: () => kebabCase,
|
|
94
97
|
keyBy: () => keyBy,
|
|
@@ -917,6 +920,53 @@ function isPrimitive(value) {
|
|
|
917
920
|
return value == null || typeof value !== "object" && typeof value !== "function";
|
|
918
921
|
}
|
|
919
922
|
|
|
923
|
+
// src/predicate/isPlainObject.ts
|
|
924
|
+
function isPlainObject(object) {
|
|
925
|
+
if (typeof object !== "object") {
|
|
926
|
+
return false;
|
|
927
|
+
}
|
|
928
|
+
if (object == null) {
|
|
929
|
+
return false;
|
|
930
|
+
}
|
|
931
|
+
if (Object.getPrototypeOf(object) === null) {
|
|
932
|
+
return true;
|
|
933
|
+
}
|
|
934
|
+
if (object.toString() !== "[object Object]") {
|
|
935
|
+
return false;
|
|
936
|
+
}
|
|
937
|
+
let proto = object;
|
|
938
|
+
while (Object.getPrototypeOf(proto) !== null) {
|
|
939
|
+
proto = Object.getPrototypeOf(proto);
|
|
940
|
+
}
|
|
941
|
+
return Object.getPrototypeOf(object) === proto;
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
// src/object/flattenObject.ts
|
|
945
|
+
function flattenObject(object) {
|
|
946
|
+
return flattenObjectImpl(object);
|
|
947
|
+
}
|
|
948
|
+
function flattenObjectImpl(object, prefix = "") {
|
|
949
|
+
const result = {};
|
|
950
|
+
const keys = Object.keys(object);
|
|
951
|
+
for (let i = 0; i < keys.length; i++) {
|
|
952
|
+
const key = keys[i];
|
|
953
|
+
const value = object[key];
|
|
954
|
+
const prefixedKey = prefix ? `${prefix}.${key}` : key;
|
|
955
|
+
if (isPlainObject(value) && Object.keys(value).length > 0) {
|
|
956
|
+
Object.assign(result, flattenObjectImpl(value, prefixedKey));
|
|
957
|
+
continue;
|
|
958
|
+
}
|
|
959
|
+
if (Array.isArray(value)) {
|
|
960
|
+
for (let index = 0; index < value.length; index++) {
|
|
961
|
+
result[`${prefixedKey}.${index}`] = value[index];
|
|
962
|
+
}
|
|
963
|
+
continue;
|
|
964
|
+
}
|
|
965
|
+
result[prefixedKey] = value;
|
|
966
|
+
}
|
|
967
|
+
return result;
|
|
968
|
+
}
|
|
969
|
+
|
|
920
970
|
// src/predicate/isEqual.ts
|
|
921
971
|
function isEqual(a, b) {
|
|
922
972
|
if (Object.is(a, b)) {
|
|
@@ -970,6 +1020,11 @@ function isUndefined(x) {
|
|
|
970
1020
|
return x === void 0;
|
|
971
1021
|
}
|
|
972
1022
|
|
|
1023
|
+
// src/predicate/isLength.ts
|
|
1024
|
+
function isLength(value) {
|
|
1025
|
+
return typeof value === "number" && value > -1 && value % 1 === 0 && value <= Number.MAX_SAFE_INTEGER;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
973
1028
|
// src/promise/delay.ts
|
|
974
1029
|
function delay(ms, { signal } = {}) {
|
|
975
1030
|
return new Promise((resolve, reject) => {
|
|
@@ -1083,6 +1138,7 @@ function startCase(str) {
|
|
|
1083
1138
|
flatMap,
|
|
1084
1139
|
flatten,
|
|
1085
1140
|
flattenDeep,
|
|
1141
|
+
flattenObject,
|
|
1086
1142
|
forEachRight,
|
|
1087
1143
|
groupBy,
|
|
1088
1144
|
head,
|
|
@@ -1093,9 +1149,11 @@ function startCase(str) {
|
|
|
1093
1149
|
intersectionWith,
|
|
1094
1150
|
invert,
|
|
1095
1151
|
isEqual,
|
|
1152
|
+
isLength,
|
|
1096
1153
|
isNil,
|
|
1097
1154
|
isNotNil,
|
|
1098
1155
|
isNull,
|
|
1156
|
+
isPlainObject,
|
|
1099
1157
|
isUndefined,
|
|
1100
1158
|
kebabCase,
|
|
1101
1159
|
keyBy,
|