@stacksjs/arrays 0.63.0 → 0.63.1
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/index.js +2 -341
- package/dist/index.js.map +2 -2
- package/package.json +1 -4
package/dist/index.js
CHANGED
|
@@ -1,344 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
var __export = (target, all) => {
|
|
4
|
-
for (var name in all)
|
|
5
|
-
__defProp(target, name, {
|
|
6
|
-
get: all[name],
|
|
7
|
-
enumerable: true,
|
|
8
|
-
configurable: true,
|
|
9
|
-
set: (newValue) => all[name] = () => newValue
|
|
10
|
-
});
|
|
11
|
-
};
|
|
2
|
+
var f=Object.defineProperty;var k=(z,E)=>{for(var G in E)f(z,G,{get:E[G],enumerable:!0,configurable:!0,set:(H)=>E[G]=()=>H})};var g={};k(g,{zScore:()=>d,variance:()=>x,uniqueBy:()=>D,unique:()=>m,uniq:()=>Q,toArray:()=>M,sum:()=>X,standardDeviation:()=>A,shuffle:()=>C,sample:()=>W,remove:()=>S,range:()=>F,product:()=>o,percentile:()=>l,partition:()=>B,move:()=>T,mode:()=>V,min:()=>b,mergeArrayable:()=>w,median:()=>P,max:()=>q,last:()=>O,interquartileRange:()=>i,flatten:()=>$,doesNotContain:()=>p,covariance:()=>c,containsOnly:()=>R,containsNone:()=>N,containsAny:()=>Z,containsAll:()=>Y,contains:()=>L,clampArrayRange:()=>j,avg:()=>u,average:()=>I,at:()=>U});import{clamp as h}from"@stacksjs/utils";function M(z){return z=z??[],Array.isArray(z)?z:[z]}function $(z){return M(z).flat(1)}function w(...z){return z.flatMap((E)=>M(E))}function B(z,...E){const G=Array.from({length:E.length+1}).fill(null).map(()=>[]);return z.forEach((H,J,K)=>{let _=0;for(let v of E){if(v(H,J,K)){G[_].push(H);return}_+=1}G[_].push(H)}),G}function Q(z){return Array.from(new Set(z))}function m(z){return Q(z)}function D(z,E){return z.reduce((G,H)=>{if(G.findIndex((K)=>E(H,K))===-1)G.push(H);return G},[])}function O(z){return U(z,-1)}function S(z,E){if(!z)return!1;const G=z.indexOf(E);if(G>=0)return z.splice(G,1),!0;return!1}function U(z,E){const G=z.length;if(!G)return;if(E<0)E+=G;return z[E]}function T(z,E,G){const H=z.length;if(!H)return[];if(E<0)E+=H;if(G<0)G+=H;const J=z.splice(E,1)[0];return z.splice(G,0,J),z}function j(z,E){return h(E,0,z.length-1)}function W(z,E){return Array.from({length:E},(G)=>z[Math.round(Math.random()*(z.length-1))])}function C(z){for(let E=z.length-1;E>0;E--){const G=Math.floor(Math.random()*(E+1));[z[E],z[G]]=[z[G],z[E]]}return z}function I(z){return X(z)/z.length}function u(z){return I(z)}function P(z){if(z.length===0)throw new Error("Cannot compute median of an empty array");const E=[...z].sort((J,K)=>J-K),G=Math.floor(E.length/2);let H;if(E.length%2!==0)H=E[G];else H=(E[G]+E[G-1])/2;return H}function V(z){return z.sort((E,G)=>z.filter((H)=>H===E).length-z.filter((H)=>H===G).length).pop()}function X(z){return z.reduce((E,G)=>E+G,0)}function o(z){return z.reduce((E,G)=>E*G,1)}function b(z){return Math.min(...z)}function q(z){return Math.max(...z)}function F(z){return q(z)-b(z)}function x(z){const E=I(z);return I(z.map((G)=>(G-E)**2))}function A(z){return Math.sqrt(x(z))}function d(z,E){return(E-I(z))/A(z)}function l(z,E){return z.filter((G)=>G<E).length/z.length}function i(z){const E=P(z.slice(0,Math.floor(z.length/2)));return P(z.slice(Math.ceil(z.length/2)))-E}function c(z,E){if(z.length!==E.length)throw new Error("Arrays must have the same length");const G=I(z),H=I(E);return I(z.map((J,K)=>(J-G)*(E[K]-H)))}function L(z,E){return E.some((G)=>z.includes(G))}function Y(z,E){return z.every((G)=>L(G,E))}function Z(z,E){return z.some((G)=>L(G,E))}function N(z,E){return!Z(z,E)}function R(z,E){return Y(E,z)}function p(z,E){return!L(z,E)}var Iz={contains(z,E){return L(z,E)},containsAll(z,E){return Y(z,E)},containsAny(z,E){return Z(z,E)},containsNone(z,E){return N(z,E)},containsOnly(z,E){return R(z,E)},doesNotContain(z,E){return p(z,E)},toArray(z){return M(z)},flatten(z){return $(z)},mergeArrayable(...z){return w(...z)},partition(z,E){return B(z,E)},random(z,E=1){return W(z,E).filter((G)=>G!=null)},sample(z,E=1){return W(z,E).filter((H)=>H!==void 0)},unique(z){return Q(z)},uniqueBy(z,E){return D(z,E)},last(z){return O(z)},remove(z,E){return S(z,E)},at(z,E){return U(z,E)},range(z){return F(z)},move(z,E,G){return T(z,E,G)},clampArrayRange(z,E){return j(z,E)},shuffle(z){return C(z)},sum(z){return X(z)},average(z){return I(z)},avg(z){return I(z)},median(z){return P(z)},mode(z){return V(z)}};export{d as zScore,x as variance,D as uniqueBy,m as unique,Q as uniq,M as toArray,X as sum,A as standardDeviation,C as shuffle,W as sample,S as remove,F as range,o as product,l as percentile,B as partition,T as move,V as mode,b as min,w as mergeArrayable,P as median,q as max,O as last,i as interquartileRange,$ as flatten,p as doesNotContain,c as covariance,R as containsOnly,N as containsNone,Z as containsAny,Y as containsAll,L as contains,j as clampArrayRange,u as avg,I as average,U as at,g as arr,Iz as Arr};
|
|
12
3
|
|
|
13
|
-
|
|
14
|
-
var exports_arr = {};
|
|
15
|
-
__export(exports_arr, {
|
|
16
|
-
zScore: () => zScore,
|
|
17
|
-
variance: () => variance,
|
|
18
|
-
uniqueBy: () => uniqueBy,
|
|
19
|
-
unique: () => unique,
|
|
20
|
-
uniq: () => uniq,
|
|
21
|
-
toArray: () => toArray,
|
|
22
|
-
sum: () => sum,
|
|
23
|
-
standardDeviation: () => standardDeviation,
|
|
24
|
-
shuffle: () => shuffle,
|
|
25
|
-
sample: () => sample,
|
|
26
|
-
remove: () => remove,
|
|
27
|
-
range: () => range,
|
|
28
|
-
product: () => product,
|
|
29
|
-
percentile: () => percentile,
|
|
30
|
-
partition: () => partition,
|
|
31
|
-
move: () => move,
|
|
32
|
-
mode: () => mode,
|
|
33
|
-
min: () => min,
|
|
34
|
-
mergeArrayable: () => mergeArrayable,
|
|
35
|
-
median: () => median,
|
|
36
|
-
max: () => max,
|
|
37
|
-
last: () => last,
|
|
38
|
-
interquartileRange: () => interquartileRange,
|
|
39
|
-
flatten: () => flatten,
|
|
40
|
-
doesNotContain: () => doesNotContain,
|
|
41
|
-
covariance: () => covariance,
|
|
42
|
-
containsOnly: () => containsOnly,
|
|
43
|
-
containsNone: () => containsNone,
|
|
44
|
-
containsAny: () => containsAny,
|
|
45
|
-
containsAll: () => containsAll,
|
|
46
|
-
contains: () => contains,
|
|
47
|
-
clampArrayRange: () => clampArrayRange,
|
|
48
|
-
avg: () => avg,
|
|
49
|
-
average: () => average,
|
|
50
|
-
at: () => at
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
// src/helpers.ts
|
|
54
|
-
import {clamp} from "@stacksjs/utils";
|
|
55
|
-
function toArray(array) {
|
|
56
|
-
array = array ?? [];
|
|
57
|
-
return Array.isArray(array) ? array : [array];
|
|
58
|
-
}
|
|
59
|
-
function flatten(array) {
|
|
60
|
-
return toArray(array).flat(1);
|
|
61
|
-
}
|
|
62
|
-
function mergeArrayable(...args) {
|
|
63
|
-
return args.flatMap((i) => toArray(i));
|
|
64
|
-
}
|
|
65
|
-
function partition(array, ...filters) {
|
|
66
|
-
const result = Array.from({ length: filters.length + 1 }).fill(null).map(() => []);
|
|
67
|
-
array.forEach((e, idx, arr) => {
|
|
68
|
-
let i = 0;
|
|
69
|
-
for (const filter of filters) {
|
|
70
|
-
if (filter(e, idx, arr)) {
|
|
71
|
-
result[i].push(e);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
i += 1;
|
|
75
|
-
}
|
|
76
|
-
result[i].push(e);
|
|
77
|
-
});
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
function uniq(array) {
|
|
81
|
-
return Array.from(new Set(array));
|
|
82
|
-
}
|
|
83
|
-
function unique(array) {
|
|
84
|
-
return uniq(array);
|
|
85
|
-
}
|
|
86
|
-
function uniqueBy(array, equalFn) {
|
|
87
|
-
return array.reduce((acc, cur) => {
|
|
88
|
-
const index = acc.findIndex((item) => equalFn(cur, item));
|
|
89
|
-
if (index === -1)
|
|
90
|
-
acc.push(cur);
|
|
91
|
-
return acc;
|
|
92
|
-
}, []);
|
|
93
|
-
}
|
|
94
|
-
function last(array) {
|
|
95
|
-
return at(array, -1);
|
|
96
|
-
}
|
|
97
|
-
function remove(array, value) {
|
|
98
|
-
if (!array)
|
|
99
|
-
return false;
|
|
100
|
-
const index = array.indexOf(value);
|
|
101
|
-
if (index >= 0) {
|
|
102
|
-
array.splice(index, 1);
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
function at(array, index) {
|
|
108
|
-
const len = array.length;
|
|
109
|
-
if (!len)
|
|
110
|
-
return;
|
|
111
|
-
if (index < 0)
|
|
112
|
-
index += len;
|
|
113
|
-
return array[index];
|
|
114
|
-
}
|
|
115
|
-
function move(array, from, to) {
|
|
116
|
-
const len = array.length;
|
|
117
|
-
if (!len)
|
|
118
|
-
return [];
|
|
119
|
-
if (from < 0)
|
|
120
|
-
from += len;
|
|
121
|
-
if (to < 0)
|
|
122
|
-
to += len;
|
|
123
|
-
const item = array.splice(from, 1)[0];
|
|
124
|
-
array.splice(to, 0, item);
|
|
125
|
-
return array;
|
|
126
|
-
}
|
|
127
|
-
function clampArrayRange(arr, n) {
|
|
128
|
-
return clamp(n, 0, arr.length - 1);
|
|
129
|
-
}
|
|
130
|
-
function sample(arr, count) {
|
|
131
|
-
return Array.from({ length: count }, (_) => arr[Math.round(Math.random() * (arr.length - 1))]);
|
|
132
|
-
}
|
|
133
|
-
function shuffle(array) {
|
|
134
|
-
for (let i = array.length - 1;i > 0; i--) {
|
|
135
|
-
const j = Math.floor(Math.random() * (i + 1));
|
|
136
|
-
[array[i], array[j]] = [array[j], array[i]];
|
|
137
|
-
}
|
|
138
|
-
return array;
|
|
139
|
-
}
|
|
140
|
-
// src/math.ts
|
|
141
|
-
function average(arr) {
|
|
142
|
-
return sum(arr) / arr.length;
|
|
143
|
-
}
|
|
144
|
-
function avg(arr) {
|
|
145
|
-
return average(arr);
|
|
146
|
-
}
|
|
147
|
-
function median(arr) {
|
|
148
|
-
if (arr.length === 0)
|
|
149
|
-
throw new Error("Cannot compute median of an empty array");
|
|
150
|
-
const sorted = [...arr].sort((a, b) => a - b);
|
|
151
|
-
const mid = Math.floor(sorted.length / 2);
|
|
152
|
-
let medianValue;
|
|
153
|
-
if (sorted.length % 2 !== 0)
|
|
154
|
-
medianValue = sorted[mid];
|
|
155
|
-
else
|
|
156
|
-
medianValue = (sorted[mid] + sorted[mid - 1]) / 2;
|
|
157
|
-
return medianValue;
|
|
158
|
-
}
|
|
159
|
-
function mode(arr) {
|
|
160
|
-
return arr.sort((a, b) => arr.filter((v) => v === a).length - arr.filter((v) => v === b).length).pop();
|
|
161
|
-
}
|
|
162
|
-
function sum(array) {
|
|
163
|
-
return array.reduce((acc, cur) => acc + cur, 0);
|
|
164
|
-
}
|
|
165
|
-
function product(array) {
|
|
166
|
-
return array.reduce((acc, cur) => acc * cur, 1);
|
|
167
|
-
}
|
|
168
|
-
function min(array) {
|
|
169
|
-
return Math.min(...array);
|
|
170
|
-
}
|
|
171
|
-
function max(array) {
|
|
172
|
-
return Math.max(...array);
|
|
173
|
-
}
|
|
174
|
-
function range(array) {
|
|
175
|
-
return max(array) - min(array);
|
|
176
|
-
}
|
|
177
|
-
function variance(array) {
|
|
178
|
-
const mean = average(array);
|
|
179
|
-
return average(array.map((num) => (num - mean) ** 2));
|
|
180
|
-
}
|
|
181
|
-
function standardDeviation(array) {
|
|
182
|
-
return Math.sqrt(variance(array));
|
|
183
|
-
}
|
|
184
|
-
function zScore(array, num) {
|
|
185
|
-
return (num - average(array)) / standardDeviation(array);
|
|
186
|
-
}
|
|
187
|
-
function percentile(array, num) {
|
|
188
|
-
return array.filter((n) => n < num).length / array.length;
|
|
189
|
-
}
|
|
190
|
-
function interquartileRange(array) {
|
|
191
|
-
const q1 = median(array.slice(0, Math.floor(array.length / 2)));
|
|
192
|
-
const q3 = median(array.slice(Math.ceil(array.length / 2)));
|
|
193
|
-
return q3 - q1;
|
|
194
|
-
}
|
|
195
|
-
function covariance(array1, array2) {
|
|
196
|
-
if (array1.length !== array2.length)
|
|
197
|
-
throw new Error("Arrays must have the same length");
|
|
198
|
-
const mean1 = average(array1);
|
|
199
|
-
const mean2 = average(array2);
|
|
200
|
-
return average(array1.map((num1, i) => (num1 - mean1) * (array2[i] - mean2)));
|
|
201
|
-
}
|
|
202
|
-
// src/contains.ts
|
|
203
|
-
function contains(needle, haystack) {
|
|
204
|
-
return haystack.some((hay) => needle.includes(hay));
|
|
205
|
-
}
|
|
206
|
-
function containsAll(needles, haystack) {
|
|
207
|
-
return needles.every((needle) => contains(needle, haystack));
|
|
208
|
-
}
|
|
209
|
-
function containsAny(needles, haystack) {
|
|
210
|
-
return needles.some((needle) => contains(needle, haystack));
|
|
211
|
-
}
|
|
212
|
-
function containsNone(needles, haystack) {
|
|
213
|
-
return !containsAny(needles, haystack);
|
|
214
|
-
}
|
|
215
|
-
function containsOnly(needles, haystack) {
|
|
216
|
-
return containsAll(haystack, needles);
|
|
217
|
-
}
|
|
218
|
-
function doesNotContain(needle, haystack) {
|
|
219
|
-
return !contains(needle, haystack);
|
|
220
|
-
}
|
|
221
|
-
// src/macro.ts
|
|
222
|
-
var Arr = {
|
|
223
|
-
contains(needle, haystack) {
|
|
224
|
-
return contains(needle, haystack);
|
|
225
|
-
},
|
|
226
|
-
containsAll(needles, haystack) {
|
|
227
|
-
return containsAll(needles, haystack);
|
|
228
|
-
},
|
|
229
|
-
containsAny(needles, haystack) {
|
|
230
|
-
return containsAny(needles, haystack);
|
|
231
|
-
},
|
|
232
|
-
containsNone(needles, haystack) {
|
|
233
|
-
return containsNone(needles, haystack);
|
|
234
|
-
},
|
|
235
|
-
containsOnly(needles, haystack) {
|
|
236
|
-
return containsOnly(needles, haystack);
|
|
237
|
-
},
|
|
238
|
-
doesNotContain(needle, haystack) {
|
|
239
|
-
return doesNotContain(needle, haystack);
|
|
240
|
-
},
|
|
241
|
-
toArray(array) {
|
|
242
|
-
return toArray(array);
|
|
243
|
-
},
|
|
244
|
-
flatten(array) {
|
|
245
|
-
return flatten(array);
|
|
246
|
-
},
|
|
247
|
-
mergeArrayable(...args) {
|
|
248
|
-
return mergeArrayable(...args);
|
|
249
|
-
},
|
|
250
|
-
partition(array, filter) {
|
|
251
|
-
return partition(array, filter);
|
|
252
|
-
},
|
|
253
|
-
random(arr, count = 1) {
|
|
254
|
-
return sample(arr, count).filter((item) => item != null);
|
|
255
|
-
},
|
|
256
|
-
sample(arr, count = 1) {
|
|
257
|
-
const sampleArr = sample(arr, count);
|
|
258
|
-
return sampleArr.filter((item) => item !== undefined);
|
|
259
|
-
},
|
|
260
|
-
unique(arr) {
|
|
261
|
-
return uniq(arr);
|
|
262
|
-
},
|
|
263
|
-
uniqueBy(arr, equalFn) {
|
|
264
|
-
return uniqueBy(arr, equalFn);
|
|
265
|
-
},
|
|
266
|
-
last(arr) {
|
|
267
|
-
return last(arr);
|
|
268
|
-
},
|
|
269
|
-
remove(arr, value) {
|
|
270
|
-
return remove(arr, value);
|
|
271
|
-
},
|
|
272
|
-
at(arr, index) {
|
|
273
|
-
return at(arr, index);
|
|
274
|
-
},
|
|
275
|
-
range(arr) {
|
|
276
|
-
return range(arr);
|
|
277
|
-
},
|
|
278
|
-
move(arr, from, to) {
|
|
279
|
-
return move(arr, from, to);
|
|
280
|
-
},
|
|
281
|
-
clampArrayRange(arr, n) {
|
|
282
|
-
return clampArrayRange(arr, n);
|
|
283
|
-
},
|
|
284
|
-
shuffle(arr) {
|
|
285
|
-
return shuffle(arr);
|
|
286
|
-
},
|
|
287
|
-
sum(arr) {
|
|
288
|
-
return sum(arr);
|
|
289
|
-
},
|
|
290
|
-
average(arr) {
|
|
291
|
-
return average(arr);
|
|
292
|
-
},
|
|
293
|
-
avg(arr) {
|
|
294
|
-
return average(arr);
|
|
295
|
-
},
|
|
296
|
-
median(arr) {
|
|
297
|
-
return median(arr);
|
|
298
|
-
},
|
|
299
|
-
mode(arr) {
|
|
300
|
-
return mode(arr);
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
export {
|
|
304
|
-
zScore,
|
|
305
|
-
variance,
|
|
306
|
-
uniqueBy,
|
|
307
|
-
unique,
|
|
308
|
-
uniq,
|
|
309
|
-
toArray,
|
|
310
|
-
sum,
|
|
311
|
-
standardDeviation,
|
|
312
|
-
shuffle,
|
|
313
|
-
sample,
|
|
314
|
-
remove,
|
|
315
|
-
range,
|
|
316
|
-
product,
|
|
317
|
-
percentile,
|
|
318
|
-
partition,
|
|
319
|
-
move,
|
|
320
|
-
mode,
|
|
321
|
-
min,
|
|
322
|
-
mergeArrayable,
|
|
323
|
-
median,
|
|
324
|
-
max,
|
|
325
|
-
last,
|
|
326
|
-
interquartileRange,
|
|
327
|
-
flatten,
|
|
328
|
-
doesNotContain,
|
|
329
|
-
covariance,
|
|
330
|
-
containsOnly,
|
|
331
|
-
containsNone,
|
|
332
|
-
containsAny,
|
|
333
|
-
containsAll,
|
|
334
|
-
contains,
|
|
335
|
-
clampArrayRange,
|
|
336
|
-
avg,
|
|
337
|
-
average,
|
|
338
|
-
at,
|
|
339
|
-
exports_arr as arr,
|
|
340
|
-
Arr
|
|
341
|
-
};
|
|
342
|
-
|
|
343
|
-
//# debugId=7D05277ADEE343F464756E2164756E21
|
|
4
|
+
//# debugId=02C254EE35F1DAD964756E2164756E21
|
|
344
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"/**\n * Returns true if the needle is contained in the haystack.\n *\n * @param needle\n * @param haystack\n * @example\n * ```ts\n * contains('foo', ['foo', 'bar']) // true\n * contains('foo', ['bar']) // false\n * ```\n */\nexport function contains(needle: string, haystack: string[]) {\n return haystack.some((hay) => needle.includes(hay))\n}\n\n/**\n * Returns true if all needles are contained in the haystack.\n * @param needles\n * @param haystack\n * @example\n * ```ts\n * containsAll(['foo', 'bar'], ['foo', 'bar', 'baz']) // true\n * containsAll(['foo', 'bar'], ['foo', 'baz']) // false\n * ```\n */\nexport function containsAll(needles: string[], haystack: string[]) {\n return needles.every((needle) => contains(needle, haystack))\n}\n\n/**\n * Returns true if any needle is contained in the haystack.\n * @param needles\n * @param haystack\n * @example\n * ```ts\n * containsAny(['foo', 'bar'], ['foo', 'bar', 'baz']) // true\n * containsAny(['foo', 'bar'], ['foo', 'baz']) // true\n * containsAny(['foo', 'bar'], ['baz']) // false\n * ```\n */\nexport function containsAny(needles: string[], haystack: string[]) {\n return needles.some((needle) => contains(needle, haystack))\n}\n\n/**\n * Returns true if none of the needles are contained in the haystack.\n * @param needles\n * @param haystack\n * @example\n * ```ts\n * containsNone(['foo', 'bar'], ['foo', 'bar', 'baz']) // false\n * containsNone(['foo', 'bar'], ['foo', 'baz']) // false\n * containsNone(['foo', 'bar'], ['baz']) // true\n * ```\n */\nexport function containsNone(needles: string[], haystack: string[]) {\n return !containsAny(needles, haystack)\n}\n\n/**\n * Returns true if all needles are contained in the haystack.\n * @param needles\n * @param haystack\n * @example\n * ```ts\n * containsOnly(['foo', 'bar'], ['foo', 'bar', 'baz']) // false\n * containsOnly(['foo', 'bar'], ['foo', 'baz']) // false\n * containsOnly(['foo', 'bar'], ['foo', 'bar']) // true\n * ```\n */\nexport function containsOnly(needles: string[], haystack: string[]) {\n return containsAll(haystack, needles)\n}\n\n/**\n * Returns true if the needle is not contained in the haystack.\n * @param needle\n * @param haystack\n * @example\n * ```ts\n * doesNotContain('foo', ['foo', 'bar']) // false\n * doesNotContain('foo', ['bar']) // true\n * ```\n */\nexport function doesNotContain(needle: string, haystack: string[]) {\n return !contains(needle, haystack)\n}\n",
|
|
8
8
|
"import type { Arrayable, Nullable } from '@stacksjs/types'\nimport { contains, containsAll, containsAny, containsNone, containsOnly, doesNotContain } from './contains'\nimport type { PartitionFilter } from './helpers'\nimport {\n at,\n clampArrayRange,\n flatten,\n last,\n mergeArrayable,\n move,\n partition,\n remove,\n sample,\n shuffle,\n toArray,\n uniq,\n uniqueBy,\n} from './helpers'\nimport { average, median, mode, range, sum } from './math'\n\nexport const Arr = {\n contains(needle: string, haystack: string[]) {\n return contains(needle, haystack)\n },\n\n containsAll(needles: string[], haystack: string[]) {\n return containsAll(needles, haystack)\n },\n\n containsAny(needles: string[], haystack: string[]) {\n return containsAny(needles, haystack)\n },\n\n containsNone(needles: string[], haystack: string[]) {\n return containsNone(needles, haystack)\n },\n\n containsOnly(needles: string[], haystack: string[]) {\n return containsOnly(needles, haystack)\n },\n\n doesNotContain(needle: string, haystack: string[]) {\n return doesNotContain(needle, haystack)\n },\n\n toArray<T>(array?: Nullable<Arrayable<T>>): Array<T> {\n return toArray(array)\n },\n\n flatten<T>(array?: Nullable<Arrayable<T | Array<T>>>): Array<T> {\n return flatten(array)\n },\n\n mergeArrayable<T>(...args: Nullable<Arrayable<T>>[]): Array<T> {\n return mergeArrayable(...args)\n },\n\n partition<T>(array: readonly T[], filter: PartitionFilter<T>): [T[], T[]] {\n return partition(array, filter)\n },\n\n /**\n * Returns a random item/s from the array\n */\n random<T>(arr: T[], count = 1): T[] {\n return sample(arr, count).filter((item): item is T => item != null)\n },\n\n /**\n * Returns random item/s from the array\n */\n sample<T>(arr: T[], count = 1): T[] {\n // Get the sample array (may contain undefined values)\n const sampleArr = sample(arr, count)\n\n // Filter out any undefined values\n return sampleArr.filter((item): item is T => item !== undefined)\n },\n\n unique<T>(arr: T[]): T[] {\n return uniq(arr)\n },\n\n uniqueBy<T>(arr: readonly T[], equalFn: (a: any, b: any) => boolean): T[] {\n return uniqueBy(arr, equalFn)\n },\n\n last<T>(arr: T[]): T | undefined {\n return last(arr)\n },\n\n remove<T>(arr: T[], value: T) {\n return remove(arr, value)\n },\n\n at(arr: any[], index: number): any {\n return at(arr, index)\n },\n\n range(arr: readonly number[]): number {\n return range(arr)\n },\n\n move<T>(arr: T[], from: number, to: number): T[] {\n return move(arr, from, to)\n },\n\n clampArrayRange(arr: readonly unknown[], n: number) {\n return clampArrayRange(arr, n)\n },\n\n shuffle<T>(arr: T[]): T[] {\n return shuffle(arr)\n },\n\n /**\n * Returns the sum of all items in the array\n */\n sum(arr: number[]): number {\n return sum(arr)\n },\n\n /**\n * Returns the average of all items in the array\n */\n average(arr: number[]): number {\n return average(arr)\n },\n\n avg(arr: number[]): number {\n return average(arr)\n },\n\n /**\n * Returns the median of all items in the array\n */\n median(arr: number[]): number {\n return median(arr)\n },\n\n /**\n * Returns the mode of all items in the array\n */\n mode(arr: number[]): number {\n return mode(arr)\n },\n}\n\nexport const arr = Arr\n"
|
|
9
9
|
],
|
|
10
|
-
"mappings": "
|
|
11
|
-
"debugId": "
|
|
10
|
+
"mappings": "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",
|
|
11
|
+
"debugId": "02C254EE35F1DAD964756E2164756E21",
|
|
12
12
|
"names": []
|
|
13
13
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/arrays",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.63.
|
|
4
|
+
"version": "0.63.1",
|
|
5
5
|
"description": "The Stacks array utilities.",
|
|
6
6
|
"author": "Chris Breuer",
|
|
7
7
|
"license": "MIT",
|
|
@@ -48,9 +48,6 @@
|
|
|
48
48
|
"typecheck": "bun --bun tsc --noEmit",
|
|
49
49
|
"prepublishOnly": "bun run build"
|
|
50
50
|
},
|
|
51
|
-
"peerDependencies": {
|
|
52
|
-
"@stacksjs/utils": "latest"
|
|
53
|
-
},
|
|
54
51
|
"dependencies": {
|
|
55
52
|
"@stacksjs/utils": "latest"
|
|
56
53
|
},
|