es-toolkit 1.10.1-dev.242 → 1.10.1-dev.244
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/dist/array/fill.d.mts +9 -6
- package/dist/array/fill.d.ts +9 -6
- package/dist/array/fill.js +7 -6
- package/dist/array/fill.js.map +1 -1
- package/dist/array/fill.mjs +1 -1
- package/dist/array/index.js +7 -6
- package/dist/array/index.js.map +1 -1
- package/dist/array/index.mjs +32 -32
- package/dist/{chunk-MJA7DAOJ.mjs → chunk-QXTNZR7B.mjs} +1 -1
- package/dist/chunk-QXTNZR7B.mjs.map +1 -0
- package/dist/chunk-YFN6KOC4.mjs +15 -0
- package/dist/chunk-YFN6KOC4.mjs.map +1 -0
- package/dist/compat/index.js +7 -6
- package/dist/compat/index.js.map +1 -1
- package/dist/compat/index.mjs +57 -57
- package/dist/compat/index.mjs.map +1 -1
- package/dist/function/index.mjs +6 -6
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +57 -57
- package/dist/string/index.js.map +1 -1
- package/dist/string/index.mjs +1 -1
- package/dist/string/startCase.js.map +1 -1
- package/dist/string/startCase.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-6KP7CLVJ.mjs +0 -14
- package/dist/chunk-6KP7CLVJ.mjs.map +0 -1
- package/dist/chunk-MJA7DAOJ.mjs.map +0 -1
package/dist/compat/index.mjs
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "../chunk-F3WCQQET.mjs";
|
|
18
18
|
import {
|
|
19
19
|
startCase
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-QXTNZR7B.mjs";
|
|
21
21
|
import "../chunk-WVQ7YVRK.mjs";
|
|
22
22
|
import "../chunk-ASJF5D6C.mjs";
|
|
23
23
|
import {
|
|
@@ -77,6 +77,22 @@ import {
|
|
|
77
77
|
import {
|
|
78
78
|
sum
|
|
79
79
|
} from "../chunk-2SLTL4KL.mjs";
|
|
80
|
+
import "../chunk-236H5JZJ.mjs";
|
|
81
|
+
import {
|
|
82
|
+
debounce
|
|
83
|
+
} from "../chunk-3IP4JVLL.mjs";
|
|
84
|
+
import {
|
|
85
|
+
negate
|
|
86
|
+
} from "../chunk-BOOQBJN2.mjs";
|
|
87
|
+
import {
|
|
88
|
+
noop
|
|
89
|
+
} from "../chunk-LKXCOLNY.mjs";
|
|
90
|
+
import {
|
|
91
|
+
once
|
|
92
|
+
} from "../chunk-CMBC4MXG.mjs";
|
|
93
|
+
import {
|
|
94
|
+
throttle
|
|
95
|
+
} from "../chunk-QOJGMVVR.mjs";
|
|
80
96
|
import {
|
|
81
97
|
clamp
|
|
82
98
|
} from "../chunk-MLCL773E.mjs";
|
|
@@ -84,6 +100,12 @@ import {
|
|
|
84
100
|
inRange
|
|
85
101
|
} from "../chunk-BH6HLGBA.mjs";
|
|
86
102
|
import "../chunk-DDH7K4QM.mjs";
|
|
103
|
+
import {
|
|
104
|
+
unzipWith
|
|
105
|
+
} from "../chunk-IFNXROZR.mjs";
|
|
106
|
+
import {
|
|
107
|
+
without
|
|
108
|
+
} from "../chunk-PYEYV7BY.mjs";
|
|
87
109
|
import {
|
|
88
110
|
xor
|
|
89
111
|
} from "../chunk-L7FQX5MN.mjs";
|
|
@@ -102,12 +124,21 @@ import {
|
|
|
102
124
|
import {
|
|
103
125
|
zipWith
|
|
104
126
|
} from "../chunk-4KYXHZ4R.mjs";
|
|
127
|
+
import {
|
|
128
|
+
toFilled
|
|
129
|
+
} from "../chunk-OP4OAKQJ.mjs";
|
|
130
|
+
import {
|
|
131
|
+
union
|
|
132
|
+
} from "../chunk-R6QA7PLZ.mjs";
|
|
105
133
|
import {
|
|
106
134
|
unionBy
|
|
107
135
|
} from "../chunk-NFS7RWWE.mjs";
|
|
108
136
|
import {
|
|
109
137
|
unionWith
|
|
110
138
|
} from "../chunk-2ZCITDMK.mjs";
|
|
139
|
+
import {
|
|
140
|
+
uniq
|
|
141
|
+
} from "../chunk-DVK2N4KC.mjs";
|
|
111
142
|
import {
|
|
112
143
|
uniqBy
|
|
113
144
|
} from "../chunk-OXAZEEGP.mjs";
|
|
@@ -118,11 +149,17 @@ import {
|
|
|
118
149
|
unzip
|
|
119
150
|
} from "../chunk-UYZKMBDO.mjs";
|
|
120
151
|
import {
|
|
121
|
-
|
|
122
|
-
} from "../chunk-
|
|
152
|
+
sample
|
|
153
|
+
} from "../chunk-2KNLZB7V.mjs";
|
|
123
154
|
import {
|
|
124
|
-
|
|
125
|
-
} from "../chunk-
|
|
155
|
+
sampleSize
|
|
156
|
+
} from "../chunk-EHSKB6DF.mjs";
|
|
157
|
+
import {
|
|
158
|
+
randomInt
|
|
159
|
+
} from "../chunk-GIWAOOFY.mjs";
|
|
160
|
+
import {
|
|
161
|
+
random
|
|
162
|
+
} from "../chunk-SYWMYQYJ.mjs";
|
|
126
163
|
import {
|
|
127
164
|
shuffle
|
|
128
165
|
} from "../chunk-G7UQ5PUR.mjs";
|
|
@@ -142,14 +179,11 @@ import {
|
|
|
142
179
|
takeWhile
|
|
143
180
|
} from "../chunk-2IXFGSUA.mjs";
|
|
144
181
|
import {
|
|
145
|
-
|
|
146
|
-
} from "../chunk-
|
|
147
|
-
import {
|
|
148
|
-
union
|
|
149
|
-
} from "../chunk-R6QA7PLZ.mjs";
|
|
182
|
+
intersectionBy
|
|
183
|
+
} from "../chunk-O6UXZR3U.mjs";
|
|
150
184
|
import {
|
|
151
|
-
|
|
152
|
-
} from "../chunk-
|
|
185
|
+
intersectionWith
|
|
186
|
+
} from "../chunk-XI7KRD2C.mjs";
|
|
153
187
|
import {
|
|
154
188
|
keyBy
|
|
155
189
|
} from "../chunk-AJKZMN2V.mjs";
|
|
@@ -169,17 +203,8 @@ import {
|
|
|
169
203
|
partition
|
|
170
204
|
} from "../chunk-DN3NOZ3H.mjs";
|
|
171
205
|
import {
|
|
172
|
-
|
|
173
|
-
} from "../chunk-
|
|
174
|
-
import {
|
|
175
|
-
sampleSize
|
|
176
|
-
} from "../chunk-EHSKB6DF.mjs";
|
|
177
|
-
import {
|
|
178
|
-
randomInt
|
|
179
|
-
} from "../chunk-GIWAOOFY.mjs";
|
|
180
|
-
import {
|
|
181
|
-
random
|
|
182
|
-
} from "../chunk-SYWMYQYJ.mjs";
|
|
206
|
+
flattenDeep
|
|
207
|
+
} from "../chunk-ML727RRJ.mjs";
|
|
183
208
|
import {
|
|
184
209
|
forEachRight
|
|
185
210
|
} from "../chunk-IEA53J7P.mjs";
|
|
@@ -196,11 +221,11 @@ import {
|
|
|
196
221
|
intersection
|
|
197
222
|
} from "../chunk-FVVSE2F2.mjs";
|
|
198
223
|
import {
|
|
199
|
-
|
|
200
|
-
} from "../chunk-
|
|
224
|
+
differenceBy
|
|
225
|
+
} from "../chunk-LVWX5B43.mjs";
|
|
201
226
|
import {
|
|
202
|
-
|
|
203
|
-
} from "../chunk-
|
|
227
|
+
differenceWith
|
|
228
|
+
} from "../chunk-6NVQAHXP.mjs";
|
|
204
229
|
import {
|
|
205
230
|
drop
|
|
206
231
|
} from "../chunk-S3CORED5.mjs";
|
|
@@ -215,16 +240,17 @@ import {
|
|
|
215
240
|
} from "../chunk-LJ2C6MVP.mjs";
|
|
216
241
|
import {
|
|
217
242
|
fill
|
|
218
|
-
} from "../chunk-
|
|
243
|
+
} from "../chunk-YFN6KOC4.mjs";
|
|
219
244
|
import {
|
|
220
245
|
flatMap
|
|
221
246
|
} from "../chunk-UY76KTPE.mjs";
|
|
222
|
-
import {
|
|
223
|
-
flattenDeep
|
|
224
|
-
} from "../chunk-ML727RRJ.mjs";
|
|
225
247
|
import {
|
|
226
248
|
flatten
|
|
227
249
|
} from "../chunk-33MSBDC6.mjs";
|
|
250
|
+
import "../chunk-FZEZH22H.mjs";
|
|
251
|
+
import {
|
|
252
|
+
AbortError
|
|
253
|
+
} from "../chunk-DXB7EZUQ.mjs";
|
|
228
254
|
import {
|
|
229
255
|
chunk
|
|
230
256
|
} from "../chunk-E6C5EZQA.mjs";
|
|
@@ -237,32 +263,6 @@ import {
|
|
|
237
263
|
import {
|
|
238
264
|
difference
|
|
239
265
|
} from "../chunk-JPUKH67K.mjs";
|
|
240
|
-
import {
|
|
241
|
-
differenceBy
|
|
242
|
-
} from "../chunk-LVWX5B43.mjs";
|
|
243
|
-
import {
|
|
244
|
-
differenceWith
|
|
245
|
-
} from "../chunk-6NVQAHXP.mjs";
|
|
246
|
-
import "../chunk-FZEZH22H.mjs";
|
|
247
|
-
import {
|
|
248
|
-
AbortError
|
|
249
|
-
} from "../chunk-DXB7EZUQ.mjs";
|
|
250
|
-
import "../chunk-236H5JZJ.mjs";
|
|
251
|
-
import {
|
|
252
|
-
once
|
|
253
|
-
} from "../chunk-CMBC4MXG.mjs";
|
|
254
|
-
import {
|
|
255
|
-
throttle
|
|
256
|
-
} from "../chunk-QOJGMVVR.mjs";
|
|
257
|
-
import {
|
|
258
|
-
debounce
|
|
259
|
-
} from "../chunk-3IP4JVLL.mjs";
|
|
260
|
-
import {
|
|
261
|
-
negate
|
|
262
|
-
} from "../chunk-BOOQBJN2.mjs";
|
|
263
|
-
import {
|
|
264
|
-
noop
|
|
265
|
-
} from "../chunk-LKXCOLNY.mjs";
|
|
266
266
|
import "../chunk-2MM5EJJX.mjs";
|
|
267
267
|
|
|
268
268
|
// src/compat/array/chunk.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/compat/array/chunk.ts","../../src/compat/_internal/isIndex.ts","../../src/compat/_internal/toPath.ts","../../src/compat/object/set.ts","../../src/compat/array/zipObjectDeep.ts"],"sourcesContent":["import { chunk as chunkToolkit } from '../../array/chunk.ts';\n\n/**\n * Splits an array into smaller arrays of a specified length.\n *\n * This function takes an input array and divides it into multiple smaller arrays,\n * each of a specified length. If the input array cannot be evenly divided,\n * the final sub-array will contain the remaining elements.\n *\n * @template T The type of elements in the array.\n * @param {T[]} arr - The array to be chunked into smaller arrays.\n * @param {number} size - The size of each smaller array. Must be a positive integer.\n * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.\n * @throws {Error} Throws an error if `size` is not a positive integer.\n *\n * @example\n * // Splits an array of numbers into sub-arrays of length 2\n * chunk([1, 2, 3, 4, 5], 2);\n * // Returns: [[1, 2], [3, 4], [5]]\n *\n * @example\n * // Splits an array of strings into sub-arrays of length 3\n * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);\n * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]\n */\nexport function chunk<T>(arr: readonly T[], size: number = 1): T[][] {\n size = Math.max(Math.floor(size), 0);\n\n if (size === 0) {\n return [];\n }\n\n return chunkToolkit(arr, size);\n}\n","const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/\n\nexport function isIndex(value: PropertyKey) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < Number.MAX_SAFE_INTEGER;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}","const ESCAPE_REGEXP = /\\\\(\\\\)?/g;\nconst PROPERTY_REGEXP = RegExp(\n // Match anything that isn't a dot or bracket.\n \"[^.[\\\\]]+\" +\n \"|\" +\n // Or match property names within brackets.\n \"\\\\[(?:\" +\n // Match a non-string expression.\n \"([^\\\"'][^[]*)\" +\n \"|\" +\n // Or match strings (supports escaping characters).\n \"([\\\"'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2\" +\n \")\\\\]\" +\n \"|\" +\n // Or match \"\" as the space between consecutive dots or empty brackets.\n \"(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))\",\n \"g\",\n);\n\n/**\n * Converts a deep key string into an array of path segments.\n *\n * This function takes a string representing a deep key (e.g., 'a.b.c' or 'a[b][c]') and breaks it down into an array of strings, each representing a segment of the path.\n *\n * @param deepKey - The deep key string to convert.\n * @returns An array of strings, each representing a segment of the path.\n *\n * Examples:\n *\n * toPath('a.b.c') // Returns ['a', 'b', 'c']\n * toPath('a[b][c]') // Returns ['a', 'b', 'c']\n * toPath('.a.b.c') // Returns ['', 'a', 'b', 'c']\n * toPath('a[\"b.c\"].d') // Returns ['a', 'b.c', 'd']\n * toPath('') // Returns []\n * toPath('.a[b].c.d[e][\"f.g\"].h') // Returns ['', 'a', 'b', 'c', 'd', 'e', 'f.g', 'h']\n */\nexport function toPath(deepKey: string): string[] {\n const result: string[] = [];\n\n if (deepKey[0] === \".\") {\n result.push(\"\");\n }\n\n let match: RegExpExecArray | null;\n\n while ((match = PROPERTY_REGEXP.exec(deepKey)) !== null) {\n let [key, expr, quote, substr] = match;\n\n if (quote) {\n key = substr.replace(ESCAPE_REGEXP, \"$1\");\n } else if (expr) {\n key = expr.trim();\n }\n\n result.push(key);\n }\n\n return result;\n}\n","import { isIndex } from \"../_internal/isIndex\";\nimport { toPath } from \"../_internal/toPath\";\n\n/**\n * Sets the value at the specified path of the given object. If any part of the path does not exist, it will be created.\n *\n * @template T - The type of the object.\n * @param {Settable} obj - The object to modify.\n * @param {Path} path - The path of the property to set.\n * @param {any} value - The value to set.\n * @returns {T} - The modified object.\n *\n * @example\n * // Set a value in a nested object\n * const obj = { a: { b: { c: 3 } } };\n * set(obj, 'a.b.c', 4);\n * console.log(obj.a.b.c); // 4\n *\n * @example\n * // Set a value in an array\n * const arr = [1, 2, 3];\n * set(arr, 1, 4);\n * console.log(arr[1]); // 4\n *\n * @example\n * // Create non-existent path and set value\n * const obj = {};\n * set(obj, 'a.b.c', 4);\n * console.log(obj); // { a: { b: { c: 4 } } }\n */\nexport function set<T>(obj: object, path: PropertyKey | readonly PropertyKey[], value: unknown): T;\nexport function set<T extends object>(obj: T, path: PropertyKey | readonly PropertyKey[], value: unknown): T {\n const resolvedPath = Array.isArray(path)\n ? path\n : typeof path === 'string'\n ? toPath(path)\n : [path];\n\n let current: any = obj;\n\n for (let i = 0; i < resolvedPath.length - 1; i++) {\n const key = resolvedPath[i];\n const nextKey = resolvedPath[i + 1];\n\n if (current[key] == null) {\n current[key] = isIndex(nextKey) ? [] : {};\n }\n\n current = current[key];\n }\n\n const lastKey = resolvedPath[resolvedPath.length - 1];\n current[lastKey] = value;\n\n return obj;\n}\n","import { zip } from \"../../array/zip.ts\";\nimport { set } from \"../object/set.ts\";\n\n/**\n * Creates a deeply nested object given arrays of paths and values.\n *\n * This function takes two arrays: one containing arrays of property paths, and the other containing corresponding values.\n * It returns a new object where paths from the first array are used as key paths to set values, with corresponding elements from the second array as values.\n * Paths can be dot-separated strings or arrays of property names.\n * \n * If the `keys` array is longer than the `values` array, the remaining keys will have `undefined` as their values.\n *\n * @template V - The type of elements in the array.\n * @param {string[] | string[][]} keys - An array of property paths, each path can be a dot-separated string or an array of property names.\n * @param {V[]} values - An array of values corresponding to the property paths.\n * @returns {object} A new object composed of the given property paths and values.\n *\n * @example\n * const paths = ['a.b.c', 'd.e.f'];\n * const values = [1, 2];\n * const result = zipObjectDeep(paths, values);\n * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }\n *\n * @example\n * const paths = [['a', 'b', 'c'], ['d', 'e', 'f']];\n * const values = [1, 2];\n * const result = zipObjectDeep(paths, values);\n * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }\n * \n * @example\n * const paths = ['a.b[0].c', 'a.b[1].d'];\n * const values = [1, 2];\n * const result = zipObjectDeep(paths, values);\n * // result will be { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\nexport function zipObjectDeep<P extends string | number | symbol, V>(keys: P[], values: V[]): { [K in P]: V } {\n const result = {} as { [K in P]: V };\n const zipped = zip(keys, values);\n\n for (let i = 0; i < zipped.length; i++) {\n const [key, value] = zipped[i];\n\n if (key != null) {\n set(result, key, value);\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,SAASA,OAAS,KAAmB,OAAe,GAAU;AACnE,SAAO,KAAK,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC;AAEnC,MAAI,SAAS,GAAG;AACd,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,MAAa,KAAK,IAAI;AAC/B;;;ACjCA,IAAM,sBAAsB;AAErB,SAAS,QAAQ,OAAoB;AAC1C,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK,UAAU;AACb,aAAO,OAAO,UAAU,KAAK,KAAK,SAAS,KAAK,QAAQ,OAAO;AAAA,IACjE;AAAA,IACA,KAAK,UAAU;AACb,aAAO;AAAA,IACT;AAAA,IACA,KAAK,UAAU;AACb,aAAO,oBAAoB,KAAK,KAAK;AAAA,IACvC;AAAA,EACF;AACF;;;ACdA,IAAM,gBAAgB;AACtB,IAAM,kBAAkB;AAAA;AAAA,EAEtB;AAAA,EAaA;AACF;AAmBO,SAAS,OAAO,SAA2B;AAChD,QAAM,SAAmB,CAAC;AAE1B,MAAI,QAAQ,CAAC,MAAM,KAAK;AACtB,WAAO,KAAK,EAAE;AAAA,EAChB;AAEA,MAAI;AAEJ,UAAQ,QAAQ,gBAAgB,KAAK,OAAO,OAAO,MAAM;AACvD,QAAI,CAAC,KAAK,MAAM,OAAO,MAAM,IAAI;AAEjC,QAAI,OAAO;AACT,YAAM,OAAO,QAAQ,eAAe,IAAI;AAAA,IAC1C,WAAW,MAAM;AACf,YAAM,KAAK,KAAK;AAAA,IAClB;AAEA,WAAO,KAAK,GAAG;AAAA,EACjB;AAEA,SAAO;AACT;;;AC3BO,SAAS,IAAsB,KAAQ,MAA4C,OAAmB;AAC3G,QAAM,eAAe,MAAM,QAAQ,IAAI,IACnC,OACA,OAAO,SAAS,WACd,OAAO,IAAI,IACX,CAAC,IAAI;AAEX,MAAI,UAAe;AAEnB,WAAS,IAAI,GAAG,IAAI,aAAa,SAAS,GAAG,KAAK;AAChD,UAAM,MAAM,aAAa,CAAC;AAC1B,UAAM,UAAU,aAAa,IAAI,CAAC;AAElC,QAAI,QAAQ,GAAG,KAAK,MAAM;AACxB,cAAQ,GAAG,IAAI,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC;AAAA,IAC1C;AAEA,cAAU,QAAQ,GAAG;AAAA,EACvB;AAEA,QAAM,UAAU,aAAa,aAAa,SAAS,CAAC;AACpD,UAAQ,OAAO,IAAI;AAEnB,SAAO;AACT;;;ACpBO,SAAS,cAAqD,MAAW,QAA8B;AAC5G,QAAM,SAAS,CAAC;AAChB,QAAM,SAAS,IAAI,MAAM,MAAM;AAE/B,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,UAAM,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC;AAE7B,QAAI,OAAO,MAAM;AACf,UAAI,QAAQ,KAAK,KAAK;AAAA,IACxB;AAAA,EACF;AAEA,SAAO;AACT;","names":["chunk"]}
|
|
1
|
+
{"version":3,"sources":["../../src/compat/array/chunk.ts","../../src/compat/_internal/isIndex.ts","../../src/compat/_internal/toPath.ts","../../src/compat/object/set.ts","../../src/compat/array/zipObjectDeep.ts"],"sourcesContent":["import { chunk as chunkToolkit } from '../../array/chunk.ts';\n\n/**\n * Splits an array into smaller arrays of a specified length.\n *\n * This function takes an input array and divides it into multiple smaller arrays,\n * each of a specified length. If the input array cannot be evenly divided,\n * the final sub-array will contain the remaining elements.\n *\n * @template T The type of elements in the array.\n * @param {T[]} arr - The array to be chunked into smaller arrays.\n * @param {number} size - The size of each smaller array. Must be a positive integer.\n * @returns {T[][]} A two-dimensional array where each sub-array has a maximum length of `size`.\n * @throws {Error} Throws an error if `size` is not a positive integer.\n *\n * @example\n * // Splits an array of numbers into sub-arrays of length 2\n * chunk([1, 2, 3, 4, 5], 2);\n * // Returns: [[1, 2], [3, 4], [5]]\n *\n * @example\n * // Splits an array of strings into sub-arrays of length 3\n * chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);\n * // Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]\n */\nexport function chunk<T>(arr: readonly T[], size: number = 1): T[][] {\n size = Math.max(Math.floor(size), 0);\n\n if (size === 0) {\n return [];\n }\n\n return chunkToolkit(arr, size);\n}\n","const IS_UNSIGNED_INTEGER = /^(?:0|[1-9]\\d*)$/\n\nexport function isIndex(value: PropertyKey) {\n switch (typeof value) {\n case 'number': {\n return Number.isInteger(value) && value >= 0 && value < Number.MAX_SAFE_INTEGER;\n }\n case 'symbol': {\n return false;\n }\n case 'string': {\n return IS_UNSIGNED_INTEGER.test(value);\n }\n }\n}","const ESCAPE_REGEXP = /\\\\(\\\\)?/g;\nconst PROPERTY_REGEXP = RegExp(\n // Match anything that isn't a dot or bracket.\n \"[^.[\\\\]]+\" +\n \"|\" +\n // Or match property names within brackets.\n \"\\\\[(?:\" +\n // Match a non-string expression.\n \"([^\\\"'][^[]*)\" +\n \"|\" +\n // Or match strings (supports escaping characters).\n \"([\\\"'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2\" +\n \")\\\\]\" +\n \"|\" +\n // Or match \"\" as the space between consecutive dots or empty brackets.\n \"(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))\",\n \"g\",\n);\n\n/**\n * Converts a deep key string into an array of path segments.\n *\n * This function takes a string representing a deep key (e.g., 'a.b.c' or 'a[b][c]') and breaks it down into an array of strings, each representing a segment of the path.\n *\n * @param deepKey - The deep key string to convert.\n * @returns An array of strings, each representing a segment of the path.\n *\n * Examples:\n *\n * toPath('a.b.c') // Returns ['a', 'b', 'c']\n * toPath('a[b][c]') // Returns ['a', 'b', 'c']\n * toPath('.a.b.c') // Returns ['', 'a', 'b', 'c']\n * toPath('a[\"b.c\"].d') // Returns ['a', 'b.c', 'd']\n * toPath('') // Returns []\n * toPath('.a[b].c.d[e][\"f.g\"].h') // Returns ['', 'a', 'b', 'c', 'd', 'e', 'f.g', 'h']\n */\nexport function toPath(deepKey: string): string[] {\n const result: string[] = [];\n\n if (deepKey[0] === \".\") {\n result.push(\"\");\n }\n\n let match: RegExpExecArray | null;\n\n while ((match = PROPERTY_REGEXP.exec(deepKey)) !== null) {\n let [key, expr, quote, substr] = match;\n\n if (quote) {\n key = substr.replace(ESCAPE_REGEXP, \"$1\");\n } else if (expr) {\n key = expr.trim();\n }\n\n result.push(key);\n }\n\n return result;\n}\n","import { isIndex } from \"../_internal/isIndex.ts\";\nimport { toPath } from \"../_internal/toPath.ts\";\n\n/**\n * Sets the value at the specified path of the given object. If any part of the path does not exist, it will be created.\n *\n * @template T - The type of the object.\n * @param {Settable} obj - The object to modify.\n * @param {Path} path - The path of the property to set.\n * @param {any} value - The value to set.\n * @returns {T} - The modified object.\n *\n * @example\n * // Set a value in a nested object\n * const obj = { a: { b: { c: 3 } } };\n * set(obj, 'a.b.c', 4);\n * console.log(obj.a.b.c); // 4\n *\n * @example\n * // Set a value in an array\n * const arr = [1, 2, 3];\n * set(arr, 1, 4);\n * console.log(arr[1]); // 4\n *\n * @example\n * // Create non-existent path and set value\n * const obj = {};\n * set(obj, 'a.b.c', 4);\n * console.log(obj); // { a: { b: { c: 4 } } }\n */\nexport function set<T>(obj: object, path: PropertyKey | readonly PropertyKey[], value: unknown): T;\nexport function set<T extends object>(obj: T, path: PropertyKey | readonly PropertyKey[], value: unknown): T {\n const resolvedPath = Array.isArray(path)\n ? path\n : typeof path === 'string'\n ? toPath(path)\n : [path];\n\n let current: any = obj;\n\n for (let i = 0; i < resolvedPath.length - 1; i++) {\n const key = resolvedPath[i];\n const nextKey = resolvedPath[i + 1];\n\n if (current[key] == null) {\n current[key] = isIndex(nextKey) ? [] : {};\n }\n\n current = current[key];\n }\n\n const lastKey = resolvedPath[resolvedPath.length - 1];\n current[lastKey] = value;\n\n return obj;\n}\n","import { zip } from \"../../array/zip.ts\";\nimport { set } from \"../object/set.ts\";\n\n/**\n * Creates a deeply nested object given arrays of paths and values.\n *\n * This function takes two arrays: one containing arrays of property paths, and the other containing corresponding values.\n * It returns a new object where paths from the first array are used as key paths to set values, with corresponding elements from the second array as values.\n * Paths can be dot-separated strings or arrays of property names.\n * \n * If the `keys` array is longer than the `values` array, the remaining keys will have `undefined` as their values.\n *\n * @template V - The type of elements in the array.\n * @param {string[] | string[][]} keys - An array of property paths, each path can be a dot-separated string or an array of property names.\n * @param {V[]} values - An array of values corresponding to the property paths.\n * @returns {object} A new object composed of the given property paths and values.\n *\n * @example\n * const paths = ['a.b.c', 'd.e.f'];\n * const values = [1, 2];\n * const result = zipObjectDeep(paths, values);\n * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }\n *\n * @example\n * const paths = [['a', 'b', 'c'], ['d', 'e', 'f']];\n * const values = [1, 2];\n * const result = zipObjectDeep(paths, values);\n * // result will be { a: { b: { c: 1 } }, d: { e: { f: 2 } } }\n * \n * @example\n * const paths = ['a.b[0].c', 'a.b[1].d'];\n * const values = [1, 2];\n * const result = zipObjectDeep(paths, values);\n * // result will be { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\nexport function zipObjectDeep<P extends string | number | symbol, V>(keys: P[], values: V[]): { [K in P]: V } {\n const result = {} as { [K in P]: V };\n const zipped = zip(keys, values);\n\n for (let i = 0; i < zipped.length; i++) {\n const [key, value] = zipped[i];\n\n if (key != null) {\n set(result, key, value);\n }\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBO,SAASA,OAAS,KAAmB,OAAe,GAAU;AACnE,SAAO,KAAK,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC;AAEnC,MAAI,SAAS,GAAG;AACd,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,MAAa,KAAK,IAAI;AAC/B;;;ACjCA,IAAM,sBAAsB;AAErB,SAAS,QAAQ,OAAoB;AAC1C,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK,UAAU;AACb,aAAO,OAAO,UAAU,KAAK,KAAK,SAAS,KAAK,QAAQ,OAAO;AAAA,IACjE;AAAA,IACA,KAAK,UAAU;AACb,aAAO;AAAA,IACT;AAAA,IACA,KAAK,UAAU;AACb,aAAO,oBAAoB,KAAK,KAAK;AAAA,IACvC;AAAA,EACF;AACF;;;ACdA,IAAM,gBAAgB;AACtB,IAAM,kBAAkB;AAAA;AAAA,EAEtB;AAAA,EAaA;AACF;AAmBO,SAAS,OAAO,SAA2B;AAChD,QAAM,SAAmB,CAAC;AAE1B,MAAI,QAAQ,CAAC,MAAM,KAAK;AACtB,WAAO,KAAK,EAAE;AAAA,EAChB;AAEA,MAAI;AAEJ,UAAQ,QAAQ,gBAAgB,KAAK,OAAO,OAAO,MAAM;AACvD,QAAI,CAAC,KAAK,MAAM,OAAO,MAAM,IAAI;AAEjC,QAAI,OAAO;AACT,YAAM,OAAO,QAAQ,eAAe,IAAI;AAAA,IAC1C,WAAW,MAAM;AACf,YAAM,KAAK,KAAK;AAAA,IAClB;AAEA,WAAO,KAAK,GAAG;AAAA,EACjB;AAEA,SAAO;AACT;;;AC3BO,SAAS,IAAsB,KAAQ,MAA4C,OAAmB;AAC3G,QAAM,eAAe,MAAM,QAAQ,IAAI,IACnC,OACA,OAAO,SAAS,WACd,OAAO,IAAI,IACX,CAAC,IAAI;AAEX,MAAI,UAAe;AAEnB,WAAS,IAAI,GAAG,IAAI,aAAa,SAAS,GAAG,KAAK;AAChD,UAAM,MAAM,aAAa,CAAC;AAC1B,UAAM,UAAU,aAAa,IAAI,CAAC;AAElC,QAAI,QAAQ,GAAG,KAAK,MAAM;AACxB,cAAQ,GAAG,IAAI,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC;AAAA,IAC1C;AAEA,cAAU,QAAQ,GAAG;AAAA,EACvB;AAEA,QAAM,UAAU,aAAa,aAAa,SAAS,CAAC;AACpD,UAAQ,OAAO,IAAI;AAEnB,SAAO;AACT;;;ACpBO,SAAS,cAAqD,MAAW,QAA8B;AAC5G,QAAM,SAAS,CAAC;AAChB,QAAM,SAAS,IAAI,MAAM,MAAM;AAE/B,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,UAAM,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC;AAE7B,QAAI,OAAO,MAAM;AACf,UAAI,QAAQ,KAAK,KAAK;AAAA,IACxB;AAAA,EACF;AAEA,SAAO;AACT;","names":["chunk"]}
|
package/dist/function/index.mjs
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import "../chunk-236H5JZJ.mjs";
|
|
2
|
-
import {
|
|
3
|
-
once
|
|
4
|
-
} from "../chunk-CMBC4MXG.mjs";
|
|
5
|
-
import {
|
|
6
|
-
throttle
|
|
7
|
-
} from "../chunk-QOJGMVVR.mjs";
|
|
8
2
|
import {
|
|
9
3
|
debounce
|
|
10
4
|
} from "../chunk-3IP4JVLL.mjs";
|
|
@@ -14,6 +8,12 @@ import {
|
|
|
14
8
|
import {
|
|
15
9
|
noop
|
|
16
10
|
} from "../chunk-LKXCOLNY.mjs";
|
|
11
|
+
import {
|
|
12
|
+
once
|
|
13
|
+
} from "../chunk-CMBC4MXG.mjs";
|
|
14
|
+
import {
|
|
15
|
+
throttle
|
|
16
|
+
} from "../chunk-QOJGMVVR.mjs";
|
|
17
17
|
import "../chunk-2MM5EJJX.mjs";
|
|
18
18
|
export {
|
|
19
19
|
debounce,
|
package/dist/index.js
CHANGED
|
@@ -212,13 +212,14 @@ function dropWhile(arr, canContinueDropping) {
|
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
// src/array/fill.ts
|
|
215
|
-
function fill(
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
215
|
+
function fill(array, value, start = 0, end = array.length) {
|
|
216
|
+
const length = array.length;
|
|
217
|
+
const finalStart = Math.max(start >= 0 ? start : length + start, 0);
|
|
218
|
+
const finalEnd = Math.min(end >= 0 ? end : length + end, length);
|
|
219
|
+
for (let i = finalStart; i < finalEnd; i++) {
|
|
220
|
+
array[i] = value;
|
|
220
221
|
}
|
|
221
|
-
return
|
|
222
|
+
return array;
|
|
222
223
|
}
|
|
223
224
|
|
|
224
225
|
// src/array/flatten.ts
|