@bemoje/array 1.0.0 → 1.0.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.
@@ -1,28 +1,28 @@
1
- export * from './arrAverage';
2
- export * from './arrEachToString';
3
- export * from './arrFindIndicesOf';
4
- export * from './arrGetOrDefault';
5
- export * from './arrHasDuplicates';
6
- export * from './arrIndicesOf';
7
- export * from './arrLast';
8
- export * from './arrMapMutable';
9
- export * from './arrObjectsToTable';
10
- export * from './arrObjectsUniqueKeys';
11
- export * from './arrRemove';
12
- export * from './arrRemoveDuplicates';
13
- export * from './arrRemoveMutable';
14
- export * from './arrShuffle';
15
- export * from './arrSortNumeric';
16
- export * from './arrSortedInsertionIndex';
17
- export * from './arrSum';
18
- export * from './arrSwap';
19
- export * from './arrTableAssertRowsSameLength';
20
- export * from './arrTableEachToString';
21
- export * from './arrTableIterateAsObjects';
22
- export * from './arrTableRemoveColumns';
23
- export * from './arrTableToCsv';
24
- export * from './arrTableToObjects';
25
- export * from './arrayToString';
1
+ export * from './lib/arrAverage';
2
+ export * from './lib/arrEachToString';
3
+ export * from './lib/arrFindIndicesOf';
4
+ export * from './lib/arrGetOrDefault';
5
+ export * from './lib/arrHasDuplicates';
6
+ export * from './lib/arrIndicesOf';
7
+ export * from './lib/arrLast';
8
+ export * from './lib/arrMapMutable';
9
+ export * from './lib/arrObjectsToTable';
10
+ export * from './lib/arrObjectsUniqueKeys';
11
+ export * from './lib/arrRemove';
12
+ export * from './lib/arrRemoveDuplicates';
13
+ export * from './lib/arrRemoveMutable';
14
+ export * from './lib/arrShuffle';
15
+ export * from './lib/arrSortNumeric';
16
+ export * from './lib/arrSortedInsertionIndex';
17
+ export * from './lib/arrSum';
18
+ export * from './lib/arrSwap';
19
+ export * from './lib/arrTableAssertRowsSameLength';
20
+ export * from './lib/arrTableEachToString';
21
+ export * from './lib/arrTableIterateAsObjects';
22
+ export * from './lib/arrTableRemoveColumns';
23
+ export * from './lib/arrTableToCsv';
24
+ export * from './lib/arrTableToObjects';
25
+ export * from './lib/arrayToString';
26
26
  declare const _default: {
27
27
  arrayToString<T>(array: T[]): string;
28
28
  arrTableToObjects<T>(rows: T[][], headers?: string[], ignoreKeys?: Set<string>): Record<string, T>[];
@@ -1,44 +1,46 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
2
  var __export = (target, all) => {
4
3
  for (var name in all)
5
4
  __defProp(target, name, { get: all[name], enumerable: true });
6
5
  };
7
6
 
8
- // src/arrAverage.ts
7
+ // src/lib/arrAverage.ts
9
8
  var arrAverage_exports = {};
10
9
  __export(arrAverage_exports, {
11
10
  arrAverage: () => arrAverage
12
11
  });
13
12
 
14
- // src/arrSum.ts
13
+ // src/lib/arrSum.ts
15
14
  var arrSum_exports = {};
16
15
  __export(arrSum_exports, {
17
16
  arrSum: () => arrSum
18
17
  });
19
18
  function arrSum(array) {
20
- return array.reduce((acc, cur) => acc + cur, 0);
19
+ return array.reduce((acc, cur) => {
20
+ return acc + cur;
21
+ }, 0);
21
22
  }
22
- __name(arrSum, "arrSum");
23
23
 
24
- // src/arrAverage.ts
24
+ // src/lib/arrAverage.ts
25
25
  function arrAverage(array) {
26
- if (!array.length) throw new Error("Cannot take an average of zero values.");
26
+ if (!array.length) {
27
+ throw new Error("Cannot take an average of zero values.");
28
+ }
27
29
  return arrSum(array) / array.length;
28
30
  }
29
- __name(arrAverage, "arrAverage");
30
31
 
31
- // src/arrEachToString.ts
32
+ // src/lib/arrEachToString.ts
32
33
  var arrEachToString_exports = {};
33
34
  __export(arrEachToString_exports, {
34
35
  arrEachToString: () => arrEachToString
35
36
  });
36
37
  function arrEachToString(array) {
37
- return array.map((element) => "" + element);
38
+ return array.map((element) => {
39
+ return `${element}`;
40
+ });
38
41
  }
39
- __name(arrEachToString, "arrEachToString");
40
42
 
41
- // src/arrFindIndicesOf.ts
43
+ // src/lib/arrFindIndicesOf.ts
42
44
  var arrFindIndicesOf_exports = {};
43
45
  __export(arrFindIndicesOf_exports, {
44
46
  arrFindIndicesOf: () => arrFindIndicesOf
@@ -52,21 +54,21 @@ function arrFindIndicesOf(input, predicate) {
52
54
  }
53
55
  return result;
54
56
  }
55
- __name(arrFindIndicesOf, "arrFindIndicesOf");
56
57
 
57
- // src/arrGetOrDefault.ts
58
+ // src/lib/arrGetOrDefault.ts
58
59
  var arrGetOrDefault_exports = {};
59
60
  __export(arrGetOrDefault_exports, {
60
61
  arrGetOrDefault: () => arrGetOrDefault
61
62
  });
62
63
  function arrGetOrDefault(array, index, factory) {
63
64
  const value = array[index];
64
- if (value !== void 0 || Object.hasOwn(array, index)) return value;
65
+ if (value !== void 0 || Object.hasOwn(array, index)) {
66
+ return value;
67
+ }
65
68
  return array[index] = factory(index);
66
69
  }
67
- __name(arrGetOrDefault, "arrGetOrDefault");
68
70
 
69
- // src/arrHasDuplicates.ts
71
+ // src/lib/arrHasDuplicates.ts
70
72
  var arrHasDuplicates_exports = {};
71
73
  __export(arrHasDuplicates_exports, {
72
74
  arrHasDuplicates: () => arrHasDuplicates
@@ -74,14 +76,15 @@ __export(arrHasDuplicates_exports, {
74
76
  function arrHasDuplicates(arr) {
75
77
  const seen = /* @__PURE__ */ new Set();
76
78
  for (const e of arr) {
77
- if (seen.has(e)) return true;
79
+ if (seen.has(e)) {
80
+ return true;
81
+ }
78
82
  seen.add(e);
79
83
  }
80
84
  return false;
81
85
  }
82
- __name(arrHasDuplicates, "arrHasDuplicates");
83
86
 
84
- // src/arrIndicesOf.ts
87
+ // src/lib/arrIndicesOf.ts
85
88
  var arrIndicesOf_exports = {};
86
89
  __export(arrIndicesOf_exports, {
87
90
  arrIndicesOf: () => arrIndicesOf
@@ -95,20 +98,20 @@ function arrIndicesOf(input, element) {
95
98
  }
96
99
  return result;
97
100
  }
98
- __name(arrIndicesOf, "arrIndicesOf");
99
101
 
100
- // src/arrLast.ts
102
+ // src/lib/arrLast.ts
101
103
  var arrLast_exports = {};
102
104
  __export(arrLast_exports, {
103
105
  arrLast: () => arrLast
104
106
  });
105
107
  function arrLast(array) {
106
- if (!array.length) throw new Error("Cannot get last element of empty array.");
108
+ if (!array.length) {
109
+ throw new Error("Cannot get last element of empty array.");
110
+ }
107
111
  return array[array.length - 1];
108
112
  }
109
- __name(arrLast, "arrLast");
110
113
 
111
- // src/arrMapMutable.ts
114
+ // src/lib/arrMapMutable.ts
112
115
  var arrMapMutable_exports = {};
113
116
  __export(arrMapMutable_exports, {
114
117
  arrMapMutable: () => arrMapMutable
@@ -119,15 +122,14 @@ function arrMapMutable(input, f) {
119
122
  }
120
123
  return input;
121
124
  }
122
- __name(arrMapMutable, "arrMapMutable");
123
125
 
124
- // src/arrObjectsToTable.ts
126
+ // src/lib/arrObjectsToTable.ts
125
127
  var arrObjectsToTable_exports = {};
126
128
  __export(arrObjectsToTable_exports, {
127
129
  arrObjectsToTable: () => arrObjectsToTable
128
130
  });
129
131
 
130
- // src/arrObjectsUniqueKeys.ts
132
+ // src/lib/arrObjectsUniqueKeys.ts
131
133
  var arrObjectsUniqueKeys_exports = {};
132
134
  __export(arrObjectsUniqueKeys_exports, {
133
135
  arrObjectsUniqueKeys: () => arrObjectsUniqueKeys
@@ -141,9 +143,8 @@ function arrObjectsUniqueKeys(objects) {
141
143
  }
142
144
  return Array.from(keys);
143
145
  }
144
- __name(arrObjectsUniqueKeys, "arrObjectsUniqueKeys");
145
146
 
146
- // src/arrObjectsToTable.ts
147
+ // src/lib/arrObjectsToTable.ts
147
148
  function arrObjectsToTable(objects, options = {}) {
148
149
  const headers = options?.headers?.slice() || arrObjectsUniqueKeys(objects);
149
150
  const table = [headers];
@@ -156,19 +157,19 @@ function arrObjectsToTable(objects, options = {}) {
156
157
  }
157
158
  return table;
158
159
  }
159
- __name(arrObjectsToTable, "arrObjectsToTable");
160
160
 
161
- // src/arrRemove.ts
161
+ // src/lib/arrRemove.ts
162
162
  var arrRemove_exports = {};
163
163
  __export(arrRemove_exports, {
164
164
  arrRemove: () => arrRemove
165
165
  });
166
166
  function arrRemove(arr, elementToRemove) {
167
- return arr.filter((element) => element !== elementToRemove);
167
+ return arr.filter((element) => {
168
+ return element !== elementToRemove;
169
+ });
168
170
  }
169
- __name(arrRemove, "arrRemove");
170
171
 
171
- // src/arrRemoveDuplicates.ts
172
+ // src/lib/arrRemoveDuplicates.ts
172
173
  var arrRemoveDuplicates_exports = {};
173
174
  __export(arrRemoveDuplicates_exports, {
174
175
  arrRemoveDuplicates: () => arrRemoveDuplicates
@@ -176,9 +177,8 @@ __export(arrRemoveDuplicates_exports, {
176
177
  function arrRemoveDuplicates(array) {
177
178
  return Array.from(new Set(array));
178
179
  }
179
- __name(arrRemoveDuplicates, "arrRemoveDuplicates");
180
180
 
181
- // src/arrRemoveMutable.ts
181
+ // src/lib/arrRemoveMutable.ts
182
182
  var arrRemoveMutable_exports = {};
183
183
  __export(arrRemoveMutable_exports, {
184
184
  arrRemoveMutable: () => arrRemoveMutable
@@ -190,29 +190,32 @@ function arrRemoveMutable(arr, elementToRemove) {
190
190
  index = arr.indexOf(elementToRemove);
191
191
  }
192
192
  }
193
- __name(arrRemoveMutable, "arrRemoveMutable");
194
193
 
195
- // src/arrShuffle.ts
194
+ // src/lib/arrShuffle.ts
196
195
  var arrShuffle_exports = {};
197
196
  __export(arrShuffle_exports, {
198
197
  arrShuffle: () => arrShuffle
199
198
  });
200
199
 
201
- // src/arrSwap.ts
200
+ // src/lib/arrSwap.ts
202
201
  var arrSwap_exports = {};
203
202
  __export(arrSwap_exports, {
204
203
  arrSwap: () => arrSwap
205
204
  });
206
205
  function arrSwap(input, from, to) {
207
- if (from === to) return input;
206
+ if (from === to) {
207
+ return input;
208
+ }
209
+ ;
208
210
  [input[from], input[to]] = [input[to], input[from]];
209
211
  return input;
210
212
  }
211
- __name(arrSwap, "arrSwap");
212
213
 
213
- // src/arrShuffle.ts
214
+ // src/lib/arrShuffle.ts
214
215
  function arrShuffle(input) {
215
- if (input.length <= 1) return input;
216
+ if (input.length <= 1) {
217
+ return input;
218
+ }
216
219
  const original = input.slice();
217
220
  let equal = true;
218
221
  while (equal) {
@@ -224,23 +227,25 @@ function arrShuffle(input) {
224
227
  }
225
228
  return input;
226
229
  }
227
- __name(arrShuffle, "arrShuffle");
228
230
 
229
- // src/arrSortNumeric.ts
231
+ // src/lib/arrSortNumeric.ts
230
232
  var arrSortNumeric_exports = {};
231
233
  __export(arrSortNumeric_exports, {
232
234
  arrSortNumeric: () => arrSortNumeric
233
235
  });
234
236
  function arrSortNumeric(input) {
235
237
  return input.sort((a, b) => {
236
- if (a < b) return -1;
237
- if (a > b) return 1;
238
+ if (a < b) {
239
+ return -1;
240
+ }
241
+ if (a > b) {
242
+ return 1;
243
+ }
238
244
  return 0;
239
245
  });
240
246
  }
241
- __name(arrSortNumeric, "arrSortNumeric");
242
247
 
243
- // src/arrSortedInsertionIndex.ts
248
+ // src/lib/arrSortedInsertionIndex.ts
244
249
  var arrSortedInsertionIndex_exports = {};
245
250
  __export(arrSortedInsertionIndex_exports, {
246
251
  arrSortedInsertionIndex: () => arrSortedInsertionIndex
@@ -252,7 +257,8 @@ function arrSortedInsertionIndex(array, value, comparator) {
252
257
  const step = Math.trunc(count / 2);
253
258
  let it = first + step;
254
259
  if (comparator(array[it], value) <= 0) {
255
- first = ++it;
260
+ it++;
261
+ first = it;
256
262
  count -= step + 1;
257
263
  } else {
258
264
  count = step;
@@ -260,9 +266,8 @@ function arrSortedInsertionIndex(array, value, comparator) {
260
266
  }
261
267
  return first;
262
268
  }
263
- __name(arrSortedInsertionIndex, "arrSortedInsertionIndex");
264
269
 
265
- // src/arrTableAssertRowsSameLength.ts
270
+ // src/lib/arrTableAssertRowsSameLength.ts
266
271
  var arrTableAssertRowsSameLength_exports = {};
267
272
  __export(arrTableAssertRowsSameLength_exports, {
268
273
  arrTableAssertRowsSameLength: () => arrTableAssertRowsSameLength
@@ -275,9 +280,8 @@ function arrTableAssertRowsSameLength(rows, headers) {
275
280
  }
276
281
  }
277
282
  }
278
- __name(arrTableAssertRowsSameLength, "arrTableAssertRowsSameLength");
279
283
 
280
- // src/arrTableEachToString.ts
284
+ // src/lib/arrTableEachToString.ts
281
285
  var arrTableEachToString_exports = {};
282
286
  __export(arrTableEachToString_exports, {
283
287
  arrTableEachToString: () => arrTableEachToString
@@ -285,9 +289,8 @@ __export(arrTableEachToString_exports, {
285
289
  function arrTableEachToString(table) {
286
290
  return table.map(arrEachToString);
287
291
  }
288
- __name(arrTableEachToString, "arrTableEachToString");
289
292
 
290
- // src/arrTableIterateAsObjects.ts
293
+ // src/lib/arrTableIterateAsObjects.ts
291
294
  var arrTableIterateAsObjects_exports = {};
292
295
  __export(arrTableIterateAsObjects_exports, {
293
296
  arrTableIterateAsObjects: () => arrTableIterateAsObjects
@@ -310,48 +313,63 @@ function* arrTableIterateAsObjects(rows, headers, ignoreHeaders = /* @__PURE__ *
310
313
  }
311
314
  const o = {};
312
315
  for (let c = 0; c < headers.length; c++) {
313
- if (ignoreHeaders.has(headers[c])) continue;
316
+ if (ignoreHeaders.has(headers[c])) {
317
+ continue;
318
+ }
314
319
  o[headers[c]] = rows[r][c];
315
320
  }
316
321
  yield o;
317
322
  }
318
323
  }
319
- __name(arrTableIterateAsObjects, "arrTableIterateAsObjects");
320
324
 
321
- // src/arrTableRemoveColumns.ts
325
+ // src/lib/arrTableRemoveColumns.ts
322
326
  var arrTableRemoveColumns_exports = {};
323
327
  __export(arrTableRemoveColumns_exports, {
324
328
  arrTableRemoveColumns: () => arrTableRemoveColumns
325
329
  });
326
330
  function arrTableRemoveColumns(table, ...removeColumnNames) {
327
- if (!removeColumnNames.length || !table.length) return table;
328
- const set = new Set(removeColumnNames.map((col) => arrIndicesOf(table[0], col)).flat());
329
- return table.map((row) => row.filter((_, i) => !set.has(i)));
331
+ if (!removeColumnNames.length || !table.length) {
332
+ return table;
333
+ }
334
+ const set = new Set(
335
+ removeColumnNames.map((col) => {
336
+ return arrIndicesOf(table[0], col);
337
+ }).flat()
338
+ );
339
+ return table.map((row) => {
340
+ return row.filter((_, i) => {
341
+ return !set.has(i);
342
+ });
343
+ });
330
344
  }
331
- __name(arrTableRemoveColumns, "arrTableRemoveColumns");
332
345
 
333
- // src/arrTableToCsv.ts
346
+ // src/lib/arrTableToCsv.ts
334
347
  var arrTableToCsv_exports = {};
335
348
  __export(arrTableToCsv_exports, {
336
349
  arrTableToCsv: () => arrTableToCsv
337
350
  });
338
351
  function arrTableToCsv(input, delimiter = ";", replaceLinebreakWith = "<br>") {
339
352
  return input.map((row) => {
340
- return row.map((item) => String(item).replace(new RegExp(";", "g"), "").replace(/\r*\n/g, replaceLinebreakWith)).join(delimiter);
353
+ return row.map((item) => {
354
+ return String(item).replace(new RegExp(";", "g"), "").replace(/\r*\n/g, replaceLinebreakWith);
355
+ }).join(delimiter);
341
356
  }).join("\n");
342
357
  }
343
- __name(arrTableToCsv, "arrTableToCsv");
344
358
 
345
- // src/arrTableToObjects.ts
359
+ // src/lib/arrTableToObjects.ts
346
360
  var arrTableToObjects_exports = {};
347
361
  __export(arrTableToObjects_exports, {
348
362
  arrTableToObjects: () => arrTableToObjects
349
363
  });
350
364
  function arrTableToObjects(rows, headers, ignoreKeys) {
351
365
  if (headers) {
352
- if (!rows.length) return [];
366
+ if (!rows.length) {
367
+ return [];
368
+ }
353
369
  } else {
354
- if (rows.length <= 1) return [];
370
+ if (rows.length <= 1) {
371
+ return [];
372
+ }
355
373
  headers = rows[0].map((header) => {
356
374
  return header === null || header === void 0 ? "" : String(header);
357
375
  });
@@ -362,15 +380,16 @@ function arrTableToObjects(rows, headers, ignoreKeys) {
362
380
  const o = {};
363
381
  for (let i = 0; i < _headers.length; i++) {
364
382
  const header = _headers[i];
365
- if (ignoreKeys && ignoreKeys.has(header)) continue;
383
+ if (ignoreKeys && ignoreKeys.has(header)) {
384
+ continue;
385
+ }
366
386
  o[header] = row[i];
367
387
  }
368
388
  return o;
369
389
  });
370
390
  }
371
- __name(arrTableToObjects, "arrTableToObjects");
372
391
 
373
- // src/arrayToString.ts
392
+ // src/lib/arrayToString.ts
374
393
  var arrayToString_exports = {};
375
394
  __export(arrayToString_exports, {
376
395
  arrayToString: () => arrayToString
@@ -380,7 +399,6 @@ function arrayToString(array) {
380
399
  return item == null ? String(item) : Array.isArray(item) ? arrayToString(item) : item.toString();
381
400
  }).join(",")}]`;
382
401
  }
383
- __name(arrayToString, "arrayToString");
384
402
 
385
403
  // src/index.ts
386
404
  var src_default = {
@@ -439,4 +457,3 @@ export {
439
457
  arrayToString,
440
458
  src_default as default
441
459
  };
442
- //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,35 +1,32 @@
1
1
  {
2
2
  "name": "@bemoje/array",
3
- "version": "1.0.0",
4
- "packageManager": "yarn@4.3.1",
3
+ "version": "1.0.1",
4
+ "description": "Array utils",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
- "module": "src/index.ts",
7
+ "keywords": [
8
+ "array"
9
+ ],
8
10
  "exports": {
9
11
  ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.mjs",
12
- "default": "./dist/index.mjs"
12
+ "types": "./index.d.ts",
13
+ "import": "./index.mjs",
14
+ "default": "./index.mjs"
13
15
  }
14
16
  },
15
- "files": [
16
- "dist/"
17
- ],
17
+ "dependencies": {},
18
18
  "publishConfig": {
19
19
  "access": "public"
20
20
  },
21
- "scripts": {
22
- "build": "node esbuild.mjs"
23
- },
24
21
  "license": "MIT",
25
22
  "author": {
26
- "name": "Benjamin Moller Jensen",
23
+ "name": "Benjamin Møller Jensen",
27
24
  "email": "bemoje@bemoje.net",
28
25
  "url": "https://github.com/bemoje/"
29
26
  },
30
27
  "repository": {
31
28
  "type": "git",
32
- "url": "https://github.com/bemoje/mono.git",
29
+ "url": "git+https://github.com/bemoje/mono.git",
33
30
  "directory": "libs/array"
34
31
  }
35
32
  }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # @mono/array
2
-
3
- Array manipulation and table processing utilities.
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/arrAverage.ts", "../src/arrSum.ts", "../src/arrEachToString.ts", "../src/arrFindIndicesOf.ts", "../src/arrGetOrDefault.ts", "../src/arrHasDuplicates.ts", "../src/arrIndicesOf.ts", "../src/arrLast.ts", "../src/arrMapMutable.ts", "../src/arrObjectsToTable.ts", "../src/arrObjectsUniqueKeys.ts", "../src/arrRemove.ts", "../src/arrRemoveDuplicates.ts", "../src/arrRemoveMutable.ts", "../src/arrShuffle.ts", "../src/arrSwap.ts", "../src/arrSortNumeric.ts", "../src/arrSortedInsertionIndex.ts", "../src/arrTableAssertRowsSameLength.ts", "../src/arrTableEachToString.ts", "../src/arrTableIterateAsObjects.ts", "../src/arrTableRemoveColumns.ts", "../src/arrTableToCsv.ts", "../src/arrTableToObjects.ts", "../src/arrayToString.ts", "../src/index.ts"],
4
- "sourcesContent": ["import { arrSum } from './arrSum'\n\n/**\n * Calculates the average of an array of numbers.\n * @returns The average of all numbers in the array.\n * @throws an error if the input array is empty.\n * @param array The array of numbers.\n * @example ```ts\n * const numbers = [1, 2, 3, 4, 5];\n * arrAverage(numbers);\n * //=> 3\n * ```\n */\nexport function arrAverage(array: number[]): number {\n if (!array.length) throw new Error('Cannot take an average of zero values.')\n return arrSum(array) / array.length\n}\n", "/**\n * Calculates the sum of an array of numbers.\n * @returns The sum of all numbers in the array.\n * @param array The array of numbers to sum.\n * @example ```ts\n * const numbers = [1, 2, 3, 4, 5];\n * arrSum(numbers);\n * //=> 15\n * ```\n */\nexport function arrSum(array: number[]): number {\n return array.reduce((acc, cur) => acc + cur, 0)\n}\n", "/**\n * Coerce each element of an array to string.\n * @template T - The type of elements in the input array.\n * @returns A new array where each element is the string representation of the corresponding element in the input array.\n * @param array The array to iterate over.\n * @example ```ts\n * const numbers = [1, 2, 3];\n * arrEachToString(numbers);\n * //=> ['1', '2', '3']\n * ```\n */\nexport function arrEachToString<T>(array: T[]): string[] {\n return array.map((element) => '' + element)\n}\n", "/**\n * Returns an array of indices where the predicate function returns true for the corresponding element in the input array.\n * @param input - The array to search.\n * @param predicate - The function to test each element of the array.\n * @returns An array of indices where the predicate function returns true.\n */\nexport function arrFindIndicesOf<T>(input: Array<T>, predicate: (value: T) => boolean): number[] {\n const result: number[] = []\n for (let i = 0; i < input.length; i++) {\n if (predicate(input[i])) {\n result.push(i)\n }\n }\n return result\n}\n", "/**\n * Get array element at index or create it using factory function if it doesn't exist.\n */\nexport function arrGetOrDefault<V>(array: V[], index: number, factory: (index: number) => V): V {\n const value = array[index]\n if (value !== undefined || Object.hasOwn(array, index)) return value\n return (array[index] = factory(index))\n}\n", "/**\n * Checks if an array has any duplicate elements.\n * @param arr - The array to check for duplicates.\n * @returns A boolean indicating whether the array has duplicates.\n * @typeParam T - The type of elements in the array.\n */\nexport function arrHasDuplicates<T>(arr: T[]): boolean {\n const seen = new Set<T>()\n for (const e of arr) {\n if (seen.has(e)) return true\n seen.add(e)\n }\n return false\n}\n", "/**\n * Returns all indexes at which an element is found.\n * @param input The array to search\n * @template T - The type of elements in the input array.\n * @returns An array of indices where the specified element can be found.\n * @param element The element to find\n * @example ```ts\n * const inputArray = [1, 2, 3, 2, 4, 2, 5];\n * const elementToFind = 2;\n * arrIndicesOf(inputArray, elementToFind);\n * //=> [1, 3, 5]\n * ```\n */\nexport function arrIndicesOf<T>(input: Array<T>, element: T): number[] {\n const result: number[] = []\n for (let i = 0; i < input.length; i++) {\n if (element === input[i]) {\n result.push(i)\n }\n }\n return result\n}\n", "/**\n * Returns the last element of an array.\n * Throws an error if the array is empty.\n * @template T The type of elements in the array.\n * @param array The array to get the last element from.\n * @returns The last element of the array.\n * @throws If the array is empty.\n * @example const numbers = [1, 2, 3, 4, 5];\n * const lastNumber = arrLast(numbers);\n * //=> 5\n */\nexport function arrLast<T>(array: T[]): T {\n if (!array.length) throw new Error('Cannot get last element of empty array.')\n return array[array.length - 1]\n}\n", "/**\n * This function takes an array and a callback function as arguments. It applies the callback function to each element of the array, mutating the original array in the process.\n * @template T The type of elements in the input array.\n * @param input The array to be mapped over.\n * @param f The callback function to be applied to each element of the array. This function takes three arguments: the current element, its index, and the original array.\n * @returns The original array, mutated by the callback function.\n * @example ```ts\n * arrMapMutable([1, 2, 3], (value: number) => value * 2);\n * //=> [2, 4, 6]\n * ```\n */\nexport function arrMapMutable<T>(input: Array<T>, f: (value: T, index: number, array: T[]) => T): Array<T> {\n for (let i = 0; i < input.length; i++) {\n input[i] = f(input[i], i, input)\n }\n return input\n}\n", "import { arrObjectsUniqueKeys } from './arrObjectsUniqueKeys'\n\n/**\n * Convert an array of objects to a two-dimensional table.\n * @param objects The array of objects to convert to a table.\n * @template T - The type of the values in the objects.\n * @param options.headers An optional array of strings specifying the headers (property names) to use. If not provided, the function will use all unique keys found in the objects.\n * @param options.emptyCell An optional value to use for empty cells. If not provided, the function will use `undefined`.\n * @returns A 2D array (table) where each row represents an object and each column represents a property of the object.\n * @param options The options for converting the objects to a table.\n * @example ```ts\n * arrObjectsToTable(\n * [\n * { a: 1, b: 2 },\n * { a: 3, b: 4, c: 5 },\n * ],\n * { emptyCell:1 },\n * ) //=> [ [ 'a', 'b', 'c' ], [ 1, 2,1 ], [ 3, 4, 5 ] ]\n * ```\n */\nexport function arrObjectsToTable<T, E>(\n objects: Record<string, T | undefined>[],\n options: {\n headers?: string[]\n emptyCell?: E\n } = {},\n): Array<Array<string | T | E>> {\n const headers = options?.headers?.slice() || arrObjectsUniqueKeys(objects)\n const table: Array<Array<string | T | E>> = [headers]\n for (const o of objects) {\n const row = headers.map((header) => {\n const value = o[header]\n return value !== undefined ? value : (options.emptyCell as E)\n })\n table.push(row)\n }\n return table\n}\n", "/**\n * Returns an array of all unique object keys found in an array of objects.\n * @template T - The type of values in the input objects.\n * @returns An array of unique keys present in the input objects.\n * @param objects The array of objects.\n * @example ```ts\n * const objects = [\n * { name: 'John', age: 25 },\n * { name: 'Jane', gender: 'female' },\n * { name: 'Bob', age: 30, gender: 'male' },\n * ];\n * arrObjectsUniqueKeys(objects);\n * //=> ['name', 'age', 'gender']\n * ```\n */\nexport function arrObjectsUniqueKeys<T>(objects: Record<string, T>[]): string[] {\n const keys = new Set<string>()\n for (const o of objects) {\n for (const key of Object.keys(o)) {\n keys.add(key)\n }\n }\n return Array.from(keys)\n}\n", "/**\n * Remove a given element from a copy of a given array and return the resulting array.\n */\nexport function arrRemove<T>(arr: T[], elementToRemove: T): T[] {\n return arr.filter((element) => element !== elementToRemove)\n}\n", "/**\n * Remove duplicates from an array\n * @remarks This function uses the JavaScript Set object to remove duplicate values from an array.\n * @typeparam T - The type of elements in the array.\n * @returns The new array with duplicates removed.\n * @param array The array from which to remove duplicates.\n * @example ```ts\n * const array = [1, 2, 2, 3, 4, 4, 5];\n * arrRemoveDuplicates(array);\n * //=> [1, 2, 3, 4, 5]\n * ```\n */\nexport function arrRemoveDuplicates<T>(array: T[]): T[] {\n return Array.from(new Set(array))\n}\n", "/**\n * Remove elements in-place from an array.\n */\nexport function arrRemoveMutable<T>(arr: T[], elementToRemove: T): void {\n let index = arr.indexOf(elementToRemove)\n while (index !== -1) {\n arr.splice(index, 1)\n index = arr.indexOf(elementToRemove)\n }\n}\n", "import { arrSwap } from './arrSwap'\n\n/**\n * Shuffle items in an array in-place. Guarantees changes.\n * @remarks This function does not guarantee that the order of the elements will be different after shuffling.\n * @typeparam T - The type of the elements in the input array.\n * @returns The same array, but shuffled.\n * @param input The array to shuffle.\n * @example ```ts\n * const input = [1, 2, 3, 4, 5];\n * arrShuffle(input);\n * //=> [3, 1, 5, 2, 4]\n * ```\n */\nexport function arrShuffle<T>(input: Array<T>): Array<T> {\n if (input.length <= 1) return input\n const original = input.slice()\n let equal = true\n while (equal) {\n for (let i = 0; i < input.length; i++) {\n const newIndex = Math.floor(Math.random() * input.length)\n arrSwap(input, i, newIndex)\n }\n equal = input.join(',') === original.join(',')\n }\n return input\n}\n", "/**\n * Swaps two elements in an array. This function takes an input array and swaps the elements at the specified indices.\n * @param to The index of the element to swap to.\n * @param from The index of the element to swap from.\n * @template T - The type of elements in the array.\n * @returns The modified array with swapped elements.\n * @throws Will throw an error if 'from' or 'to' is not a valid index in the array.\n * @param input The input array.\n * @example ```ts\n * const arr = [1, 2, 3, 4, 5]\n * arrSwap(arr, 1, 3) //=> [1, 4, 3, 2, 5]\n * ```\n */\nexport function arrSwap<T>(input: Array<T>, from: number, to: number): Array<T> {\n if (from === to) return input\n ;[input[from], input[to]] = [input[to], input[from]]\n return input\n}\n", "/**\n * Sorts an array of numbers, bigints, or booleans in ascending order.\n * @returns The sorted array.\n * @remarks This function uses the JavaScript `Array.prototype.sort()` method, which sorts elements in place.\n * Therefore, the original array will be modified.\n * @throws If any element in the input array is not a number, bigint, or boolean.\n * @param input The array to be sorted.\n * @example ```ts\n * const input = [5, 2n, true, 10, false];\n * arrSortNumeric(input);\n * //=> [false, true, 2n, 5, 10]\n * ```\n */\nexport function arrSortNumeric(input: Array<number | bigint | boolean>): Array<number | bigint | boolean> {\n return input.sort((a: number | bigint | boolean, b: number | bigint | boolean) => {\n if (a < b) return -1\n if (a > b) return 1\n return 0\n })\n}\n", "/**\n * Returns an index in the sorted array where the specified value could be inserted while maintaining the sorted order of the array.\n * If the element is already in the array, returns the index after the last instance of the element.\n * @param array - The sorted array to search.\n * @param value - The value to locate in the array.\n * @param comparator - A function that defines the sort order. If omitted, the array elements are converted to strings, then sorted according to each character's Unicode code point value.\n * @returns The index at which the value could be inserted into array to maintain the array's sorted order.\n * @example ```ts\n * const array = [1, 2, 3, 5, 6];\n * const value = 4;\n * const comparator = (a, b) => a - b;\n * const index = arrSortedLowerBound(array, value, comparator);\n * console.log(index); // Output: 3\n * ```\n */\nexport function arrSortedInsertionIndex<T>(\n array: readonly T[],\n value: T,\n comparator: (a: T, b: T) => number,\n): number {\n let first = 0\n let count = array.length\n while (count > 0) {\n const step = Math.trunc(count / 2)\n let it = first + step\n if (comparator(array[it]!, value) <= 0) {\n first = ++it\n count -= step + 1\n } else {\n count = step\n }\n }\n return first\n}\n", "/**\n * Asserts that all rows in a 2D array have the same length.\n * @param - Optional array of headers to compare the row length against.\n * @throws If any row in the array has a different length than the others.\n * @param headers Optional. An array of headers. If provided, each row must have the same length as this array.\n * @typeparam T - The type of elements in the rows.\n * @param rows The 2D array to check.\n * @example ```ts\n * const rows = [\n * [1, 2, 3],\n * [4, 5, 6],\n * [7, 8, 9],\n * ];\n * arrTableAssertRowsSameLength(rows);\n * //=> undefined\n * const rowsWithDifferentLength = [\n * [1, 2, 3],\n * [4, 5],\n * [7, 8, 9],\n * ];\n * arrTableAssertRowsSameLength(rowsWithDifferentLength);\n * //=> Error: Expected 3 columns, got 2\n * ```\n */\nexport function arrTableAssertRowsSameLength<T>(rows: T[][], headers?: string[]): void {\n const numHeaders = (headers || rows[0]).length\n for (const row of rows) {\n if (row.length !== numHeaders) {\n throw new Error(`Expected ${numHeaders} columns, got ${row.length}`)\n }\n }\n}\n", "import { arrEachToString } from './arrEachToString'\n\n/**\n * Coerce each value of a 2D array table to string.\n * @template T - The type of the elements in the input array.\n * @returns The converted 2D array where each element is a string.\n * @param table The 2D array to convert.\n * @example ```ts\n * const input: number[][] = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];\n * arrTableEachToString(input);\n * //=> [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]\n * ```\n */\nexport function arrTableEachToString<T>(table: T[][]): string[][] {\n return table.map(arrEachToString)\n}\n", "/**\n * Generator that iterates through a 2D array table, yielding objects with header keys and row values.\n */\nexport function* arrTableIterateAsObjects<T>(\n rows: T[][],\n headers: string[],\n ignoreHeaders: Set<string> = new Set(),\n) {\n if (!headers.length) {\n throw new Error('No headers provided')\n }\n\n ignoreHeaders.forEach((h) => {\n if (!headers.includes(h)) {\n throw new Error(`Header \"${h}\" not found in headers: ${headers}`)\n }\n })\n\n if (new Set(headers).size === ignoreHeaders.size) {\n throw new Error('All headers are ignored')\n }\n\n for (let r = 0; r < rows.length; r++) {\n if (rows[r].length !== headers.length) {\n throw new Error(`Row ${r} has ${rows[r].length} columns, but expected ${headers.length}`)\n }\n\n const o: Record<string, T> = {}\n for (let c = 0; c < headers.length; c++) {\n if (ignoreHeaders.has(headers[c])) continue\n o[headers[c]] = rows[r][c]\n }\n yield o\n }\n}\n", "import { arrIndicesOf } from './arrIndicesOf'\n\n/**\n * Removes specified columns from a 2D array table.\n * @param table - The 2D array (table) from which columns will be removed. The first row of the table is assumed to contain column names.\n * @param removeColumnNames - The names of the columns to be removed. These should match the entries in the first row of the table.\n * @returns A new 2D array (table) with the specified columns removed.\n */\nexport function arrTableRemoveColumns(table: string[][], ...removeColumnNames: string[]): string[][] {\n if (!removeColumnNames.length || !table.length) return table\n const set = new Set(removeColumnNames.map((col) => arrIndicesOf(table[0], col)).flat())\n return table.map((row) => row.filter((_, i) => !set.has(i)))\n}\n", "/**\n * Converts a 2D array to a CSV string.\n * @param input The input 2D array.\n * @remarks This function is useful for exporting data to CSV format.\n * @param replaceLinebreakWith The character used to replace line breaks in the CSV string. Defaults to '|'.\n * @typeparam T - The type of the elements in the input array.\n * @returns The CSV string representation of the input array.\n * @param delimiter The delimiter to use for separating values in the CSV string.\n * @example ```ts\n * const input = [\n * ['Name', 'Age', 'Country'],\n * ['John', '25', 'USA'],\n * ['Alice', '30', 'Canada'],\n * ['Bob', '35', 'UK'],\n * ];\n * arrTableToCsv(input);\n * //=> \"Name;Age;Country\\nJohn;25;USA\\nAlice;30;Canada\\nBob;35;UK\"\n * ```\n */\nexport function arrTableToCsv<T>(input: T[][], delimiter = ';', replaceLinebreakWith = '<br>'): string {\n return input\n .map((row) => {\n return row\n .map((item) => String(item).replace(new RegExp(';', 'g'), '').replace(/\\r*\\n/g, replaceLinebreakWith))\n .join(delimiter)\n })\n .join('\\n')\n}\n", "/**\n * Converts a 2D array representing a table into an array of objects.\n * @param rows The 2D array representing the table.\n * @template T - The type of the elements in the rows.\n * @param headers The headers to use as keys for the objects. If not provided, the first row of the table is used as headers.\n * @returns An array of objects, where each object represents a row in the table.\n * @throws Throws an error if the headers are not provided and the table is empty or only contains one row.\n * @param headers Optional array of headers for the table.\n * @example ```ts\n * const table = [\n * ['Name', 'Age', 'Country'],\n * ['John', 25, 'USA'],\n * ['Jane', 30, 'Canada'],\n * ];\n * const headers = ['Name', 'Age', 'Country'];\n * arrTableToObjects(table, headers) //=> [\n * // { Name: 'John', Age: 25, Country: 'USA' },\n * // { Name: 'Jane', Age: 30, Country: 'Canada' },\n * // ]\n * ```\n */\nexport function arrTableToObjects<T>(\n rows: T[][],\n headers?: string[],\n ignoreKeys?: Set<string>,\n): Record<string, T>[] {\n if (headers) {\n if (!rows.length) return []\n } else {\n if (rows.length <= 1) return []\n headers = rows[0].map((header) => {\n return header === null || header === undefined ? '' : String(header)\n })\n rows = rows.slice(1)\n }\n const _headers = headers\n return rows.map((row: T[]) => {\n const o: Record<string, T> = {}\n for (let i = 0; i < _headers.length; i++) {\n const header = _headers[i]\n if (ignoreKeys && ignoreKeys.has(header)) continue\n o[header] = row[i]\n }\n return o\n })\n}\n", "/**\n * Short and condensed string representation of an array, easy to read for error outputs or similar.\n */\nexport function arrayToString<T>(array: T[]): string {\n return `[${array\n .map((item: T) => {\n return item == null ? String(item) : Array.isArray(item) ? arrayToString(item) : item.toString()\n })\n .join(',')}]`\n}\n", "export * from './arrAverage'\nexport * from './arrEachToString'\nexport * from './arrFindIndicesOf'\nexport * from './arrGetOrDefault'\nexport * from './arrHasDuplicates'\nexport * from './arrIndicesOf'\nexport * from './arrLast'\nexport * from './arrMapMutable'\nexport * from './arrObjectsToTable'\nexport * from './arrObjectsUniqueKeys'\nexport * from './arrRemove'\nexport * from './arrRemoveDuplicates'\nexport * from './arrRemoveMutable'\nexport * from './arrShuffle'\nexport * from './arrSortNumeric'\nexport * from './arrSortedInsertionIndex'\nexport * from './arrSum'\nexport * from './arrSwap'\nexport * from './arrTableAssertRowsSameLength'\nexport * from './arrTableEachToString'\nexport * from './arrTableIterateAsObjects'\nexport * from './arrTableRemoveColumns'\nexport * from './arrTableToCsv'\nexport * from './arrTableToObjects'\nexport * from './arrayToString'\n\nimport * as MODULE_01 from './arrAverage'\nimport * as MODULE_02 from './arrEachToString'\nimport * as MODULE_03 from './arrFindIndicesOf'\nimport * as MODULE_04 from './arrGetOrDefault'\nimport * as MODULE_05 from './arrHasDuplicates'\nimport * as MODULE_06 from './arrIndicesOf'\nimport * as MODULE_07 from './arrLast'\nimport * as MODULE_08 from './arrMapMutable'\nimport * as MODULE_09 from './arrObjectsToTable'\nimport * as MODULE_10 from './arrObjectsUniqueKeys'\nimport * as MODULE_11 from './arrRemove'\nimport * as MODULE_12 from './arrRemoveDuplicates'\nimport * as MODULE_13 from './arrRemoveMutable'\nimport * as MODULE_14 from './arrShuffle'\nimport * as MODULE_15 from './arrSortNumeric'\nimport * as MODULE_16 from './arrSortedInsertionIndex'\nimport * as MODULE_17 from './arrSum'\nimport * as MODULE_18 from './arrSwap'\nimport * as MODULE_19 from './arrTableAssertRowsSameLength'\nimport * as MODULE_20 from './arrTableEachToString'\nimport * as MODULE_21 from './arrTableIterateAsObjects'\nimport * as MODULE_22 from './arrTableRemoveColumns'\nimport * as MODULE_23 from './arrTableToCsv'\nimport * as MODULE_24 from './arrTableToObjects'\nimport * as MODULE_25 from './arrayToString'\n\nexport default {\n ...MODULE_01, //\n ...MODULE_02,\n ...MODULE_03,\n ...MODULE_04,\n ...MODULE_05,\n ...MODULE_06,\n ...MODULE_07,\n ...MODULE_08,\n ...MODULE_09,\n ...MODULE_10,\n ...MODULE_11,\n ...MODULE_12,\n ...MODULE_13,\n ...MODULE_14,\n ...MODULE_15,\n ...MODULE_16,\n ...MODULE_17,\n ...MODULE_18,\n ...MODULE_19,\n ...MODULE_20,\n ...MODULE_21,\n ...MODULE_22,\n ...MODULE_23,\n ...MODULE_24,\n ...MODULE_25,\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes