@bodil/monkey-business 0.1.1 → 0.1.3

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.d.ts CHANGED
@@ -82,6 +82,11 @@ declare global {
82
82
  * Construct an empty iterator.
83
83
  */
84
84
  empty<T>(): IteratorObject<T>;
85
+ /**
86
+ * Sequence multiple iterators into a single one.
87
+ * {@see https://github.com/tc39/proposal-iterator-sequencing}
88
+ */
89
+ concat<T>(...inputs: Array<Iterable<T>>): IteratorObject<T>;
85
90
  }
86
91
  interface IteratorObject<T, TReturn, TNext> {
87
92
  /**
package/dist/index.js CHANGED
@@ -21,48 +21,114 @@ Map.prototype.getOrSet = function getOrSet(key, defaultValue) {
21
21
  return newValue;
22
22
  };
23
23
  // Array
24
- Array.prototype.remove = function remove(value) {
25
- return this.removeIndex(this.indexOf(value));
26
- };
27
- Array.prototype.removeFn = function remove(predicate) {
28
- return this.removeIndex(this.findIndex(predicate));
29
- };
30
- Array.prototype.removeIndex = function remove(index) {
31
- if (!Number.isInteger(index)) {
32
- throw new TypeError(`Array.removeIndex(): index ${index} is not an integer`);
33
- }
34
- if (index < 0 || index >= this.length) {
35
- return None;
36
- }
37
- const removed = this.splice(index, 1).pop();
38
- return Option.from(removed);
39
- };
40
- Array.prototype.insert = function insert(value, index) {
41
- if (!Number.isInteger(index)) {
42
- throw new TypeError(`Array.insert(): index ${index} is not an integer`);
43
- }
44
- if (index > this.length || index < 0) {
45
- throw new RangeError(`Array.insert: index ${index} out of bounds`);
46
- }
47
- this.splice(index, 0, value);
48
- return this;
49
- };
50
- Array.prototype.insertOrdered = function insertOrdered(value, cmp, duplicates = "high") {
51
- return this.insert(value, (duplicates === "low" ? bisectLow : bisectHigh)(cmp, this, value));
52
- };
53
- Array.prototype.present = function present() {
54
- return this.filter((value) => value !== undefined);
55
- };
56
- Array.prototype.nonNullable = function nonNullable() {
57
- return this.filter((value) => value !== undefined);
58
- };
59
- Array.prototype.get = function get(index) {
60
- return Object.get(this, index);
61
- };
24
+ Object.defineProperties(Array.prototype, {
25
+ remove: {
26
+ enumerable: false,
27
+ get() {
28
+ return function remove(value) {
29
+ return this.removeIndex(this.indexOf(value));
30
+ };
31
+ },
32
+ },
33
+ removeFn: {
34
+ enumerable: false,
35
+ get() {
36
+ return function removeFn(predicate) {
37
+ return this.removeIndex(this.findIndex(predicate));
38
+ };
39
+ },
40
+ },
41
+ removeIndex: {
42
+ enumerable: false,
43
+ get() {
44
+ return function removeIndex(index) {
45
+ if (!Number.isInteger(index)) {
46
+ throw new TypeError(`Array.removeIndex(): index ${index} is not an integer`);
47
+ }
48
+ if (index < 0 || index >= this.length) {
49
+ return None;
50
+ }
51
+ const removed = this.splice(index, 1).pop();
52
+ return Option.from(removed);
53
+ };
54
+ },
55
+ },
56
+ insert: {
57
+ enumerable: false,
58
+ get() {
59
+ return function insert(value, index) {
60
+ if (!Number.isInteger(index)) {
61
+ throw new TypeError(`Array.insert(): index ${index} is not an integer`);
62
+ }
63
+ if (index > this.length || index < 0) {
64
+ throw new RangeError(`Array.insert: index ${index} out of bounds`);
65
+ }
66
+ this.splice(index, 0, value);
67
+ return this;
68
+ };
69
+ },
70
+ },
71
+ insertOrdered: {
72
+ enumerable: false,
73
+ get() {
74
+ return function insertOrdered(value, cmp, duplicates = "high") {
75
+ return this.insert(value, (duplicates === "low" ? bisectLow : bisectHigh)(cmp, this, value));
76
+ };
77
+ },
78
+ },
79
+ present: {
80
+ enumerable: false,
81
+ get() {
82
+ return function present() {
83
+ return this.filter((value) => value !== undefined);
84
+ };
85
+ },
86
+ },
87
+ nonNullable: {
88
+ enumerable: false,
89
+ get() {
90
+ return function nonNullable() {
91
+ return this.filter((value) => value !== undefined);
92
+ };
93
+ },
94
+ },
95
+ get: {
96
+ enumerable: false,
97
+ get() {
98
+ return function get(index) {
99
+ return Object.get(this, index);
100
+ };
101
+ },
102
+ },
103
+ });
62
104
  // Iterator
63
105
  Iterator.empty = function empty() {
64
106
  return Iterator.from([]);
65
107
  };
108
+ Iterator.concat = function concat(...inputs) {
109
+ if (inputs.length === 0) {
110
+ return Iterator.empty();
111
+ }
112
+ let iter = inputs[0][Symbol.iterator]();
113
+ let index = 0;
114
+ let done = false;
115
+ return Iterator.from({
116
+ next() {
117
+ if (!done) {
118
+ let result = iter.next();
119
+ while (result.done === true && index < inputs.length - 1) {
120
+ iter = inputs[++index][Symbol.iterator]();
121
+ result = iter.next();
122
+ }
123
+ if (result.done !== true) {
124
+ return result;
125
+ }
126
+ }
127
+ done = true;
128
+ return { done: true, value: undefined };
129
+ },
130
+ });
131
+ };
66
132
  Iterator.prototype.takeOne = function takeOne() {
67
133
  const result = this.next();
68
134
  return result.done === true ? None : Some(result.value);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -95,4 +95,17 @@ test("Iterator.takeOne", () => {
95
95
  expect(iter.takeOne()).isSome(3);
96
96
  expect(iter.takeOne()).isNone();
97
97
  });
98
+ test("Array methods are non-enumerable", () => {
99
+ const array = [1, 2, 3, 4, 5];
100
+ const keys = [];
101
+ // eslint-disable-next-line @typescript-eslint/no-for-in-array, guard-for-in
102
+ for (const key in array) {
103
+ keys.push(key);
104
+ }
105
+ expect(keys).deep.equal(["0", "1", "2", "3", "4"]);
106
+ });
107
+ test("Iterator.concat", () => {
108
+ const iter = Iterator.concat([1, 2, 3], [], [4, 5], [], [6]);
109
+ expect(iter.toArray()).deep.equals([1, 2, 3, 4, 5, 6]);
110
+ });
98
111
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bodil/monkey-business",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Let's give JS core types a polish",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,21 +25,21 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@bodil/core": "^0.1.0",
28
+ "@bodil/core": "^0.1.2",
29
29
  "@bodil/opt": "^0.2.6"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@bodil/opt-vitest": "^1.0.0",
33
- "@eslint/eslintrc": "^3.2.0",
34
- "@eslint/js": "^9.18.0",
35
- "@typescript-eslint/eslint-plugin": "^8.21.0",
36
- "@typescript-eslint/parser": "^8.21.0",
37
- "eslint": "^9.18.0",
38
- "eslint-config-prettier": "^10.0.1",
39
- "eslint-plugin-jsdoc": "^50.6.2",
40
- "globals": "^15.14.0",
41
- "typescript": "^5.7.3",
42
- "vitest": "^3.0.2"
33
+ "@eslint/eslintrc": "^3.3.1",
34
+ "@eslint/js": "^9.24.0",
35
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
36
+ "@typescript-eslint/parser": "^8.29.1",
37
+ "eslint": "^9.24.0",
38
+ "eslint-config-prettier": "^10.1.1",
39
+ "eslint-plugin-jsdoc": "^50.6.9",
40
+ "globals": "^15.15.0",
41
+ "typescript": "^5.8.3",
42
+ "vitest": "^3.1.1"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsc",
package/src/index.test.ts CHANGED
@@ -114,3 +114,18 @@ test("Iterator.takeOne", () => {
114
114
  expect(iter.takeOne()).isSome(3);
115
115
  expect(iter.takeOne()).isNone();
116
116
  });
117
+
118
+ test("Array methods are non-enumerable", () => {
119
+ const array = [1, 2, 3, 4, 5];
120
+ const keys: Array<any> = [];
121
+ // eslint-disable-next-line @typescript-eslint/no-for-in-array, guard-for-in
122
+ for (const key in array) {
123
+ keys.push(key);
124
+ }
125
+ expect(keys).deep.equal(["0", "1", "2", "3", "4"]);
126
+ });
127
+
128
+ test("Iterator.concat", () => {
129
+ const iter = Iterator.concat([1, 2, 3], [], [4, 5], [], [6]);
130
+ expect(iter.toArray()).deep.equals([1, 2, 3, 4, 5, 6]);
131
+ });
package/src/index.ts CHANGED
@@ -101,6 +101,11 @@ declare global {
101
101
  * Construct an empty iterator.
102
102
  */
103
103
  empty<T>(): IteratorObject<T>;
104
+ /**
105
+ * Sequence multiple iterators into a single one.
106
+ * {@see https://github.com/tc39/proposal-iterator-sequencing}
107
+ */
108
+ concat<T>(...inputs: Array<Iterable<T>>): IteratorObject<T>;
104
109
  }
105
110
 
106
111
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -184,59 +189,97 @@ Map.prototype.getOrSet = function getOrSet<K, V>(
184
189
 
185
190
  // Array
186
191
 
187
- Array.prototype.remove = function remove<T>(this: Array<T>, value: T): Option<T> {
188
- return this.removeIndex(this.indexOf(value));
189
- };
190
-
191
- Array.prototype.removeFn = function remove<T>(
192
- this: Array<T>,
193
- predicate: (value: T, index: number, obj: Array<T>) => boolean
194
- ): Option<T> {
195
- return this.removeIndex(this.findIndex(predicate as () => boolean));
196
- };
197
-
198
- Array.prototype.removeIndex = function remove<T>(this: Array<T>, index: number): Option<T> {
199
- if (!Number.isInteger(index)) {
200
- throw new TypeError(`Array.removeIndex(): index ${index} is not an integer`);
201
- }
202
- if (index < 0 || index >= this.length) {
203
- return None;
204
- }
205
- const removed = this.splice(index, 1).pop();
206
- return Option.from(removed);
207
- };
208
-
209
- Array.prototype.insert = function insert<T>(this: Array<T>, value: T, index: number): Array<T> {
210
- if (!Number.isInteger(index)) {
211
- throw new TypeError(`Array.insert(): index ${index} is not an integer`);
212
- }
213
- if (index > this.length || index < 0) {
214
- throw new RangeError(`Array.insert: index ${index} out of bounds`);
215
- }
216
- this.splice(index, 0, value);
217
- return this;
218
- };
219
-
220
- Array.prototype.insertOrdered = function insertOrdered<T>(
221
- this: Array<T>,
222
- value: T,
223
- cmp: OrderFn<T>,
224
- duplicates: "low" | "high" = "high"
225
- ): Array<T> {
226
- return this.insert(value, (duplicates === "low" ? bisectLow : bisectHigh)(cmp, this, value));
227
- };
228
-
229
- Array.prototype.present = function present<T>(this: Array<T>): Array<Present<T>> {
230
- return this.filter((value: T): value is Present<T> => value !== undefined);
231
- };
232
-
233
- Array.prototype.nonNullable = function nonNullable<T>(this: Array<T>): Array<NonNullable<T>> {
234
- return this.filter((value: T): value is NonNullable<T> => value !== undefined);
235
- };
236
-
237
- Array.prototype.get = function get<T>(this: Array<T>, index: number): Option<T> {
238
- return Object.get(this, index);
239
- };
192
+ Object.defineProperties(Array.prototype, {
193
+ remove: {
194
+ enumerable: false,
195
+ get() {
196
+ return function remove<T>(this: Array<T>, value: T): Option<T> {
197
+ return this.removeIndex(this.indexOf(value));
198
+ };
199
+ },
200
+ },
201
+ removeFn: {
202
+ enumerable: false,
203
+ get() {
204
+ return function removeFn<T>(
205
+ this: Array<T>,
206
+ predicate: (value: T, index: number, obj: Array<T>) => boolean
207
+ ): Option<T> {
208
+ return this.removeIndex(this.findIndex(predicate as () => boolean));
209
+ };
210
+ },
211
+ },
212
+ removeIndex: {
213
+ enumerable: false,
214
+ get() {
215
+ return function removeIndex<T>(this: Array<T>, index: number): Option<T> {
216
+ if (!Number.isInteger(index)) {
217
+ throw new TypeError(`Array.removeIndex(): index ${index} is not an integer`);
218
+ }
219
+ if (index < 0 || index >= this.length) {
220
+ return None;
221
+ }
222
+ const removed = this.splice(index, 1).pop();
223
+ return Option.from(removed);
224
+ };
225
+ },
226
+ },
227
+ insert: {
228
+ enumerable: false,
229
+ get() {
230
+ return function insert<T>(this: Array<T>, value: T, index: number): Array<T> {
231
+ if (!Number.isInteger(index)) {
232
+ throw new TypeError(`Array.insert(): index ${index} is not an integer`);
233
+ }
234
+ if (index > this.length || index < 0) {
235
+ throw new RangeError(`Array.insert: index ${index} out of bounds`);
236
+ }
237
+ this.splice(index, 0, value);
238
+ return this;
239
+ };
240
+ },
241
+ },
242
+ insertOrdered: {
243
+ enumerable: false,
244
+ get() {
245
+ return function insertOrdered<T>(
246
+ this: Array<T>,
247
+ value: T,
248
+ cmp: OrderFn<T>,
249
+ duplicates: "low" | "high" = "high"
250
+ ): Array<T> {
251
+ return this.insert(
252
+ value,
253
+ (duplicates === "low" ? bisectLow : bisectHigh)(cmp, this, value)
254
+ );
255
+ };
256
+ },
257
+ },
258
+ present: {
259
+ enumerable: false,
260
+ get() {
261
+ return function present<T>(this: Array<T>): Array<Present<T>> {
262
+ return this.filter((value: T): value is Present<T> => value !== undefined);
263
+ };
264
+ },
265
+ },
266
+ nonNullable: {
267
+ enumerable: false,
268
+ get() {
269
+ return function nonNullable<T>(this: Array<T>): Array<NonNullable<T>> {
270
+ return this.filter((value: T): value is NonNullable<T> => value !== undefined);
271
+ };
272
+ },
273
+ },
274
+ get: {
275
+ enumerable: false,
276
+ get() {
277
+ return function get<T>(this: Array<T>, index: number): Option<T> {
278
+ return Object.get(this, index);
279
+ };
280
+ },
281
+ },
282
+ });
240
283
 
241
284
  // Iterator
242
285
 
@@ -244,6 +287,31 @@ Iterator.empty = function empty<T>(): IteratorObject<T> {
244
287
  return Iterator.from([]);
245
288
  };
246
289
 
290
+ Iterator.concat = function concat<T>(...inputs: Array<Iterable<T>>): IteratorObject<T> {
291
+ if (inputs.length === 0) {
292
+ return Iterator.empty();
293
+ }
294
+ let iter: Iterator<T> = inputs[0][Symbol.iterator]();
295
+ let index = 0;
296
+ let done = false;
297
+ return Iterator.from({
298
+ next(): IteratorResult<T, undefined> {
299
+ if (!done) {
300
+ let result = iter.next();
301
+ while (result.done === true && index < inputs.length - 1) {
302
+ iter = inputs[++index][Symbol.iterator]();
303
+ result = iter.next();
304
+ }
305
+ if (result.done !== true) {
306
+ return result;
307
+ }
308
+ }
309
+ done = true;
310
+ return { done: true, value: undefined };
311
+ },
312
+ });
313
+ };
314
+
247
315
  Iterator.prototype.takeOne = function takeOne<T>(this: Iterator<T>): Option<T> {
248
316
  const result = this.next();
249
317
  return result.done === true ? None : Some(result.value);