@bemoje/array 0.3.3 → 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.
Files changed (140) hide show
  1. package/index.d.ts +56 -0
  2. package/index.mjs +459 -0
  3. package/{cjs/lib → lib}/arrAverage.d.ts +0 -1
  4. package/{cjs/lib → lib}/arrEachToString.d.ts +0 -1
  5. package/{cjs/lib → lib}/arrFindIndicesOf.d.ts +0 -1
  6. package/lib/arrGetOrDefault.d.ts +4 -0
  7. package/{cjs/lib → lib}/arrHasDuplicates.d.ts +0 -1
  8. package/{cjs/lib → lib}/arrIndicesOf.d.ts +0 -1
  9. package/{cjs/lib → lib}/arrLast.d.ts +0 -1
  10. package/{cjs/lib → lib}/arrMapMutable.d.ts +1 -3
  11. package/{cjs/lib → lib}/arrObjectsToTable.d.ts +0 -1
  12. package/{cjs/lib → lib}/arrObjectsUniqueKeys.d.ts +0 -1
  13. package/{cjs/lib → lib}/arrRemove.d.ts +0 -1
  14. package/{cjs/lib → lib}/arrRemoveDuplicates.d.ts +0 -1
  15. package/{cjs/lib → lib}/arrRemoveMutable.d.ts +0 -1
  16. package/{cjs/lib → lib}/arrShuffle.d.ts +0 -1
  17. package/{cjs/lib → lib}/arrSortNumeric.d.ts +0 -1
  18. package/{cjs/lib → lib}/arrSortedInsertionIndex.d.ts +0 -1
  19. package/{cjs/lib → lib}/arrSum.d.ts +0 -1
  20. package/{cjs/lib → lib}/arrSwap.d.ts +0 -1
  21. package/{cjs/lib → lib}/arrTableAssertRowsSameLength.d.ts +0 -1
  22. package/{cjs/lib → lib}/arrTableEachToString.d.ts +0 -1
  23. package/lib/arrTableIterateAsObjects.d.ts +4 -0
  24. package/{cjs/lib → lib}/arrTableRemoveColumns.d.ts +0 -1
  25. package/{cjs/lib → lib}/arrTableToCsv.d.ts +0 -1
  26. package/{cjs/lib → lib}/arrTableToObjects.d.ts +0 -1
  27. package/lib/arrayToString.d.ts +4 -0
  28. package/package.json +20 -17
  29. package/LICENSE +0 -21
  30. package/README.md +0 -34
  31. package/cjs/index.d.ts +0 -33
  32. package/cjs/index.d.ts.map +0 -1
  33. package/cjs/index.js +0 -36
  34. package/cjs/index.js.map +0 -1
  35. package/cjs/lib/arrAverage.d.ts.map +0 -1
  36. package/cjs/lib/arrAverage.js +0 -22
  37. package/cjs/lib/arrAverage.js.map +0 -1
  38. package/cjs/lib/arrEachToString.d.ts.map +0 -1
  39. package/cjs/lib/arrEachToString.js +0 -19
  40. package/cjs/lib/arrEachToString.js.map +0 -1
  41. package/cjs/lib/arrEvery.d.ts +0 -18
  42. package/cjs/lib/arrEvery.d.ts.map +0 -1
  43. package/cjs/lib/arrEvery.js +0 -28
  44. package/cjs/lib/arrEvery.js.map +0 -1
  45. package/cjs/lib/arrFindIndicesOf.d.ts.map +0 -1
  46. package/cjs/lib/arrFindIndicesOf.js +0 -20
  47. package/cjs/lib/arrFindIndicesOf.js.map +0 -1
  48. package/cjs/lib/arrFindLast.d.ts +0 -12
  49. package/cjs/lib/arrFindLast.d.ts.map +0 -1
  50. package/cjs/lib/arrFindLast.js +0 -23
  51. package/cjs/lib/arrFindLast.js.map +0 -1
  52. package/cjs/lib/arrFindLastIndexOf.d.ts +0 -14
  53. package/cjs/lib/arrFindLastIndexOf.d.ts.map +0 -1
  54. package/cjs/lib/arrFindLastIndexOf.js +0 -25
  55. package/cjs/lib/arrFindLastIndexOf.js.map +0 -1
  56. package/cjs/lib/arrFlatten.d.ts +0 -17
  57. package/cjs/lib/arrFlatten.d.ts.map +0 -1
  58. package/cjs/lib/arrFlatten.js +0 -34
  59. package/cjs/lib/arrFlatten.js.map +0 -1
  60. package/cjs/lib/arrHasDuplicates.d.ts.map +0 -1
  61. package/cjs/lib/arrHasDuplicates.js +0 -20
  62. package/cjs/lib/arrHasDuplicates.js.map +0 -1
  63. package/cjs/lib/arrIndicesOf.d.ts.map +0 -1
  64. package/cjs/lib/arrIndicesOf.js +0 -27
  65. package/cjs/lib/arrIndicesOf.js.map +0 -1
  66. package/cjs/lib/arrLast.d.ts.map +0 -1
  67. package/cjs/lib/arrLast.js +0 -21
  68. package/cjs/lib/arrLast.js.map +0 -1
  69. package/cjs/lib/arrMapMutable.d.ts.map +0 -1
  70. package/cjs/lib/arrMapMutable.js +0 -22
  71. package/cjs/lib/arrMapMutable.js.map +0 -1
  72. package/cjs/lib/arrObjectsToTable.d.ts.map +0 -1
  73. package/cjs/lib/arrObjectsToTable.js +0 -36
  74. package/cjs/lib/arrObjectsToTable.js.map +0 -1
  75. package/cjs/lib/arrObjectsUniqueKeys.d.ts.map +0 -1
  76. package/cjs/lib/arrObjectsUniqueKeys.js +0 -29
  77. package/cjs/lib/arrObjectsUniqueKeys.js.map +0 -1
  78. package/cjs/lib/arrRemove.d.ts.map +0 -1
  79. package/cjs/lib/arrRemove.js +0 -11
  80. package/cjs/lib/arrRemove.js.map +0 -1
  81. package/cjs/lib/arrRemoveDuplicates.d.ts.map +0 -1
  82. package/cjs/lib/arrRemoveDuplicates.js +0 -20
  83. package/cjs/lib/arrRemoveDuplicates.js.map +0 -1
  84. package/cjs/lib/arrRemoveMutable.d.ts.map +0 -1
  85. package/cjs/lib/arrRemoveMutable.js +0 -15
  86. package/cjs/lib/arrRemoveMutable.js.map +0 -1
  87. package/cjs/lib/arrShallowEquals.d.ts +0 -16
  88. package/cjs/lib/arrShallowEquals.d.ts.map +0 -1
  89. package/cjs/lib/arrShallowEquals.js +0 -25
  90. package/cjs/lib/arrShallowEquals.js.map +0 -1
  91. package/cjs/lib/arrShuffle.d.ts.map +0 -1
  92. package/cjs/lib/arrShuffle.js +0 -33
  93. package/cjs/lib/arrShuffle.js.map +0 -1
  94. package/cjs/lib/arrSome.d.ts +0 -16
  95. package/cjs/lib/arrSome.d.ts.map +0 -1
  96. package/cjs/lib/arrSome.js +0 -26
  97. package/cjs/lib/arrSome.js.map +0 -1
  98. package/cjs/lib/arrSortNumeric.d.ts.map +0 -1
  99. package/cjs/lib/arrSortNumeric.js +0 -27
  100. package/cjs/lib/arrSortNumeric.js.map +0 -1
  101. package/cjs/lib/arrSortedInsertionIndex.d.ts.map +0 -1
  102. package/cjs/lib/arrSortedInsertionIndex.js +0 -36
  103. package/cjs/lib/arrSortedInsertionIndex.js.map +0 -1
  104. package/cjs/lib/arrSum.d.ts.map +0 -1
  105. package/cjs/lib/arrSum.js +0 -18
  106. package/cjs/lib/arrSum.js.map +0 -1
  107. package/cjs/lib/arrSwap.d.ts.map +0 -1
  108. package/cjs/lib/arrSwap.js +0 -24
  109. package/cjs/lib/arrSwap.js.map +0 -1
  110. package/cjs/lib/arrTableAssertRowsSameLength.d.ts.map +0 -1
  111. package/cjs/lib/arrTableAssertRowsSameLength.js +0 -37
  112. package/cjs/lib/arrTableAssertRowsSameLength.js.map +0 -1
  113. package/cjs/lib/arrTableEachToString.d.ts.map +0 -1
  114. package/cjs/lib/arrTableEachToString.js +0 -20
  115. package/cjs/lib/arrTableEachToString.js.map +0 -1
  116. package/cjs/lib/arrTableRemoveColumns.d.ts.map +0 -1
  117. package/cjs/lib/arrTableRemoveColumns.js +0 -18
  118. package/cjs/lib/arrTableRemoveColumns.js.map +0 -1
  119. package/cjs/lib/arrTableToCsv.d.ts.map +0 -1
  120. package/cjs/lib/arrTableToCsv.js +0 -33
  121. package/cjs/lib/arrTableToCsv.js.map +0 -1
  122. package/cjs/lib/arrTableToObjects.d.ts.map +0 -1
  123. package/cjs/lib/arrTableToObjects.js +0 -51
  124. package/cjs/lib/arrTableToObjects.js.map +0 -1
  125. package/cjs/lib/types/ArrayPredicate.d.ts +0 -11
  126. package/cjs/lib/types/ArrayPredicate.d.ts.map +0 -1
  127. package/cjs/lib/types/ArrayPredicate.js +0 -3
  128. package/cjs/lib/types/ArrayPredicate.js.map +0 -1
  129. package/cjs/lib/types/ArrayValueCallback.d.ts +0 -2
  130. package/cjs/lib/types/ArrayValueCallback.d.ts.map +0 -1
  131. package/cjs/lib/types/ArrayValueCallback.js +0 -3
  132. package/cjs/lib/types/ArrayValueCallback.js.map +0 -1
  133. package/cjs/lib/types/ArrayVoidCallback.d.ts +0 -2
  134. package/cjs/lib/types/ArrayVoidCallback.d.ts.map +0 -1
  135. package/cjs/lib/types/ArrayVoidCallback.js +0 -3
  136. package/cjs/lib/types/ArrayVoidCallback.js.map +0 -1
  137. package/cjs/lib/types/NestedArray.d.ts +0 -2
  138. package/cjs/lib/types/NestedArray.d.ts.map +0 -1
  139. package/cjs/lib/types/NestedArray.js +0 -3
  140. package/cjs/lib/types/NestedArray.js.map +0 -1
package/index.d.ts ADDED
@@ -0,0 +1,56 @@
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
+ declare const _default: {
27
+ arrayToString<T>(array: T[]): string;
28
+ arrTableToObjects<T>(rows: T[][], headers?: string[], ignoreKeys?: Set<string>): Record<string, T>[];
29
+ arrTableToCsv<T>(input: T[][], delimiter?: string, replaceLinebreakWith?: string): string;
30
+ arrTableRemoveColumns(table: string[][], ...removeColumnNames: string[]): string[][];
31
+ arrTableIterateAsObjects<T>(rows: T[][], headers: string[], ignoreHeaders?: Set<string>): Generator<Record<string, T>, void, unknown>;
32
+ arrTableEachToString<T>(table: T[][]): string[][];
33
+ arrTableAssertRowsSameLength<T>(rows: T[][], headers?: string[]): void;
34
+ arrSwap<T>(input: Array<T>, from: number, to: number): Array<T>;
35
+ arrSum(array: number[]): number;
36
+ arrSortedInsertionIndex<T>(array: readonly T[], value: T, comparator: (a: T, b: T) => number): number;
37
+ arrSortNumeric(input: Array<number | bigint | boolean>): Array<number | bigint | boolean>;
38
+ arrShuffle<T>(input: Array<T>): Array<T>;
39
+ arrRemoveMutable<T>(arr: T[], elementToRemove: T): void;
40
+ arrRemoveDuplicates<T>(array: T[]): T[];
41
+ arrRemove<T>(arr: T[], elementToRemove: T): T[];
42
+ arrObjectsUniqueKeys<T>(objects: Record<string, T>[]): string[];
43
+ arrObjectsToTable<T, E>(objects: Record<string, T | undefined>[], options?: {
44
+ headers?: string[];
45
+ emptyCell?: E;
46
+ }): Array<Array<string | T | E>>;
47
+ arrMapMutable<T>(input: Array<T>, f: (value: T, index: number, array: T[]) => T): Array<T>;
48
+ arrLast<T>(array: T[]): T;
49
+ arrIndicesOf<T>(input: Array<T>, element: T): number[];
50
+ arrHasDuplicates<T>(arr: T[]): boolean;
51
+ arrGetOrDefault<V>(array: V[], index: number, factory: (index: number) => V): V;
52
+ arrFindIndicesOf<T>(input: Array<T>, predicate: (value: T) => boolean): number[];
53
+ arrEachToString<T>(array: T[]): string[];
54
+ arrAverage(array: number[]): number;
55
+ };
56
+ export default _default;
package/index.mjs ADDED
@@ -0,0 +1,459 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // src/lib/arrAverage.ts
8
+ var arrAverage_exports = {};
9
+ __export(arrAverage_exports, {
10
+ arrAverage: () => arrAverage
11
+ });
12
+
13
+ // src/lib/arrSum.ts
14
+ var arrSum_exports = {};
15
+ __export(arrSum_exports, {
16
+ arrSum: () => arrSum
17
+ });
18
+ function arrSum(array) {
19
+ return array.reduce((acc, cur) => {
20
+ return acc + cur;
21
+ }, 0);
22
+ }
23
+
24
+ // src/lib/arrAverage.ts
25
+ function arrAverage(array) {
26
+ if (!array.length) {
27
+ throw new Error("Cannot take an average of zero values.");
28
+ }
29
+ return arrSum(array) / array.length;
30
+ }
31
+
32
+ // src/lib/arrEachToString.ts
33
+ var arrEachToString_exports = {};
34
+ __export(arrEachToString_exports, {
35
+ arrEachToString: () => arrEachToString
36
+ });
37
+ function arrEachToString(array) {
38
+ return array.map((element) => {
39
+ return `${element}`;
40
+ });
41
+ }
42
+
43
+ // src/lib/arrFindIndicesOf.ts
44
+ var arrFindIndicesOf_exports = {};
45
+ __export(arrFindIndicesOf_exports, {
46
+ arrFindIndicesOf: () => arrFindIndicesOf
47
+ });
48
+ function arrFindIndicesOf(input, predicate) {
49
+ const result = [];
50
+ for (let i = 0; i < input.length; i++) {
51
+ if (predicate(input[i])) {
52
+ result.push(i);
53
+ }
54
+ }
55
+ return result;
56
+ }
57
+
58
+ // src/lib/arrGetOrDefault.ts
59
+ var arrGetOrDefault_exports = {};
60
+ __export(arrGetOrDefault_exports, {
61
+ arrGetOrDefault: () => arrGetOrDefault
62
+ });
63
+ function arrGetOrDefault(array, index, factory) {
64
+ const value = array[index];
65
+ if (value !== void 0 || Object.hasOwn(array, index)) {
66
+ return value;
67
+ }
68
+ return array[index] = factory(index);
69
+ }
70
+
71
+ // src/lib/arrHasDuplicates.ts
72
+ var arrHasDuplicates_exports = {};
73
+ __export(arrHasDuplicates_exports, {
74
+ arrHasDuplicates: () => arrHasDuplicates
75
+ });
76
+ function arrHasDuplicates(arr) {
77
+ const seen = /* @__PURE__ */ new Set();
78
+ for (const e of arr) {
79
+ if (seen.has(e)) {
80
+ return true;
81
+ }
82
+ seen.add(e);
83
+ }
84
+ return false;
85
+ }
86
+
87
+ // src/lib/arrIndicesOf.ts
88
+ var arrIndicesOf_exports = {};
89
+ __export(arrIndicesOf_exports, {
90
+ arrIndicesOf: () => arrIndicesOf
91
+ });
92
+ function arrIndicesOf(input, element) {
93
+ const result = [];
94
+ for (let i = 0; i < input.length; i++) {
95
+ if (element === input[i]) {
96
+ result.push(i);
97
+ }
98
+ }
99
+ return result;
100
+ }
101
+
102
+ // src/lib/arrLast.ts
103
+ var arrLast_exports = {};
104
+ __export(arrLast_exports, {
105
+ arrLast: () => arrLast
106
+ });
107
+ function arrLast(array) {
108
+ if (!array.length) {
109
+ throw new Error("Cannot get last element of empty array.");
110
+ }
111
+ return array[array.length - 1];
112
+ }
113
+
114
+ // src/lib/arrMapMutable.ts
115
+ var arrMapMutable_exports = {};
116
+ __export(arrMapMutable_exports, {
117
+ arrMapMutable: () => arrMapMutable
118
+ });
119
+ function arrMapMutable(input, f) {
120
+ for (let i = 0; i < input.length; i++) {
121
+ input[i] = f(input[i], i, input);
122
+ }
123
+ return input;
124
+ }
125
+
126
+ // src/lib/arrObjectsToTable.ts
127
+ var arrObjectsToTable_exports = {};
128
+ __export(arrObjectsToTable_exports, {
129
+ arrObjectsToTable: () => arrObjectsToTable
130
+ });
131
+
132
+ // src/lib/arrObjectsUniqueKeys.ts
133
+ var arrObjectsUniqueKeys_exports = {};
134
+ __export(arrObjectsUniqueKeys_exports, {
135
+ arrObjectsUniqueKeys: () => arrObjectsUniqueKeys
136
+ });
137
+ function arrObjectsUniqueKeys(objects) {
138
+ const keys = /* @__PURE__ */ new Set();
139
+ for (const o of objects) {
140
+ for (const key of Object.keys(o)) {
141
+ keys.add(key);
142
+ }
143
+ }
144
+ return Array.from(keys);
145
+ }
146
+
147
+ // src/lib/arrObjectsToTable.ts
148
+ function arrObjectsToTable(objects, options = {}) {
149
+ const headers = options?.headers?.slice() || arrObjectsUniqueKeys(objects);
150
+ const table = [headers];
151
+ for (const o of objects) {
152
+ const row = headers.map((header) => {
153
+ const value = o[header];
154
+ return value !== void 0 ? value : options.emptyCell;
155
+ });
156
+ table.push(row);
157
+ }
158
+ return table;
159
+ }
160
+
161
+ // src/lib/arrRemove.ts
162
+ var arrRemove_exports = {};
163
+ __export(arrRemove_exports, {
164
+ arrRemove: () => arrRemove
165
+ });
166
+ function arrRemove(arr, elementToRemove) {
167
+ return arr.filter((element) => {
168
+ return element !== elementToRemove;
169
+ });
170
+ }
171
+
172
+ // src/lib/arrRemoveDuplicates.ts
173
+ var arrRemoveDuplicates_exports = {};
174
+ __export(arrRemoveDuplicates_exports, {
175
+ arrRemoveDuplicates: () => arrRemoveDuplicates
176
+ });
177
+ function arrRemoveDuplicates(array) {
178
+ return Array.from(new Set(array));
179
+ }
180
+
181
+ // src/lib/arrRemoveMutable.ts
182
+ var arrRemoveMutable_exports = {};
183
+ __export(arrRemoveMutable_exports, {
184
+ arrRemoveMutable: () => arrRemoveMutable
185
+ });
186
+ function arrRemoveMutable(arr, elementToRemove) {
187
+ let index = arr.indexOf(elementToRemove);
188
+ while (index !== -1) {
189
+ arr.splice(index, 1);
190
+ index = arr.indexOf(elementToRemove);
191
+ }
192
+ }
193
+
194
+ // src/lib/arrShuffle.ts
195
+ var arrShuffle_exports = {};
196
+ __export(arrShuffle_exports, {
197
+ arrShuffle: () => arrShuffle
198
+ });
199
+
200
+ // src/lib/arrSwap.ts
201
+ var arrSwap_exports = {};
202
+ __export(arrSwap_exports, {
203
+ arrSwap: () => arrSwap
204
+ });
205
+ function arrSwap(input, from, to) {
206
+ if (from === to) {
207
+ return input;
208
+ }
209
+ ;
210
+ [input[from], input[to]] = [input[to], input[from]];
211
+ return input;
212
+ }
213
+
214
+ // src/lib/arrShuffle.ts
215
+ function arrShuffle(input) {
216
+ if (input.length <= 1) {
217
+ return input;
218
+ }
219
+ const original = input.slice();
220
+ let equal = true;
221
+ while (equal) {
222
+ for (let i = 0; i < input.length; i++) {
223
+ const newIndex = Math.floor(Math.random() * input.length);
224
+ arrSwap(input, i, newIndex);
225
+ }
226
+ equal = input.join(",") === original.join(",");
227
+ }
228
+ return input;
229
+ }
230
+
231
+ // src/lib/arrSortNumeric.ts
232
+ var arrSortNumeric_exports = {};
233
+ __export(arrSortNumeric_exports, {
234
+ arrSortNumeric: () => arrSortNumeric
235
+ });
236
+ function arrSortNumeric(input) {
237
+ return input.sort((a, b) => {
238
+ if (a < b) {
239
+ return -1;
240
+ }
241
+ if (a > b) {
242
+ return 1;
243
+ }
244
+ return 0;
245
+ });
246
+ }
247
+
248
+ // src/lib/arrSortedInsertionIndex.ts
249
+ var arrSortedInsertionIndex_exports = {};
250
+ __export(arrSortedInsertionIndex_exports, {
251
+ arrSortedInsertionIndex: () => arrSortedInsertionIndex
252
+ });
253
+ function arrSortedInsertionIndex(array, value, comparator) {
254
+ let first = 0;
255
+ let count = array.length;
256
+ while (count > 0) {
257
+ const step = Math.trunc(count / 2);
258
+ let it = first + step;
259
+ if (comparator(array[it], value) <= 0) {
260
+ it++;
261
+ first = it;
262
+ count -= step + 1;
263
+ } else {
264
+ count = step;
265
+ }
266
+ }
267
+ return first;
268
+ }
269
+
270
+ // src/lib/arrTableAssertRowsSameLength.ts
271
+ var arrTableAssertRowsSameLength_exports = {};
272
+ __export(arrTableAssertRowsSameLength_exports, {
273
+ arrTableAssertRowsSameLength: () => arrTableAssertRowsSameLength
274
+ });
275
+ function arrTableAssertRowsSameLength(rows, headers) {
276
+ const numHeaders = (headers || rows[0]).length;
277
+ for (const row of rows) {
278
+ if (row.length !== numHeaders) {
279
+ throw new Error(`Expected ${numHeaders} columns, got ${row.length}`);
280
+ }
281
+ }
282
+ }
283
+
284
+ // src/lib/arrTableEachToString.ts
285
+ var arrTableEachToString_exports = {};
286
+ __export(arrTableEachToString_exports, {
287
+ arrTableEachToString: () => arrTableEachToString
288
+ });
289
+ function arrTableEachToString(table) {
290
+ return table.map(arrEachToString);
291
+ }
292
+
293
+ // src/lib/arrTableIterateAsObjects.ts
294
+ var arrTableIterateAsObjects_exports = {};
295
+ __export(arrTableIterateAsObjects_exports, {
296
+ arrTableIterateAsObjects: () => arrTableIterateAsObjects
297
+ });
298
+ function* arrTableIterateAsObjects(rows, headers, ignoreHeaders = /* @__PURE__ */ new Set()) {
299
+ if (!headers.length) {
300
+ throw new Error("No headers provided");
301
+ }
302
+ ignoreHeaders.forEach((h) => {
303
+ if (!headers.includes(h)) {
304
+ throw new Error(`Header "${h}" not found in headers: ${headers}`);
305
+ }
306
+ });
307
+ if (new Set(headers).size === ignoreHeaders.size) {
308
+ throw new Error("All headers are ignored");
309
+ }
310
+ for (let r = 0; r < rows.length; r++) {
311
+ if (rows[r].length !== headers.length) {
312
+ throw new Error(`Row ${r} has ${rows[r].length} columns, but expected ${headers.length}`);
313
+ }
314
+ const o = {};
315
+ for (let c = 0; c < headers.length; c++) {
316
+ if (ignoreHeaders.has(headers[c])) {
317
+ continue;
318
+ }
319
+ o[headers[c]] = rows[r][c];
320
+ }
321
+ yield o;
322
+ }
323
+ }
324
+
325
+ // src/lib/arrTableRemoveColumns.ts
326
+ var arrTableRemoveColumns_exports = {};
327
+ __export(arrTableRemoveColumns_exports, {
328
+ arrTableRemoveColumns: () => arrTableRemoveColumns
329
+ });
330
+ function arrTableRemoveColumns(table, ...removeColumnNames) {
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
+ });
344
+ }
345
+
346
+ // src/lib/arrTableToCsv.ts
347
+ var arrTableToCsv_exports = {};
348
+ __export(arrTableToCsv_exports, {
349
+ arrTableToCsv: () => arrTableToCsv
350
+ });
351
+ function arrTableToCsv(input, delimiter = ";", replaceLinebreakWith = "<br>") {
352
+ return input.map((row) => {
353
+ return row.map((item) => {
354
+ return String(item).replace(new RegExp(";", "g"), "").replace(/\r*\n/g, replaceLinebreakWith);
355
+ }).join(delimiter);
356
+ }).join("\n");
357
+ }
358
+
359
+ // src/lib/arrTableToObjects.ts
360
+ var arrTableToObjects_exports = {};
361
+ __export(arrTableToObjects_exports, {
362
+ arrTableToObjects: () => arrTableToObjects
363
+ });
364
+ function arrTableToObjects(rows, headers, ignoreKeys) {
365
+ if (headers) {
366
+ if (!rows.length) {
367
+ return [];
368
+ }
369
+ } else {
370
+ if (rows.length <= 1) {
371
+ return [];
372
+ }
373
+ headers = rows[0].map((header) => {
374
+ return header === null || header === void 0 ? "" : String(header);
375
+ });
376
+ rows = rows.slice(1);
377
+ }
378
+ const _headers = headers;
379
+ return rows.map((row) => {
380
+ const o = {};
381
+ for (let i = 0; i < _headers.length; i++) {
382
+ const header = _headers[i];
383
+ if (ignoreKeys && ignoreKeys.has(header)) {
384
+ continue;
385
+ }
386
+ o[header] = row[i];
387
+ }
388
+ return o;
389
+ });
390
+ }
391
+
392
+ // src/lib/arrayToString.ts
393
+ var arrayToString_exports = {};
394
+ __export(arrayToString_exports, {
395
+ arrayToString: () => arrayToString
396
+ });
397
+ function arrayToString(array) {
398
+ return `[${array.map((item) => {
399
+ return item == null ? String(item) : Array.isArray(item) ? arrayToString(item) : item.toString();
400
+ }).join(",")}]`;
401
+ }
402
+
403
+ // src/index.ts
404
+ var src_default = {
405
+ ...arrAverage_exports,
406
+ //
407
+ ...arrEachToString_exports,
408
+ ...arrFindIndicesOf_exports,
409
+ ...arrGetOrDefault_exports,
410
+ ...arrHasDuplicates_exports,
411
+ ...arrIndicesOf_exports,
412
+ ...arrLast_exports,
413
+ ...arrMapMutable_exports,
414
+ ...arrObjectsToTable_exports,
415
+ ...arrObjectsUniqueKeys_exports,
416
+ ...arrRemove_exports,
417
+ ...arrRemoveDuplicates_exports,
418
+ ...arrRemoveMutable_exports,
419
+ ...arrShuffle_exports,
420
+ ...arrSortNumeric_exports,
421
+ ...arrSortedInsertionIndex_exports,
422
+ ...arrSum_exports,
423
+ ...arrSwap_exports,
424
+ ...arrTableAssertRowsSameLength_exports,
425
+ ...arrTableEachToString_exports,
426
+ ...arrTableIterateAsObjects_exports,
427
+ ...arrTableRemoveColumns_exports,
428
+ ...arrTableToCsv_exports,
429
+ ...arrTableToObjects_exports,
430
+ ...arrayToString_exports
431
+ };
432
+ export {
433
+ arrAverage,
434
+ arrEachToString,
435
+ arrFindIndicesOf,
436
+ arrGetOrDefault,
437
+ arrHasDuplicates,
438
+ arrIndicesOf,
439
+ arrLast,
440
+ arrMapMutable,
441
+ arrObjectsToTable,
442
+ arrObjectsUniqueKeys,
443
+ arrRemove,
444
+ arrRemoveDuplicates,
445
+ arrRemoveMutable,
446
+ arrShuffle,
447
+ arrSortNumeric,
448
+ arrSortedInsertionIndex,
449
+ arrSum,
450
+ arrSwap,
451
+ arrTableAssertRowsSameLength,
452
+ arrTableEachToString,
453
+ arrTableIterateAsObjects,
454
+ arrTableRemoveColumns,
455
+ arrTableToCsv,
456
+ arrTableToObjects,
457
+ arrayToString,
458
+ src_default as default
459
+ };
@@ -10,4 +10,3 @@
10
10
  * ```
11
11
  */
12
12
  export declare function arrAverage(array: number[]): number;
13
- //# sourceMappingURL=arrAverage.d.ts.map
@@ -10,4 +10,3 @@
10
10
  * ```
11
11
  */
12
12
  export declare function arrEachToString<T>(array: T[]): string[];
13
- //# sourceMappingURL=arrEachToString.d.ts.map
@@ -5,4 +5,3 @@
5
5
  * @returns An array of indices where the predicate function returns true.
6
6
  */
7
7
  export declare function arrFindIndicesOf<T>(input: Array<T>, predicate: (value: T) => boolean): number[];
8
- //# sourceMappingURL=arrFindIndicesOf.d.ts.map
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Get array element at index or create it using factory function if it doesn't exist.
3
+ */
4
+ export declare function arrGetOrDefault<V>(array: V[], index: number, factory: (index: number) => V): V;
@@ -5,4 +5,3 @@
5
5
  * @typeParam T - The type of elements in the array.
6
6
  */
7
7
  export declare function arrHasDuplicates<T>(arr: T[]): boolean;
8
- //# sourceMappingURL=arrHasDuplicates.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * ```
13
13
  */
14
14
  export declare function arrIndicesOf<T>(input: Array<T>, element: T): number[];
15
- //# sourceMappingURL=arrIndicesOf.d.ts.map
@@ -10,4 +10,3 @@
10
10
  * //=> 5
11
11
  */
12
12
  export declare function arrLast<T>(array: T[]): T;
13
- //# sourceMappingURL=arrLast.d.ts.map
@@ -1,4 +1,3 @@
1
- import { ArrayValueCallback } from './types/ArrayValueCallback';
2
1
  /**
3
2
  * 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.
4
3
  * @template T The type of elements in the input array.
@@ -10,5 +9,4 @@ import { ArrayValueCallback } from './types/ArrayValueCallback';
10
9
  * //=> [2, 4, 6]
11
10
  * ```
12
11
  */
13
- export declare function arrMapMutable<T>(input: Array<T>, f: ArrayValueCallback<T>): Array<T>;
14
- //# sourceMappingURL=arrMapMutable.d.ts.map
12
+ export declare function arrMapMutable<T>(input: Array<T>, f: (value: T, index: number, array: T[]) => T): Array<T>;
@@ -20,4 +20,3 @@ export declare function arrObjectsToTable<T, E>(objects: Record<string, T | unde
20
20
  headers?: string[];
21
21
  emptyCell?: E;
22
22
  }): Array<Array<string | T | E>>;
23
- //# sourceMappingURL=arrObjectsToTable.d.ts.map
@@ -14,4 +14,3 @@
14
14
  * ```
15
15
  */
16
16
  export declare function arrObjectsUniqueKeys<T>(objects: Record<string, T>[]): string[];
17
- //# sourceMappingURL=arrObjectsUniqueKeys.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * Remove a given element from a copy of a given array and return the resulting array.
3
3
  */
4
4
  export declare function arrRemove<T>(arr: T[], elementToRemove: T): T[];
5
- //# sourceMappingURL=arrRemove.d.ts.map
@@ -11,4 +11,3 @@
11
11
  * ```
12
12
  */
13
13
  export declare function arrRemoveDuplicates<T>(array: T[]): T[];
14
- //# sourceMappingURL=arrRemoveDuplicates.d.ts.map
@@ -2,4 +2,3 @@
2
2
  * Remove elements in-place from an array.
3
3
  */
4
4
  export declare function arrRemoveMutable<T>(arr: T[], elementToRemove: T): void;
5
- //# sourceMappingURL=arrRemoveMutable.d.ts.map
@@ -11,4 +11,3 @@
11
11
  * ```
12
12
  */
13
13
  export declare function arrShuffle<T>(input: Array<T>): Array<T>;
14
- //# sourceMappingURL=arrShuffle.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * ```
13
13
  */
14
14
  export declare function arrSortNumeric(input: Array<number | bigint | boolean>): Array<number | bigint | boolean>;
15
- //# sourceMappingURL=arrSortNumeric.d.ts.map
@@ -14,4 +14,3 @@
14
14
  * ```
15
15
  */
16
16
  export declare function arrSortedInsertionIndex<T>(array: readonly T[], value: T, comparator: (a: T, b: T) => number): number;
17
- //# sourceMappingURL=arrSortedInsertionIndex.d.ts.map
@@ -9,4 +9,3 @@
9
9
  * ```
10
10
  */
11
11
  export declare function arrSum(array: number[]): number;
12
- //# sourceMappingURL=arrSum.d.ts.map
@@ -12,4 +12,3 @@
12
12
  * ```
13
13
  */
14
14
  export declare function arrSwap<T>(input: Array<T>, from: number, to: number): Array<T>;
15
- //# sourceMappingURL=arrSwap.d.ts.map
@@ -23,4 +23,3 @@
23
23
  * ```
24
24
  */
25
25
  export declare function arrTableAssertRowsSameLength<T>(rows: T[][], headers?: string[]): void;
26
- //# sourceMappingURL=arrTableAssertRowsSameLength.d.ts.map
@@ -10,4 +10,3 @@
10
10
  * ```
11
11
  */
12
12
  export declare function arrTableEachToString<T>(table: T[][]): string[][];
13
- //# sourceMappingURL=arrTableEachToString.d.ts.map
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Generator that iterates through a 2D array table, yielding objects with header keys and row values.
3
+ */
4
+ export declare function arrTableIterateAsObjects<T>(rows: T[][], headers: string[], ignoreHeaders?: Set<string>): Generator<Record<string, T>, void, unknown>;
@@ -5,4 +5,3 @@
5
5
  * @returns A new 2D array (table) with the specified columns removed.
6
6
  */
7
7
  export declare function arrTableRemoveColumns(table: string[][], ...removeColumnNames: string[]): string[][];
8
- //# sourceMappingURL=arrTableRemoveColumns.d.ts.map
@@ -18,4 +18,3 @@
18
18
  * ```
19
19
  */
20
20
  export declare function arrTableToCsv<T>(input: T[][], delimiter?: string, replaceLinebreakWith?: string): string;
21
- //# sourceMappingURL=arrTableToCsv.d.ts.map
@@ -20,4 +20,3 @@
20
20
  * ```
21
21
  */
22
22
  export declare function arrTableToObjects<T>(rows: T[][], headers?: string[], ignoreKeys?: Set<string>): Record<string, T>[];
23
- //# sourceMappingURL=arrTableToObjects.d.ts.map
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Short and condensed string representation of an array, easy to read for error outputs or similar.
3
+ */
4
+ export declare function arrayToString<T>(array: T[]): string;