@ts-fns/stdlib 0.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.
Files changed (135) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +132 -0
  3. package/dist/array/index.cjs +551 -0
  4. package/dist/array/index.cjs.map +1 -0
  5. package/dist/array/index.d.cts +334 -0
  6. package/dist/array/index.d.cts.map +1 -0
  7. package/dist/array/index.d.mts +334 -0
  8. package/dist/array/index.d.mts.map +1 -0
  9. package/dist/array/index.mjs +498 -0
  10. package/dist/array/index.mjs.map +1 -0
  11. package/dist/errors-CJsLpYo9.d.cts +25 -0
  12. package/dist/errors-CJsLpYo9.d.cts.map +1 -0
  13. package/dist/errors-CJsLpYo9.d.mts +25 -0
  14. package/dist/errors-CJsLpYo9.d.mts.map +1 -0
  15. package/dist/errors-Dw1kitu_.mjs +39 -0
  16. package/dist/errors-Dw1kitu_.mjs.map +1 -0
  17. package/dist/errors-O-d_Vemi.cjs +74 -0
  18. package/dist/errors-O-d_Vemi.cjs.map +1 -0
  19. package/dist/function/index.cjs +15 -0
  20. package/dist/function/index.d.cts +107 -0
  21. package/dist/function/index.d.cts.map +1 -0
  22. package/dist/function/index.d.mts +107 -0
  23. package/dist/function/index.d.mts.map +1 -0
  24. package/dist/function/index.mjs +3 -0
  25. package/dist/function-CB82a2GS.cjs +186 -0
  26. package/dist/function-CB82a2GS.cjs.map +1 -0
  27. package/dist/function-DnI2v0p3.mjs +121 -0
  28. package/dist/function-DnI2v0p3.mjs.map +1 -0
  29. package/dist/get-CWL_cu6G.mjs +27 -0
  30. package/dist/get-CWL_cu6G.mjs.map +1 -0
  31. package/dist/get-yrs1Kqho.cjs +38 -0
  32. package/dist/get-yrs1Kqho.cjs.map +1 -0
  33. package/dist/guard/index.cjs +43 -0
  34. package/dist/guard/index.cjs.map +1 -0
  35. package/dist/guard/index.d.cts +52 -0
  36. package/dist/guard/index.d.cts.map +1 -0
  37. package/dist/guard/index.d.mts +52 -0
  38. package/dist/guard/index.d.mts.map +1 -0
  39. package/dist/guard/index.mjs +40 -0
  40. package/dist/guard/index.mjs.map +1 -0
  41. package/dist/index-BJlKyBJH.d.cts +18 -0
  42. package/dist/index-BJlKyBJH.d.cts.map +1 -0
  43. package/dist/index-DGrnGMDt.d.mts +18 -0
  44. package/dist/index-DGrnGMDt.d.mts.map +1 -0
  45. package/dist/isNotNil-DrF-ohem.cjs +28 -0
  46. package/dist/isNotNil-DrF-ohem.cjs.map +1 -0
  47. package/dist/isNotNil-R5f1hC53.mjs +23 -0
  48. package/dist/isNotNil-R5f1hC53.mjs.map +1 -0
  49. package/dist/iterator/index.cjs +160 -0
  50. package/dist/iterator/index.cjs.map +1 -0
  51. package/dist/iterator/index.d.cts +71 -0
  52. package/dist/iterator/index.d.cts.map +1 -0
  53. package/dist/iterator/index.d.mts +71 -0
  54. package/dist/iterator/index.d.mts.map +1 -0
  55. package/dist/iterator/index.mjs +148 -0
  56. package/dist/iterator/index.mjs.map +1 -0
  57. package/dist/lens/index.cjs +199 -0
  58. package/dist/lens/index.cjs.map +1 -0
  59. package/dist/lens/index.d.cts +109 -0
  60. package/dist/lens/index.d.cts.map +1 -0
  61. package/dist/lens/index.d.mts +109 -0
  62. package/dist/lens/index.d.mts.map +1 -0
  63. package/dist/lens/index.mjs +187 -0
  64. package/dist/lens/index.mjs.map +1 -0
  65. package/dist/map/index.cjs +86 -0
  66. package/dist/map/index.cjs.map +1 -0
  67. package/dist/map/index.d.cts +41 -0
  68. package/dist/map/index.d.cts.map +1 -0
  69. package/dist/map/index.d.mts +41 -0
  70. package/dist/map/index.d.mts.map +1 -0
  71. package/dist/map/index.mjs +75 -0
  72. package/dist/map/index.mjs.map +1 -0
  73. package/dist/number/index.cjs +179 -0
  74. package/dist/number/index.cjs.map +1 -0
  75. package/dist/number/index.d.cts +112 -0
  76. package/dist/number/index.d.cts.map +1 -0
  77. package/dist/number/index.d.mts +112 -0
  78. package/dist/number/index.d.mts.map +1 -0
  79. package/dist/number/index.mjs +159 -0
  80. package/dist/number/index.mjs.map +1 -0
  81. package/dist/object/index.cjs +190 -0
  82. package/dist/object/index.cjs.map +1 -0
  83. package/dist/object/index.d.cts +118 -0
  84. package/dist/object/index.d.cts.map +1 -0
  85. package/dist/object/index.d.mts +118 -0
  86. package/dist/object/index.d.mts.map +1 -0
  87. package/dist/object/index.mjs +169 -0
  88. package/dist/object/index.mjs.map +1 -0
  89. package/dist/orThrow-V91Jw2lF.mjs +15 -0
  90. package/dist/orThrow-V91Jw2lF.mjs.map +1 -0
  91. package/dist/orThrow-ejzcQYAI.cjs +20 -0
  92. package/dist/orThrow-ejzcQYAI.cjs.map +1 -0
  93. package/dist/order/index.cjs +50 -0
  94. package/dist/order/index.cjs.map +1 -0
  95. package/dist/order/index.d.cts +3 -0
  96. package/dist/order/index.d.mts +3 -0
  97. package/dist/order/index.mjs +42 -0
  98. package/dist/order/index.mjs.map +1 -0
  99. package/dist/order.constants-BWSCg3C7.d.cts +11 -0
  100. package/dist/order.constants-BWSCg3C7.d.cts.map +1 -0
  101. package/dist/order.constants-BWSCg3C7.d.mts +11 -0
  102. package/dist/order.constants-BWSCg3C7.d.mts.map +1 -0
  103. package/dist/purry-B2_0DGLV.cjs +28 -0
  104. package/dist/purry-B2_0DGLV.cjs.map +1 -0
  105. package/dist/purry-BOWmqwDB.mjs +23 -0
  106. package/dist/purry-BOWmqwDB.mjs.map +1 -0
  107. package/dist/set/index.cjs +131 -0
  108. package/dist/set/index.cjs.map +1 -0
  109. package/dist/set/index.d.cts +61 -0
  110. package/dist/set/index.d.cts.map +1 -0
  111. package/dist/set/index.d.mts +61 -0
  112. package/dist/set/index.d.mts.map +1 -0
  113. package/dist/set/index.mjs +115 -0
  114. package/dist/set/index.mjs.map +1 -0
  115. package/dist/string/index.cjs +288 -0
  116. package/dist/string/index.cjs.map +1 -0
  117. package/dist/string/index.d.cts +144 -0
  118. package/dist/string/index.d.cts.map +1 -0
  119. package/dist/string/index.d.mts +144 -0
  120. package/dist/string/index.d.mts.map +1 -0
  121. package/dist/string/index.mjs +254 -0
  122. package/dist/string/index.mjs.map +1 -0
  123. package/dist/tuple/index.cjs +135 -0
  124. package/dist/tuple/index.cjs.map +1 -0
  125. package/dist/tuple/index.d.cts +207 -0
  126. package/dist/tuple/index.d.cts.map +1 -0
  127. package/dist/tuple/index.d.mts +207 -0
  128. package/dist/tuple/index.d.mts.map +1 -0
  129. package/dist/tuple/index.mjs +122 -0
  130. package/dist/tuple/index.mjs.map +1 -0
  131. package/dist/types-D8f67ZCe.d.cts +54 -0
  132. package/dist/types-D8f67ZCe.d.cts.map +1 -0
  133. package/dist/types-D8f67ZCe.d.mts +54 -0
  134. package/dist/types-D8f67ZCe.d.mts.map +1 -0
  135. package/package.json +177 -0
@@ -0,0 +1,498 @@
1
+ import { t as orThrow } from "../orThrow-V91Jw2lF.mjs";
2
+ import { t as purry } from "../purry-BOWmqwDB.mjs";
3
+ import { i as NotFoundError, t as EmptyArrayError } from "../errors-Dw1kitu_.mjs";
4
+ import "../function-DnI2v0p3.mjs";
5
+ //#region src/array/_globalAliases.ts
6
+ const { from, fromAsync, isArray, of } = Array;
7
+ const arrayConstructor = Array;
8
+ //#endregion
9
+ //#region src/array/at.ts
10
+ /**
11
+ * Internal method that wraps `arr.at()` but throws the same `RangeError` that `arr.with()` does
12
+ * @throws {RangeError}
13
+ */
14
+ function atImplementation(arr, index) {
15
+ if (arr.length === 0 || index >= arr.length || index < -arr.length) return /* @__PURE__ */ new RangeError(`Arr.at() :: Invalid index : ${index}`);
16
+ return arr.at(index);
17
+ }
18
+ function at(...args) {
19
+ return purry(atImplementation, args);
20
+ }
21
+ function atAssert(...args) {
22
+ return purry(orThrow(atImplementation), args);
23
+ }
24
+ at.assert = atAssert;
25
+ //#endregion
26
+ //#region src/array/chunk.ts
27
+ function chunkImplementation(arr, size) {
28
+ if (size < 1) throw new RangeError(`Arr.chunk() :: ${size} must be a positive integer`);
29
+ if (arr.length === 0) return [];
30
+ if (size >= arr.length) return [[...arr]];
31
+ const chunks = Math.ceil(arr.length / size);
32
+ if (size === 1) return arr.map((v) => [v]);
33
+ return Array(chunks).fill(void 0).map((_, index) => {
34
+ const start = index * size;
35
+ return arr.slice(start, start + size);
36
+ });
37
+ }
38
+ function chunk(...args) {
39
+ return purry(chunkImplementation, args);
40
+ }
41
+ function chunkAssert(...args) {
42
+ return purry(orThrow(chunkImplementation), args);
43
+ }
44
+ chunk.assert = chunkAssert;
45
+ //#endregion
46
+ //#region src/array/concat.ts
47
+ function concatImplementation(arr, other) {
48
+ return [...arr, ...other];
49
+ }
50
+ function concat(...args) {
51
+ return purry(concatImplementation, args);
52
+ }
53
+ //#endregion
54
+ //#region src/array/drop.ts
55
+ function dropImplementation(arr, n) {
56
+ return arr.slice(n);
57
+ }
58
+ function drop(...args) {
59
+ return purry(dropImplementation, args);
60
+ }
61
+ //#endregion
62
+ //#region src/array/every.ts
63
+ function everyImplementation(arr, predicate) {
64
+ return arr.every(predicate);
65
+ }
66
+ function every(...args) {
67
+ return purry(everyImplementation, args);
68
+ }
69
+ //#endregion
70
+ //#region src/array/find.ts
71
+ function findImplementation(arr, predicate) {
72
+ const foundIndex = arr.findIndex(predicate);
73
+ if (foundIndex === -1) return new NotFoundError("Arr.find :: predicate found no match.");
74
+ return arr[foundIndex];
75
+ }
76
+ function find(...args) {
77
+ return purry(findImplementation, args);
78
+ }
79
+ function findAssert(...args) {
80
+ return purry(orThrow(findImplementation), args);
81
+ }
82
+ find.assert = findAssert;
83
+ //#endregion
84
+ //#region src/array/findIndex.ts
85
+ function findIndexImplementation(arr, predicate) {
86
+ const result = arr.findIndex(predicate);
87
+ if (result === -1) return new NotFoundError("Arr.findIndex.orError() :: predicate found no match.");
88
+ return result;
89
+ }
90
+ function findIndex(...args) {
91
+ return purry(findIndexImplementation, args);
92
+ }
93
+ function findIndexAssert(...args) {
94
+ return purry(orThrow(findIndexImplementation), args);
95
+ }
96
+ findIndex.assert = findIndexAssert;
97
+ //#endregion
98
+ //#region src/array/findLast.ts
99
+ function findLastImplementation(arr, predicate) {
100
+ const foundIndex = arr.findLastIndex(predicate);
101
+ if (foundIndex === -1) return new NotFoundError("Arr.findLast() :: predicate found no match.");
102
+ return arr[foundIndex];
103
+ }
104
+ function findLast(...args) {
105
+ return purry(findLastImplementation, args);
106
+ }
107
+ function findLastAssert(...args) {
108
+ return purry(orThrow(findLastImplementation), args);
109
+ }
110
+ findLast.assert = findLastAssert;
111
+ //#endregion
112
+ //#region src/array/findLastIndex.ts
113
+ function findLastIndexImplementation(arr, predicate) {
114
+ const result = arr.findLastIndex(predicate);
115
+ if (result === -1) return new NotFoundError("Arr.findLastIndex() :: predicate found no match.");
116
+ return result;
117
+ }
118
+ function findLastIndex(...args) {
119
+ return purry(findLastIndexImplementation, args);
120
+ }
121
+ function findLastIndexAssert(...args) {
122
+ return purry(orThrow(findLastIndexImplementation), args);
123
+ }
124
+ findLastIndex.assert = findLastIndexAssert;
125
+ //#endregion
126
+ //#region src/array/first.ts
127
+ function first(arr) {
128
+ if (arr.length === 0) return new EmptyArrayError("Arr.first() :: array is empty");
129
+ return arr[0];
130
+ }
131
+ function firstAssert(arr) {
132
+ return orThrow(first)(arr);
133
+ }
134
+ first.assert = firstAssert;
135
+ //#endregion
136
+ //#region src/array/flatMap.ts
137
+ function flatMapImplementation(arr, callbackfn) {
138
+ return arr.flatMap(callbackfn);
139
+ }
140
+ function flatMap(...args) {
141
+ return purry(flatMapImplementation, args);
142
+ }
143
+ //#endregion
144
+ //#region src/array/forEach.ts
145
+ function forEachImplementation(arr, callbackfn) {
146
+ arr.forEach(callbackfn);
147
+ return arr;
148
+ }
149
+ function forEach(...args) {
150
+ return purry(forEachImplementation, args);
151
+ }
152
+ //#endregion
153
+ //#region src/array/init.ts
154
+ /**
155
+ *
156
+ */
157
+ function init(arr) {
158
+ return arr.slice(0, arr.length - 1);
159
+ }
160
+ function initAssert(arr) {
161
+ return orThrow(init)(arr);
162
+ }
163
+ init.assert = initAssert;
164
+ //#endregion
165
+ //#region src/array/insert.ts
166
+ function insertImplementation(arr, index, value) {
167
+ try {
168
+ return arr.with(index, value);
169
+ } catch (_e) {
170
+ return /* @__PURE__ */ new RangeError(`Arr.insert() - Invalid index : ${index}`);
171
+ }
172
+ }
173
+ function insert(...args) {
174
+ return purry(insertImplementation, args);
175
+ }
176
+ function insertAssert(...args) {
177
+ return purry(orThrow(insertImplementation), args);
178
+ }
179
+ insert.assert = insertAssert;
180
+ //#endregion
181
+ //#region src/array/isEmpty.ts
182
+ function isNotEmpty(arr) {
183
+ return arr.length > 0;
184
+ }
185
+ function isEmpty(arr) {
186
+ return arr.length === 0;
187
+ }
188
+ //#endregion
189
+ //#region src/array/join.ts
190
+ function joinImplementation(arr, separator) {
191
+ return arr.join(separator);
192
+ }
193
+ function join(...args) {
194
+ return purry(joinImplementation, args);
195
+ }
196
+ //#endregion
197
+ //#region src/array/last.ts
198
+ function last(arr) {
199
+ if (arr.length === 0) return new EmptyArrayError("Arr.last() :: array is empty");
200
+ return arr[arr.length - 1];
201
+ }
202
+ function lastAssert(arr) {
203
+ return orThrow(last)(arr);
204
+ }
205
+ last.assert = lastAssert;
206
+ //#endregion
207
+ //#region src/array/length.ts
208
+ /**
209
+ * Returns length of array
210
+ * @param arr
211
+ * @returns
212
+ */
213
+ function length(arr) {
214
+ return arr.length;
215
+ }
216
+ //#endregion
217
+ //#region src/array/map.ts
218
+ function mapImplementation(arr, callbackfn) {
219
+ return arr.map(callbackfn);
220
+ }
221
+ function map(...args) {
222
+ return purry(mapImplementation, args);
223
+ }
224
+ //#endregion
225
+ //#region src/array/ofLength.ts
226
+ /**
227
+ * Arr.ofLength
228
+ *
229
+ * @throws {RangeError}
230
+ */
231
+ function ofLength(arrayLength) {
232
+ return Array(arrayLength);
233
+ }
234
+ //#endregion
235
+ //#region src/array/partition.ts
236
+ function partitionImplementation(arr, predicate) {
237
+ const len = arr.length;
238
+ const left = [];
239
+ const right = [];
240
+ for (let i = 0; i < len; i += 1) {
241
+ const value = arr[i];
242
+ if (predicate(value, i, arr)) left.push(value);
243
+ else right.push(value);
244
+ }
245
+ return [left, right];
246
+ }
247
+ function partition(...args) {
248
+ return purry(partitionImplementation, args);
249
+ }
250
+ //#endregion
251
+ //#region src/array/pop.ts
252
+ function pop(arr) {
253
+ if (arr.length === 0) return new EmptyArrayError("Arr.pop() :: array is empty");
254
+ const lastIndex = arr.length - 1;
255
+ return [arr[lastIndex], arr.slice(0, lastIndex)];
256
+ }
257
+ function popAssert(arr) {
258
+ return orThrow(pop)(arr);
259
+ }
260
+ pop.assert = popAssert;
261
+ //#endregion
262
+ //#region src/array/prepend.ts
263
+ function prependImplementation(arr, other) {
264
+ return [...other, ...arr];
265
+ }
266
+ function prepend(...args) {
267
+ return purry(prependImplementation, args);
268
+ }
269
+ //#endregion
270
+ //#region src/array/push.ts
271
+ function pushImplementation(arr, value) {
272
+ return [...arr, value];
273
+ }
274
+ function push(...args) {
275
+ return purry(pushImplementation, args);
276
+ }
277
+ //#endregion
278
+ //#region src/array/reduce.ts
279
+ function reduceImplementation(arr, callbackFn, initialValue) {
280
+ return arr.reduce(callbackFn, initialValue);
281
+ }
282
+ function reduce(...args) {
283
+ return purry(reduceImplementation, args);
284
+ }
285
+ //#endregion
286
+ //#region src/array/reduce1.ts
287
+ function reduce1Implementation(arr, callbackFn) {
288
+ return arr.reduce(callbackFn);
289
+ }
290
+ function reduce1(...args) {
291
+ return purry(reduce1Implementation, args);
292
+ }
293
+ //#endregion
294
+ //#region src/array/reduceRight.ts
295
+ function reduceRightImplementation(arr, callbackFn, initialValue) {
296
+ return arr.reduceRight(callbackFn, initialValue);
297
+ }
298
+ function reduceRight(...args) {
299
+ return purry(reduceRightImplementation, args);
300
+ }
301
+ //#endregion
302
+ //#region src/array/reduceRight1.ts
303
+ function reduceRight1Implementation(arr, callbackFn) {
304
+ return arr.reduceRight(callbackFn);
305
+ }
306
+ function reduceRight1(...args) {
307
+ return purry(reduceRight1Implementation, args);
308
+ }
309
+ //#endregion
310
+ //#region src/array/rest.ts
311
+ /**
312
+ * Returns an array excluding the first entry
313
+ * @param arr
314
+ * @returns
315
+ */
316
+ function rest(arr) {
317
+ const [, ...tail] = arr;
318
+ return tail;
319
+ }
320
+ //#endregion
321
+ //#region src/array/reverse.ts
322
+ function reverseImplementation(arr) {
323
+ return arr.toReversed();
324
+ }
325
+ function reverse(...args) {
326
+ return purry(reverseImplementation, args);
327
+ }
328
+ //#endregion
329
+ //#region src/array/scan.ts
330
+ function scanImplementation(arr, callbackFn, initialValue) {
331
+ const len = arr.length;
332
+ const result = Array(len + 1);
333
+ let acc = initialValue;
334
+ result[0] = acc;
335
+ for (let index = 0; index < len; index += 1) {
336
+ acc = callbackFn(acc, arr[index], index, arr);
337
+ result[index + 1] = acc;
338
+ }
339
+ return result;
340
+ }
341
+ function scan(...args) {
342
+ return purry(scanImplementation, args);
343
+ }
344
+ //#endregion
345
+ //#region src/array/shift.ts
346
+ function shift(arr) {
347
+ if (arr.length === 0) return new EmptyArrayError("Arr.shift() :: array is empty");
348
+ const [head, ...tail] = arr;
349
+ return [head, tail];
350
+ }
351
+ function shiftAssert(arr) {
352
+ return orThrow(shift)(arr);
353
+ }
354
+ shift.assert = shiftAssert;
355
+ //#endregion
356
+ //#region src/array/shuffle.ts
357
+ function shuffle(arr) {
358
+ const result = [...arr];
359
+ const len = result.length;
360
+ for (let i = 0; i < len; i += 1) {
361
+ const rand = i + Math.floor(Math.random() * (len - i));
362
+ const value = result[rand];
363
+ result[rand] = result[i];
364
+ result[i] = value;
365
+ }
366
+ return result;
367
+ }
368
+ //#endregion
369
+ //#region src/array/some.ts
370
+ function someImplementation(arr, predicate) {
371
+ return arr.some(predicate);
372
+ }
373
+ function some(...args) {
374
+ return purry(someImplementation, args);
375
+ }
376
+ //#endregion
377
+ //#region src/array/sort.ts
378
+ function sortImplementation(arr, compareFn) {
379
+ return arr.toSorted(compareFn);
380
+ }
381
+ function sort(...args) {
382
+ return purry(sortImplementation, args);
383
+ }
384
+ //#endregion
385
+ //#region src/array/sortBy.ts
386
+ function sortByImplementation(arr, mapFn) {
387
+ return arr.toSorted((left, right) => {
388
+ const l = mapFn(left);
389
+ const r = mapFn(right);
390
+ if (l < r) return -1;
391
+ if (l > r) return 0;
392
+ return 0;
393
+ });
394
+ }
395
+ function sortBy(...args) {
396
+ return purry(sortByImplementation, args);
397
+ }
398
+ //#endregion
399
+ //#region src/array/take.ts
400
+ function takeImplementation(arr, limit) {
401
+ if (limit < 1) throw new RangeError(`Arr.take() :: ${limit} must be a positive integer`);
402
+ return arr.slice(0, limit);
403
+ }
404
+ function take(...args) {
405
+ return purry(takeImplementation, args);
406
+ }
407
+ //#endregion
408
+ //#region src/array/transpose.ts
409
+ function transpose(arr) {
410
+ const maxLen = arr.reduce((acc, inner) => Math.max(acc, inner.length), 0);
411
+ return Array(maxLen).fill(void 0).map((_, index) => arr.map((inner) => inner[index]));
412
+ }
413
+ //#endregion
414
+ //#region src/array/unique.ts
415
+ function unique(arr) {
416
+ if (arr.length === 0) return [];
417
+ return Array.from(new Set(arr));
418
+ }
419
+ //#endregion
420
+ //#region src/array/uniqueBy.ts
421
+ function uniqueByImplementation(arr, mapFn) {
422
+ if (arr.length === 0) return [];
423
+ const map = /* @__PURE__ */ new Map();
424
+ arr.forEach((_, index) => {
425
+ const value = arr[index];
426
+ const key = mapFn(value);
427
+ if (!map.has(key)) map.set(key, value);
428
+ });
429
+ return Array.from(map.values());
430
+ }
431
+ function uniqueBy(...args) {
432
+ return purry(uniqueByImplementation, args);
433
+ }
434
+ //#endregion
435
+ //#region src/array/uniqueWith.ts
436
+ function uniqueWith(arr, isEqual) {
437
+ if (arr.length === 0) return [];
438
+ return arr.filter((value, index) => {
439
+ return index === (arr.find((otherValue, otherIndex) => index === otherIndex || isEqual(value, otherValue)) ?? -1);
440
+ });
441
+ }
442
+ //#endregion
443
+ //#region src/array/unshift.ts
444
+ function unshiftImplementation(arr, value) {
445
+ return [value, ...arr];
446
+ }
447
+ function unshift(...args) {
448
+ return purry(unshiftImplementation, args);
449
+ }
450
+ //#endregion
451
+ //#region src/array/update.ts
452
+ function updateImplementation(arr, index, fn) {
453
+ if (index >= arr.length || index < -arr.length) return /* @__PURE__ */ new RangeError(`Arr.update() :: Invalid index : ${index}`);
454
+ const updatedValue = fn(arr.at(index));
455
+ return arr.with(index, updatedValue);
456
+ }
457
+ function update(...args) {
458
+ return purry(updateImplementation, args);
459
+ }
460
+ function updateAssert(...args) {
461
+ return purry(orThrow(updateImplementation), args);
462
+ }
463
+ update.assert = updateAssert;
464
+ //#endregion
465
+ //#region src/array/window.ts
466
+ function windowImplementation(arr, size) {
467
+ if (size < 1) throw new RangeError(`Arr.window() :: ${size} must be a positive integer`);
468
+ const limit = arr.length - (size - 1);
469
+ if (limit < 0) return [];
470
+ return Array(limit).fill(void 0).map((_, index) => arr.slice(index, index + size));
471
+ }
472
+ function window(...args) {
473
+ return purry(windowImplementation, args);
474
+ }
475
+ function windowAssert(...args) {
476
+ return purry(orThrow(windowImplementation), args);
477
+ }
478
+ window.assert = windowAssert;
479
+ //#endregion
480
+ //#region src/array/zip.ts
481
+ function zipImplementation(arr, other) {
482
+ return Array(Math.min(arr.length, other.length)).fill(void 0).map((_, index) => [arr[index], other[index]]);
483
+ }
484
+ function zip(...args) {
485
+ return purry(zipImplementation, args);
486
+ }
487
+ //#endregion
488
+ //#region src/array/zipWith.ts
489
+ function zipWithImplementation(arr, other, fn) {
490
+ return Array(Math.min(arr.length, other.length)).fill(void 0).map((_, index) => fn(arr[index], other[index]));
491
+ }
492
+ function zipWith(...args) {
493
+ return purry(zipWithImplementation, args);
494
+ }
495
+ //#endregion
496
+ export { arrayConstructor as Array, at, atAssert, chunk, concat, drop, every, find, findIndex, findLast, findLastIndex, first, flatMap, forEach, from, fromAsync, init, insert, isArray, isEmpty, isNotEmpty, join, last, length, map, of, ofLength, partition, pop, prepend, push, reduce, reduce1, reduceRight, reduceRight1, rest, reverse, scan, shift, shuffle, some, sort, sortBy, take, transpose, unique, uniqueBy, uniqueWith, unshift, update, window, zip, zipWith };
497
+
498
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/array/_globalAliases.ts","../../src/array/at.ts","../../src/array/chunk.ts","../../src/array/concat.ts","../../src/array/drop.ts","../../src/array/every.ts","../../src/array/find.ts","../../src/array/findIndex.ts","../../src/array/findLast.ts","../../src/array/findLastIndex.ts","../../src/array/first.ts","../../src/array/flatMap.ts","../../src/array/forEach.ts","../../src/array/init.ts","../../src/array/insert.ts","../../src/array/isEmpty.ts","../../src/array/join.ts","../../src/array/last.ts","../../src/array/length.ts","../../src/array/map.ts","../../src/array/ofLength.ts","../../src/array/partition.ts","../../src/array/pop.ts","../../src/array/prepend.ts","../../src/array/push.ts","../../src/array/reduce.ts","../../src/array/reduce1.ts","../../src/array/reduceRight.ts","../../src/array/reduceRight1.ts","../../src/array/rest.ts","../../src/array/reverse.ts","../../src/array/scan.ts","../../src/array/shift.ts","../../src/array/shuffle.ts","../../src/array/some.ts","../../src/array/sort.ts","../../src/array/sortBy.ts","../../src/array/take.ts","../../src/array/transpose.ts","../../src/array/unique.ts","../../src/array/uniqueBy.ts","../../src/array/uniqueWith.ts","../../src/array/unshift.ts","../../src/array/update.ts","../../src/array/window.ts","../../src/array/zip.ts","../../src/array/zipWith.ts"],"sourcesContent":["export const { from, fromAsync, isArray, of } = Array;\n\nconst arrayConstructor = Array;\n\nexport { arrayConstructor as Array };\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\n/**\n * Internal method that wraps `arr.at()` but throws the same `RangeError` that `arr.with()` does\n * @throws {RangeError}\n */\nfunction atImplementation<T>(arr: readonly T[], index: number): RangeError | T {\n if (arr.length === 0 || index >= arr.length || index < -arr.length) {\n return new RangeError(`Arr.at() :: Invalid index : ${index}`);\n }\n\n return arr.at(index) as T;\n}\n\n/**\n * Get an element from an array by index.\n *\n * @category Array\n * @param arr - The array to get the element from.\n * @param index - The index of the element to get.\n *\n * @example\n * ```ts\n * at([1, 2, 3], 1); // 2\n * ```\n */\nexport function at<T>(index: number): (arr: readonly T[]) => RangeError | T;\nexport function at<T>(arr: readonly T[], index: number): RangeError | T;\nexport function at(...args: readonly unknown[]): unknown {\n return purry(atImplementation, args);\n}\n\nexport function atAssert<T>(index: number): (arr: readonly T[]) => T;\nexport function atAssert<T>(arr: readonly T[], index: number): T;\nexport function atAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(atImplementation), args);\n}\n\nat.assert = atAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction chunkImplementation<T>(arr: readonly T[], size: number): T[][] {\n if (size < 1) {\n throw new RangeError(`Arr.chunk() :: ${size} must be a positive integer`);\n }\n\n if (arr.length === 0) {\n return [];\n }\n\n if (size >= arr.length) {\n // Optimized for when there is only one chunk.\n return [[...arr]];\n }\n\n const chunks = Math.ceil(arr.length / size);\n\n if (size === 1) {\n return arr.map(v => [v]);\n }\n\n const result = Array(chunks)\n .fill(undefined)\n .map((_, index) => {\n const start = index * size;\n return arr.slice(start, start + size);\n });\n\n return result;\n}\n\n/**\n *\n * @throws {RangeError}\n */\nexport function chunk(size: number): <T>(arr: readonly T[]) => T[][];\nexport function chunk<T>(arr: readonly T[], size: number): T[][];\nexport function chunk(...args: unknown[]): unknown {\n return purry(chunkImplementation, args);\n}\n\nfunction chunkAssert<T>(size: number): (arr: readonly T[]) => T[][];\nfunction chunkAssert<T>(arr: readonly T[], size: number): T[][];\nfunction chunkAssert(...args: unknown[]): unknown {\n return purry(orThrow(chunkImplementation), args);\n}\n\nchunk.assert = chunkAssert;\n","import { purry } from '../function/purry';\n\nfunction concatImplementation<T>(arr: readonly T[], other: readonly T[]): T[] {\n return [...arr, ...other];\n}\n\nexport function concat<T>(other: readonly T[]): (arr: readonly T[]) => T;\nexport function concat<T>(arr: readonly T[], other: readonly T[]): T;\nexport function concat(...args: readonly unknown[]): unknown {\n return purry(concatImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction dropImplementation<T>(arr: readonly T[], n: number): T[] {\n return arr.slice(n);\n}\n\nexport function drop<T>(n: number): (arr: readonly T[]) => T[];\nexport function drop<T>(arr: readonly T[], n: number): T[];\nexport function drop(...args: readonly unknown[]): unknown {\n return purry(dropImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction everyImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): boolean {\n return arr.every(predicate);\n}\n\nexport function every<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => arr is S[];\nexport function every<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T[];\nexport function every<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): arr is S[];\nexport function every<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T[];\nexport function every(...args: readonly unknown[]): unknown {\n return purry(everyImplementation, args);\n}\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T {\n // -1 unequivocally tells us \"not found\", where vale check on `null | undefined` doesn't because that could be a valid value\n const foundIndex = arr.findIndex(predicate);\n\n if (foundIndex === -1) {\n return new NotFoundError('Arr.find :: predicate found no match.');\n }\n\n return arr[foundIndex]!;\n}\n\nexport function find<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => NotFoundError | S;\nexport function find<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | T;\nexport function find<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): NotFoundError | S;\nexport function find<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T;\nexport function find(...args: readonly unknown[]): unknown {\n return purry(findImplementation, args);\n}\n\nfunction findAssert<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => S;\nfunction findAssert<T>(predicate: (value: T, index: number, array: readonly T[]) => boolean): (arr: readonly T[]) => T;\nfunction findAssert<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): S;\nfunction findAssert<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T;\nfunction findAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findImplementation), args);\n}\n\nfind.assert = findAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findIndexImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number {\n const result = arr.findIndex(predicate);\n if (result === -1) {\n return new NotFoundError('Arr.findIndex.orError() :: predicate found no match.');\n }\n return result;\n}\n\nexport function findIndex<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | number;\nexport function findIndex<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number;\nexport function findIndex(...args: readonly unknown[]): unknown {\n return purry(findIndexImplementation, args);\n}\n\nfunction findIndexAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => number;\nfunction findIndexAssert<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): number;\nfunction findIndexAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findIndexImplementation), args);\n}\n\nfindIndex.assert = findIndexAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findLastImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T {\n // -1 unequivocally tells us \"not found\", where vale check on `null | undefined` doesn't because that could be a valid value\n const foundIndex = arr.findLastIndex(predicate);\n\n if (foundIndex === -1) {\n return new NotFoundError('Arr.findLast() :: predicate found no match.');\n }\n\n return arr[foundIndex]!;\n}\n\nexport function findLast<T, S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): (arr: readonly T[]) => NotFoundError | S;\nexport function findLast<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | T;\nexport function findLast<T, S extends T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n): NotFoundError | S;\nexport function findLast<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | T;\nexport function findLast(...args: readonly unknown[]): unknown {\n return purry(findLastImplementation, args);\n}\n\nfunction findLastAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T;\nfunction findLastAssert<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T;\nfunction findLastAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findLastImplementation), args);\n}\n\nfindLast.assert = findLastAssert;\n","import { NotFoundError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction findLastIndexImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number {\n const result = arr.findLastIndex(predicate);\n if (result === -1) {\n return new NotFoundError('Arr.findLastIndex() :: predicate found no match.');\n }\n return result;\n}\n\nexport function findLastIndex<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => NotFoundError | number;\nexport function findLastIndex<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): NotFoundError | number;\nexport function findLastIndex(...args: readonly unknown[]): unknown {\n return purry(findLastIndexImplementation, args);\n}\n\nfunction findLastIndexAssert<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => number;\nfunction findLastIndexAssert<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): number;\nfunction findLastIndexAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(findLastIndexImplementation), args);\n}\n\nfindLastIndex.assert = findLastIndexAssert;\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n *\n */\nexport function first<T>(arr: ReadonlyNonEmptyArray<T>): T[];\nexport function first<T>(arr: readonly T[]): EmptyArrayError | T;\nexport function first<T>(arr: readonly T[]): EmptyArrayError | T {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.first() :: array is empty');\n }\n return arr[0]!;\n}\n\nfunction firstAssert<T>(arr: readonly T[]): T {\n // @ts-expect-error\n return orThrow(first)(arr);\n}\n\nfirst.assert = firstAssert;\n","import { purry } from '../function/purry';\n\nfunction flatMapImplementation<T, U>(\n arr: readonly T[],\n callbackfn: (value: T, index: number, array: readonly T[]) => U | readonly U[],\n): U[] {\n return arr.flatMap(callbackfn);\n}\n\nexport function flatMap<T, U>(\n callbackfn: (value: T, index: number, array: readonly T[]) => U | readonly U[],\n): (arr: T[]) => U[];\nexport function flatMap<T, U>(arr: T[], callbackfn: (value: T, index: number, array: readonly U[]) => U[]): U[];\nexport function flatMap(...args: readonly unknown[]): unknown {\n return purry(flatMapImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction forEachImplementation<T>(arr: T[], callbackfn: (value: T, index: number, array: T[]) => void): T[] {\n arr.forEach(callbackfn);\n return arr;\n}\n\nexport function forEach<T>(callbackfn: (value: T, index: number, array: readonly T[]) => void): (arr: T[]) => T[];\nexport function forEach<T>(arr: T[], callbackfn: (value: T, index: number, array: readonly T[]) => void): T[];\nexport function forEach(...args: readonly unknown[]): unknown {\n return purry(forEachImplementation, args);\n}\n","import { orThrow } from '../function/orThrow';\n\n/**\n *\n */\nexport function init<T>(arr: readonly T[]): T[] {\n return arr.slice(0, arr.length - 1);\n}\n\nfunction initAssert<T>(arr: readonly T[]): T[] {\n // @ts-expect-error\n return orThrow(init)(arr);\n}\n\ninit.assert = initAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction insertImplementation<T>(arr: readonly T[], index: number, value: T): RangeError | T[] {\n try {\n return arr.with(index, value);\n } catch (_e) {\n return new RangeError(`Arr.insert() - Invalid index : ${index}`);\n }\n}\n\n/**\n * `with` is reserved word. So this function is uses `insert`\n * @throws RangeError\n */\nexport function insert<T>(index: number, value: T): (arr: readonly T[]) => T[];\nexport function insert<T>(arr: readonly T[], index: number, value: T): T[];\nexport function insert(...args: readonly unknown[]): unknown {\n return purry(insertImplementation, args);\n}\n\nfunction insertAssert<T>(index: number, value: T): (arr: readonly T[]) => T[];\nfunction insertAssert<T>(arr: readonly T[], index: number, value: T): T[];\nfunction insertAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(insertImplementation), args);\n}\n\ninsert.assert = insertAssert;\n","import type { NonEmptyArray, ReadonlyNonEmptyArray } from '../types';\n\nexport function isNotEmpty<T>(value: T[]): value is NonEmptyArray<T>;\nexport function isNotEmpty<T>(value: readonly T[]): value is ReadonlyNonEmptyArray<T>;\nexport function isNotEmpty(arr: readonly unknown[]): boolean {\n return arr.length > 0;\n}\n\n// TODO: is narrowing to [] really want I want here?\nexport function isEmpty<T>(value: T[]): value is [];\nexport function isEmpty<T>(value: readonly T[]): value is readonly [];\nexport function isEmpty(arr: readonly unknown[]): boolean {\n return arr.length === 0;\n}\n","import { purry } from '../function/purry';\n\nfunction joinImplementation(arr: string[], separator: string): string {\n return arr.join(separator);\n}\n\nexport function join(separator: string): (arr: string[]) => string;\nexport function join(arr: string[], separator: string): string;\nexport function join(...args: readonly unknown[]): unknown {\n return purry(joinImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n *\n */\nexport function last<T>(arr: ReadonlyNonEmptyArray<T>): T;\nexport function last<T>(arr: readonly T[]): EmptyArrayError | T;\nexport function last<T>(arr: readonly T[]): EmptyArrayError | T {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.last() :: array is empty');\n }\n return arr[arr.length - 1]!;\n}\n\nfunction lastAssert<T>(arr: readonly T[]): T {\n // @ts-expect-error\n return orThrow(last)(arr);\n}\n\nlast.assert = lastAssert;\n","/**\n * Returns length of array\n * @param arr\n * @returns\n */\nexport function length(arr: readonly unknown[]): number {\n return arr.length;\n}\n","import { purry } from '../function/purry';\n\nfunction mapImplementation<T, U>(\n arr: readonly T[],\n callbackfn: (value: T, index: number, array: readonly T[]) => U,\n): U[] {\n return arr.map(callbackfn);\n}\n\nexport function map<T, U>(callbackfn: (value: T, index: number, array: readonly T[]) => U): (arr: T[]) => U[];\nexport function map<T, U>(data: T[], callbackfn: (value: T, index: number, array: readonly T[]) => U): U[];\nexport function map(...args: readonly unknown[]): unknown {\n return purry(mapImplementation, args);\n}\n","/**\n * Arr.ofLength\n *\n * @throws {RangeError}\n */\nexport function ofLength<T = unknown>(arrayLength: number): T[] {\n return Array(arrayLength) as T[];\n}\n","import { purry } from '../function/purry';\n\nfunction partitionImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): [T[], T[]] {\n const len = arr.length;\n const left: T[] = [];\n const right: T[] = [];\n for (let i = 0; i < len; i += 1) {\n const value = arr[i]!;\n if (predicate(value, i, arr)) {\n left.push(value);\n } else {\n right.push(value);\n }\n }\n return [left, right];\n}\n\nexport function partition<T, S extends T>(\n predicate: (value: T, index: number, arr: readonly T[]) => value is S,\n): (data: readonly T[]) => [S[], T[]];\nexport function partition<T>(\n predicate: (value: T, index: number, arr: readonly T[]) => boolean,\n): (data: readonly T[]) => [T[], T[]];\nexport function partition<T, S extends T>(\n data: readonly T[],\n predicate: (value: T, index: number, arr: readonly T[]) => value is S,\n): [S[], T[]];\nexport function partition<T>(\n data: readonly T[],\n predicate: (value: T, index: number, arr: readonly T[]) => boolean,\n): [T[], T[]];\nexport function partition(...args: readonly unknown[]): unknown {\n return purry(partitionImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n * Array.pop\n */\nexport function pop<T>(arr: ReadonlyNonEmptyArray<T>): [T, T[]];\nexport function pop<T>(arr: readonly T[]): EmptyArrayError | [T, T[]];\nexport function pop<T>(arr: readonly T[]): EmptyArrayError | [T, T[]] {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.pop() :: array is empty');\n }\n const lastIndex = arr.length - 1;\n const last = arr[lastIndex]!;\n const tail = arr.slice(0, lastIndex);\n return [last, tail];\n}\n\nfunction popAssert<T>(arr: readonly T[]): [T, T[]] {\n // @ts-expect-error\n return orThrow(pop)(arr);\n}\n\npop.assert = popAssert;\n","import { purry } from '../function/purry';\n\nfunction prependImplementation<T>(arr: readonly T[], other: readonly T[]): T[] {\n return [...other, ...arr];\n}\n\nexport function prepend<T>(other: readonly T[]): (arr: readonly T[]) => T[];\nexport function prepend<T>(arr: readonly T[], other: readonly T[]): T[];\nexport function prepend(...args: readonly unknown[]): unknown {\n return purry(prependImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction pushImplementation<T>(arr: readonly T[], value: T): T[] {\n return [...arr, value];\n}\n\nexport function push<T>(value: T): (arr: readonly T[]) => T[];\nexport function push<T>(arr: readonly T[], value: T): T[];\nexport function push(...args: readonly unknown[]): unknown {\n return purry(pushImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceImplementation<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U {\n return arr.reduce(callbackFn, initialValue);\n}\n\nexport function reduce<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U;\nexport function reduce<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: readonly T[]) => U;\nexport function reduce(...args: readonly unknown[]): unknown {\n return purry(reduceImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduce1Implementation<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T {\n return arr.reduce(callbackFn);\n}\n\nexport function reduce1<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T;\nexport function reduce1<T>(\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): (arr: readonly T[]) => T;\nexport function reduce1(...args: readonly unknown[]): unknown {\n return purry(reduce1Implementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceRightImplementation<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U {\n return arr.reduceRight(callbackFn, initialValue);\n}\n\nexport function reduceRight<T, U>(\n arr: readonly T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U;\nexport function reduceRight<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: readonly T[]) => U;\nexport function reduceRight(...args: readonly unknown[]): unknown {\n return purry(reduceRightImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction reduceRight1Implementation<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T {\n return arr.reduceRight(callbackFn);\n}\n\nexport function reduceRight1<T>(\n arr: readonly T[],\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): T;\nexport function reduceRight1<T>(\n callbackFn: (acc: T, value: T, index: number, array: readonly T[]) => T,\n): (arr: readonly T[]) => T;\nexport function reduceRight1(...args: readonly unknown[]): unknown {\n return purry(reduceRight1Implementation, args);\n}\n","/**\n * Returns an array excluding the first entry\n * @param arr\n * @returns\n */\nexport function rest<T>(arr: readonly T[]): T[] {\n const [, ...tail] = arr;\n return tail;\n}\n","import { purry } from '../function/purry';\n\nfunction reverseImplementation<T>(arr: readonly T[]): T[] {\n return arr.toReversed();\n}\n\nexport function reverse(index: number): <T>(arr: readonly T[]) => T[];\nexport function reverse<T>(arr: readonly T[], index: number): T[];\nexport function reverse(...args: readonly unknown[]): unknown {\n return purry(reverseImplementation, args);\n}\n","import { purry } from '../function';\n\nfunction scanImplementation<T, U>(\n arr: T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U[] {\n const len = arr.length;\n const result = Array(len + 1) as U[];\n let acc = initialValue;\n result[0] = acc;\n for (let index = 0; index < len; index += 1) {\n acc = callbackFn(acc, arr[index]!, index, arr);\n result[index + 1] = acc;\n }\n return result;\n}\n\nexport function scan<T, U>(\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): (arr: T[]) => U[];\nexport function scan<T, U>(\n arr: T[],\n callbackFn: (acc: U, value: T, index: number, array: readonly T[]) => U,\n initialValue: U,\n): U[];\nexport function scan(...args: unknown[]): unknown {\n return purry(scanImplementation, args);\n}\n","import { EmptyArrayError } from '../errors';\nimport { orThrow } from '../function/orThrow';\nimport type { ReadonlyNonEmptyArray } from '../types';\n\n/**\n *\n */\nexport function shift<T>(arr: ReadonlyNonEmptyArray<T>): [T, T[]];\nexport function shift<T>(arr: readonly T[]): EmptyArrayError | [T, T[]] {\n if (arr.length === 0) {\n return new EmptyArrayError('Arr.shift() :: array is empty');\n }\n const [head, ...tail] = arr;\n return [head!, tail];\n}\n\nfunction shiftAssert<T>(arr: readonly T[]): [T, T[]] {\n // @ts-expect-error\n return orThrow(shift)(arr);\n}\n\nshift.assert = shiftAssert;\n","export function shuffle<T>(arr: T[]): T[] {\n const result = [...arr];\n const len = result.length;\n for (let i = 0; i < len; i += 1) {\n const rand = i + Math.floor(Math.random() * (len - i));\n const value = result[rand]!;\n result[rand] = result[i]!;\n result[i] = value;\n }\n return result;\n}\n","import { purry } from '../function/purry';\n\nfunction someImplementation<T>(\n arr: readonly T[],\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): boolean {\n return arr.some(predicate);\n}\n\nexport function some<T>(\n predicate: (value: T, index: number, array: readonly T[]) => boolean,\n): (arr: readonly T[]) => T[];\nexport function some<T>(arr: readonly T[], predicate: (value: T, index: number, array: readonly T[]) => boolean): T[];\nexport function some(...args: readonly unknown[]): unknown {\n return purry(someImplementation, args);\n}\n","import { purry } from '../function/purry';\nimport type { Order } from '../order/order.constants';\n\nfunction sortImplementation<T>(arr: T[], compareFn: (left: T, right: T) => Order): T[] {\n return arr.toSorted(compareFn);\n}\n\nexport function sort<T>(compareFn: (left: T, right: T) => Order): (arr: T[]) => T[];\nexport function sort<T>(arr: T[], compareFn: (left: T, right: T) => Order): T[];\nexport function sort(...args: readonly unknown[]): unknown {\n return purry(sortImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction sortByImplementation<T>(arr: T[], mapFn: (value: T) => Date | boolean | number | string): T[] {\n return arr.toSorted((left, right) => {\n const l = mapFn(left);\n const r = mapFn(right);\n if (l < r) return -1;\n if (l > r) return 0;\n return 0;\n });\n}\n\nexport function sortBy<T>(mapFn: (value: T) => Date | boolean | number | string): (arr: T[]) => T[];\nexport function sortBy<T>(arr: T[], mapFn: (value: T) => Date | boolean | number | string): T[];\nexport function sortBy(...args: readonly unknown[]): unknown {\n return purry(sortByImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction takeImplementation<T>(arr: readonly T[], limit: number): T[] {\n if (limit < 1) {\n throw new RangeError(`Arr.take() :: ${limit} must be a positive integer`);\n }\n\n return arr.slice(0, limit);\n}\n\n/**\n *\n * @throws {RangeError}\n */\nexport function take<T>(limit: number): (arr: readonly T[]) => T[];\nexport function take<T>(arr: readonly T[], limit: number): T[];\nexport function take(...args: readonly unknown[]): unknown {\n return purry(takeImplementation, args);\n}\n","export function transpose<T>(arr: T[][]): T[][] {\n // pre-populate result with empty arrays of max length of inners\n const maxLen = arr.reduce((acc, inner) => Math.max(acc, inner.length), 0);\n return Array(maxLen)\n .fill(undefined)\n .map((_, index) => arr.map(inner => inner[index]!));\n}\n","export function unique<T>(arr: readonly T[]): T[] {\n if (arr.length === 0) {\n return [];\n }\n return Array.from(new Set(arr));\n}\n","import { purry } from '../function/purry';\n\nfunction uniqueByImplementation<T>(arr: readonly T[], mapFn: (value: T) => unknown): T[] {\n if (arr.length === 0) {\n return [];\n }\n const map = new Map<unknown, T>();\n arr.forEach((_, index) => {\n const value = arr[index]!;\n const key = mapFn(value);\n if (!map.has(key)) {\n map.set(key, value);\n }\n });\n return Array.from(map.values());\n}\n\nexport function uniqueBy<T>(mapFn: (value: T) => unknown): (arr: T[]) => T[];\nexport function uniqueBy<T>(arr: T[], mapFn: (value: T) => unknown): T[];\nexport function uniqueBy(...args: unknown[]): unknown {\n return purry(uniqueByImplementation, args);\n}\n","export function uniqueWith<T>(arr: readonly T[], isEqual: (left: T, right: T) => boolean): T[] {\n if (arr.length === 0) {\n return [];\n }\n return arr.filter((value, index) => {\n const foundIndex = arr.find((otherValue, otherIndex) => index === otherIndex || isEqual(value, otherValue)) ?? -1; // logically this should never happen, but handle it to prevent runtime errors\n // only keep if foundIndex is same as current index.\n // Else it means that another entry was found to be isEqual further along in the iteration\n return index === foundIndex;\n });\n}\n","import { purry } from '../function/purry';\n\nfunction unshiftImplementation<T>(arr: readonly T[], value: T): T[] {\n return [value, ...arr];\n}\n\n/**\n * Immutably inserts new elements at the start of an array. Returns the new array.\n */\nexport function unshift<T>(value: T): (arr: readonly T[]) => T[];\nexport function unshift<T>(arr: readonly T[], value: T): T[];\nexport function unshift(...args: readonly unknown[]): unknown {\n return purry(unshiftImplementation, args);\n}\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction updateImplementation<T>(arr: readonly T[], index: number, fn: (valueR: T) => T): RangeError | T[] {\n if (index >= arr.length || index < -arr.length) {\n return new RangeError(`Arr.update() :: Invalid index : ${index}`);\n }\n const value = arr.at(index) as T;\n\n const updatedValue = fn(value);\n\n return arr.with(index, updatedValue);\n}\n\n/**\n *\n */\nexport function update<T>(index: number, fn: (value: T) => T): (arr: readonly T[]) => RangeError | T[];\nexport function update<T>(arr: readonly T[], index: number, fn: (value: T) => T): RangeError | T[];\nexport function update(...args: readonly unknown[]): unknown {\n return purry(updateImplementation, args);\n}\n\nfunction updateAssert<T>(index: number, fn: (value: T) => T): (arr: readonly T[]) => T[];\nfunction updateAssert<T>(arr: readonly T[], index: number, fn: (value: T) => T): T[];\nfunction updateAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(updateImplementation), args);\n}\n\nupdate.assert = updateAssert;\n","import { orThrow } from '../function/orThrow';\nimport { purry } from '../function/purry';\n\nfunction windowImplementation<T>(arr: readonly T[], size: number): T[][] {\n if (size < 1) {\n throw new RangeError(`Arr.window() :: ${size} must be a positive integer`);\n }\n\n const limit = arr.length - (size - 1);\n\n if (limit < 0) return [];\n\n return Array(limit)\n .fill(undefined)\n .map((_, index) => arr.slice(index, index + size));\n}\n\n/**\n *\n * @throws {RangeError}\n */\nexport function window(size: number): <T>(arr: readonly T[]) => T[][];\nexport function window<T>(arr: readonly T[], size: number): T[][];\nexport function window(...args: unknown[]): unknown {\n return purry(windowImplementation, args);\n}\n\nfunction windowAssert<T>(size: number): (arr: readonly T[]) => T[][];\nfunction windowAssert<T>(arr: readonly T[], size: number): T[][];\nfunction windowAssert(...args: readonly unknown[]): unknown {\n return purry(orThrow(windowImplementation), args);\n}\n\nwindow.assert = windowAssert;\n","import { purry } from '../function/purry';\n\nfunction zipImplementation<L, R>(arr: readonly L[], other: readonly R[]): [L, R][] {\n return Array(Math.min(arr.length, other.length))\n .fill(undefined)\n .map<[L, R]>((_, index) => [arr[index]!, other[index]!] as const);\n}\n\nexport function zip<L, R>(other: readonly R[]): (arr: readonly L[]) => [L, R][];\nexport function zip<L, R>(arr: readonly L[], other: readonly R[]): [L, R][];\nexport function zip(...args: unknown[]): unknown {\n return purry(zipImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction zipWithImplementation<L, R, U>(arr: readonly L[], other: readonly R[], fn: (l: L, R: R) => U): U[] {\n return Array(Math.min(arr.length, other.length))\n .fill(undefined)\n .map<U>((_, index) => fn(arr[index]!, other[index]!));\n}\n\nexport function zipWith<L, R, U>(other: readonly R[], fn: (l: L, R: R) => U): (arr: readonly L[]) => U[];\nexport function zipWith<L, R, U>(arr: readonly L[], other: readonly R[], fn: (l: L, R: R) => U): U[];\nexport function zipWith(...args: unknown[]): unknown {\n return purry(zipWithImplementation, args);\n}\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ //#region src/errors.d.ts
2
+ declare class AppError extends Error {
3
+ constructor(...args: Parameters<ErrorConstructor>);
4
+ }
5
+ /**
6
+ * Indicates that null or undefined was passed to a function that does not support it
7
+ */
8
+ /**
9
+ * Indicates that a calculation or operation resulted in Not-A-Number (NaN)
10
+ * where a valid number was required.
11
+ */
12
+ declare class NaNError extends AppError {}
13
+ /**
14
+ * Indicates that a requested element, item, or match was not found.
15
+ * Commonly used as a normalized, type-safe replacement for returning `-1`, `undefined`, or `null`.
16
+ */
17
+ declare class NotFoundError extends AppError {}
18
+ /**
19
+ * Indicates that an array operation was attempted on an empty array,
20
+ * but requires the array to contain at least one element.
21
+ */
22
+ declare class EmptyArrayError extends AppError {}
23
+ //#endregion
24
+ export { NaNError as n, NotFoundError as r, EmptyArrayError as t };
25
+ //# sourceMappingURL=errors-CJsLpYo9.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-CJsLpYo9.d.cts","names":[],"sources":["../src/errors.ts"],"mappings":";cAAM,QAAA,SAAiB,KAAA;iBACN,IAAA,EAAM,UAAA,CAAW,gBAAA;AAAA;;;;;;;;cAerB,QAAA,SAAiB,QAAQ;;AAfY;AAelD;;cAMa,aAAA,SAAsB,QAAQ;AANL;AAMtC;;;AANsC,cAYzB,eAAA,SAAwB,QAAQ"}
@@ -0,0 +1,25 @@
1
+ //#region src/errors.d.ts
2
+ declare class AppError extends Error {
3
+ constructor(...args: Parameters<ErrorConstructor>);
4
+ }
5
+ /**
6
+ * Indicates that null or undefined was passed to a function that does not support it
7
+ */
8
+ /**
9
+ * Indicates that a calculation or operation resulted in Not-A-Number (NaN)
10
+ * where a valid number was required.
11
+ */
12
+ declare class NaNError extends AppError {}
13
+ /**
14
+ * Indicates that a requested element, item, or match was not found.
15
+ * Commonly used as a normalized, type-safe replacement for returning `-1`, `undefined`, or `null`.
16
+ */
17
+ declare class NotFoundError extends AppError {}
18
+ /**
19
+ * Indicates that an array operation was attempted on an empty array,
20
+ * but requires the array to contain at least one element.
21
+ */
22
+ declare class EmptyArrayError extends AppError {}
23
+ //#endregion
24
+ export { NaNError as n, NotFoundError as r, EmptyArrayError as t };
25
+ //# sourceMappingURL=errors-CJsLpYo9.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-CJsLpYo9.d.mts","names":[],"sources":["../src/errors.ts"],"mappings":";cAAM,QAAA,SAAiB,KAAA;iBACN,IAAA,EAAM,UAAA,CAAW,gBAAA;AAAA;;;;;;;;cAerB,QAAA,SAAiB,QAAQ;;AAfY;AAelD;;cAMa,aAAA,SAAsB,QAAQ;AANL;AAMtC;;;AANsC,cAYzB,eAAA,SAAwB,QAAQ"}