@bodil/monkey-business 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Option } from "@bodil/opt";
1
+ import { Option } from "@bodil/core";
2
2
  import { type OrderFn } from "@bodil/core/order";
3
3
  import type { Present } from "@bodil/core/types";
4
4
  declare global {
package/dist/index.js CHANGED
@@ -1,238 +1,207 @@
1
1
  /* eslint-disable @typescript-eslint/no-this-alias */
2
2
  // deno-lint-ignore-file no-this-alias
3
- import { None, Option, Some } from "@bodil/opt";
3
+ import { None, Option, Some } from "@bodil/core";
4
4
  import { bisectHigh, bisectLow } from "@bodil/core/order";
5
5
  import { assert } from "@bodil/core/assert";
6
+ import defineProperties from "define-properties";
6
7
  // Object
7
- Object.get = function get(obj, key) {
8
- return Object.hasOwn(obj, key) ? Some(obj[key]) : None;
9
- };
10
- Object.mapEntries = function mapEntries(obj, fn) {
11
- return Object.fromEntries(Object.entries(obj).map(fn));
12
- };
8
+ defineProperties(Object, {
9
+ get(obj, key) {
10
+ return Object.hasOwn(obj, key) ? Some(obj[key]) : None;
11
+ },
12
+ mapEntries(obj, fn) {
13
+ return Object.fromEntries(Object.entries(obj).map(fn));
14
+ },
15
+ });
13
16
  // Map
14
- Map.prototype.getOrSet = function getOrSet(key, defaultValue) {
15
- const result = this.get(key);
16
- if (result !== undefined) {
17
- return result;
18
- }
19
- const newValue = defaultValue();
20
- this.set(key, newValue);
21
- return newValue;
22
- };
17
+ defineProperties(Map.prototype, {
18
+ getOrSet(key, defaultValue) {
19
+ const result = this.get(key);
20
+ if (result !== undefined) {
21
+ return result;
22
+ }
23
+ const newValue = defaultValue();
24
+ this.set(key, newValue);
25
+ return newValue;
26
+ },
27
+ });
23
28
  // Array
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
- },
29
+ defineProperties(Array.prototype, {
30
+ remove(value) {
31
+ return this.removeIndex(this.indexOf(value));
32
+ },
33
+ removeFn(predicate) {
34
+ return this.removeIndex(this.findIndex(predicate));
35
+ },
36
+ removeIndex(index) {
37
+ if (!Number.isInteger(index)) {
38
+ throw new TypeError(`Array.removeIndex(): index ${index} is not an integer`);
39
+ }
40
+ if (index < 0 || index >= this.length) {
41
+ return None;
42
+ }
43
+ const removed = this.splice(index, 1).pop();
44
+ return Option.from(removed);
45
+ },
46
+ insert(value, index) {
47
+ if (!Number.isInteger(index)) {
48
+ throw new TypeError(`Array.insert(): index ${index} is not an integer`);
49
+ }
50
+ if (index > this.length || index < 0) {
51
+ throw new RangeError(`Array.insert: index ${index} out of bounds`);
52
+ }
53
+ this.splice(index, 0, value);
54
+ return this;
55
+ },
56
+ insertOrdered(value, cmp, duplicates = "high") {
57
+ return this.insert(value, (duplicates === "low" ? bisectLow : bisectHigh)(cmp, this, value));
58
+ },
59
+ present() {
60
+ return this.filter((value) => value !== undefined);
61
+ },
62
+ nonNullable() {
63
+ return this.filter((value) => value !== undefined);
64
+ },
65
+ get(index) {
66
+ return Object.get(this, index);
102
67
  },
103
68
  });
104
69
  // Iterator
105
- Iterator.empty = function empty() {
106
- return Iterator.from([]);
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();
70
+ defineProperties(Iterator, {
71
+ empty() {
72
+ return Iterator.from([]);
73
+ },
74
+ concat(...inputs) {
75
+ if (inputs.length === 0) {
76
+ return Iterator.empty();
77
+ }
78
+ let iter = inputs[0][Symbol.iterator]();
79
+ let index = 0;
80
+ let done = false;
81
+ return Iterator.from({
82
+ next() {
83
+ if (!done) {
84
+ let result = iter.next();
85
+ while (result.done === true && index < inputs.length - 1) {
86
+ iter = inputs[++index][Symbol.iterator]();
87
+ result = iter.next();
88
+ }
89
+ if (result.done !== true) {
90
+ return result;
91
+ }
122
92
  }
123
- if (result.done !== true) {
124
- return result;
93
+ done = true;
94
+ return { done: true, value: undefined };
95
+ },
96
+ });
97
+ },
98
+ });
99
+ defineProperties(Iterator.prototype, {
100
+ takeOne() {
101
+ const result = this.next();
102
+ return result.done === true ? None : Some(result.value);
103
+ },
104
+ takeWhile(predicate) {
105
+ const iter = this;
106
+ let index = 0;
107
+ let done = false;
108
+ return Iterator.from({
109
+ next() {
110
+ if (!done) {
111
+ const result = iter.next();
112
+ if (result.done === true) {
113
+ return result;
114
+ }
115
+ if (predicate(result.value, index++)) {
116
+ return result;
117
+ }
125
118
  }
126
- }
127
- done = true;
128
- return { done: true, value: undefined };
129
- },
130
- });
131
- };
132
- Iterator.prototype.takeOne = function takeOne() {
133
- const result = this.next();
134
- return result.done === true ? None : Some(result.value);
135
- };
136
- Iterator.prototype.takeWhile = function takeWhile(predicate) {
137
- const iter = this;
138
- let index = 0;
139
- let done = false;
140
- return Iterator.from({
141
- next() {
142
- if (!done) {
143
- const result = iter.next();
144
- if (result.done === true) {
145
- return result;
119
+ done = true;
120
+ return { done: true, value: undefined };
121
+ },
122
+ });
123
+ },
124
+ skipWhile(predicate) {
125
+ const iter = this;
126
+ let index = 0;
127
+ let skipped = false;
128
+ return Iterator.from({
129
+ next() {
130
+ if (skipped) {
131
+ return iter.next();
146
132
  }
147
- if (predicate(result.value, index++)) {
148
- return result;
133
+ while (true) {
134
+ const result = iter.next();
135
+ if (result.done === true) {
136
+ return result;
137
+ }
138
+ if (!predicate(result.value, index++)) {
139
+ skipped = true;
140
+ return result;
141
+ }
149
142
  }
143
+ },
144
+ });
145
+ },
146
+ findMap(mapFn) {
147
+ let index = 0;
148
+ while (true) {
149
+ const result = this.next();
150
+ if (result.done === true) {
151
+ return undefined;
150
152
  }
151
- done = true;
152
- return { done: true, value: undefined };
153
- },
154
- });
155
- };
156
- Iterator.prototype.skipWhile = function skipWhile(predicate) {
157
- const iter = this;
158
- let index = 0;
159
- let skipped = false;
160
- return Iterator.from({
161
- next() {
162
- if (skipped) {
163
- return iter.next();
153
+ const mapped = mapFn(result.value, index++);
154
+ if (mapped !== undefined) {
155
+ return mapped;
164
156
  }
165
- while (true) {
166
- const result = iter.next();
167
- if (result.done === true) {
168
- return result;
157
+ }
158
+ },
159
+ partition(size) {
160
+ const iter = this;
161
+ let done = false;
162
+ return Iterator.from({
163
+ next() {
164
+ if (done) {
165
+ return { done: true, value: undefined };
169
166
  }
170
- if (!predicate(result.value, index++)) {
171
- skipped = true;
172
- return result;
167
+ const part = [];
168
+ while (true) {
169
+ const result = iter.next();
170
+ if (result.done === true) {
171
+ done = true;
172
+ return part.length > 0
173
+ ? { done: false, value: part }
174
+ : { done: true, value: undefined };
175
+ }
176
+ part.push(result.value);
177
+ if (part.length === size) {
178
+ return { done: false, value: part };
179
+ }
173
180
  }
174
- }
175
- },
176
- });
177
- };
178
- Iterator.prototype.findMap = function findMap(mapFn) {
179
- let index = 0;
180
- while (true) {
181
- const result = this.next();
182
- if (result.done === true) {
183
- return undefined;
181
+ },
182
+ });
183
+ },
184
+ frontBiasedPartition(size) {
185
+ const input = this.toArray();
186
+ let inputPos = 0;
187
+ const firstLength = input.length % size;
188
+ const output = [];
189
+ if (firstLength > 0) {
190
+ output.push(input.slice(0, firstLength));
191
+ inputPos = firstLength;
184
192
  }
185
- const mapped = mapFn(result.value, index++);
186
- if (mapped !== undefined) {
187
- return mapped;
193
+ while (inputPos < input.length) {
194
+ output.push(input.slice(inputPos, inputPos + size));
195
+ inputPos += size;
188
196
  }
189
- }
190
- };
191
- Iterator.prototype.partition = function partition(size) {
192
- const iter = this;
193
- let done = false;
194
- return Iterator.from({
195
- next() {
196
- if (done) {
197
- return { done: true, value: undefined };
198
- }
199
- const part = [];
200
- while (true) {
201
- const result = iter.next();
202
- if (result.done === true) {
203
- done = true;
204
- return part.length > 0
205
- ? { done: false, value: part }
206
- : { done: true, value: undefined };
207
- }
208
- part.push(result.value);
209
- if (part.length === size) {
210
- return { done: false, value: part };
211
- }
212
- }
213
- },
214
- });
215
- };
216
- Iterator.prototype.frontBiasedPartition = function frontBiasedPartition(size) {
217
- const input = this.toArray();
218
- let inputPos = 0;
219
- const firstLength = input.length % size;
220
- const output = [];
221
- if (firstLength > 0) {
222
- output.push(input.slice(0, firstLength));
223
- inputPos = firstLength;
224
- }
225
- while (inputPos < input.length) {
226
- output.push(input.slice(inputPos, inputPos + size));
227
- inputPos += size;
228
- }
229
- assert(inputPos === input.length);
230
- return output;
231
- };
232
- Iterator.prototype.present = function present() {
233
- return Iterator.from(this.filter((item) => item !== undefined));
234
- };
235
- Iterator.prototype.nonNullable = function nonNullable() {
236
- return Iterator.from(this.filter((item) => item !== undefined && item !== null));
237
- };
197
+ assert(inputPos === input.length);
198
+ return output;
199
+ },
200
+ present() {
201
+ return Iterator.from(this.filter((item) => item !== undefined));
202
+ },
203
+ nonNullable() {
204
+ return Iterator.from(this.filter((item) => item !== undefined && item !== null));
205
+ },
206
+ });
238
207
  //# sourceMappingURL=index.js.map
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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"}
@@ -1,5 +1,5 @@
1
1
  import { test, expect, expectTypeOf } from "vitest";
2
- import { Order } from "@bodil/core";
2
+ import { order as Order } from "@bodil/core";
3
3
  import ".";
4
4
  import "@bodil/opt-vitest";
5
5
  const Iterator = globalThis.Iterator;
@@ -72,7 +72,7 @@ test("Array.filterPresent", () => {
72
72
  expect(array.some((v) => v === undefined)).toBeTruthy();
73
73
  expect(cleanArray.some((v) => v === undefined)).toBeFalsy();
74
74
  expect(cleanArray).toEqual([1, 2, 3, 4]);
75
- expectTypeOf(cleanArray).toMatchTypeOf();
75
+ expectTypeOf(cleanArray).toExtend();
76
76
  });
77
77
  test("Iterator.partition", () => {
78
78
  expect(Array.from(Iterator.from([1, 2, 3, 4]).partition(2))).toEqual([
@@ -108,4 +108,12 @@ test("Iterator.concat", () => {
108
108
  const iter = Iterator.concat([1, 2, 3], [], [4, 5], [], [6]);
109
109
  expect(iter.toArray()).deep.equals([1, 2, 3, 4, 5, 6]);
110
110
  });
111
+ test("Error.isError", () => {
112
+ const err = new TypeError("welp");
113
+ expect(Error.isError(err)).true;
114
+ const domX = new DOMException("welp");
115
+ expect(Error.isError(domX)).true;
116
+ const notErr = new Event("welp");
117
+ expect(Error.isError(notErr)).false;
118
+ });
111
119
  //# 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,10 +1,11 @@
1
1
  {
2
2
  "name": "@bodil/monkey-business",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "Let's give JS core types a polish",
5
+ "homepage": "https://codeberg.org/bodil/monkey-business",
5
6
  "repository": {
6
7
  "type": "git",
7
- "url": "git+https://github.com/bodil/monkey-business.git"
8
+ "url": "ssh://git@codeberg.org/bodil/monkey-business.git"
8
9
  },
9
10
  "license": "EUPL-1.2+",
10
11
  "module": "dist/index.js",
@@ -25,21 +26,22 @@
25
26
  "access": "public"
26
27
  },
27
28
  "dependencies": {
28
- "@bodil/core": "^0.1.2",
29
- "@bodil/opt": "^0.2.6"
29
+ "@bodil/core": "^0.2.2",
30
+ "@types/define-properties": "^1.1.5",
31
+ "define-properties": "^1.2.1"
30
32
  },
31
33
  "devDependencies": {
32
34
  "@bodil/opt-vitest": "^1.0.0",
33
35
  "@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",
36
+ "@eslint/js": "^9.33.0",
37
+ "@typescript-eslint/eslint-plugin": "^8.39.1",
38
+ "@typescript-eslint/parser": "^8.39.1",
39
+ "eslint": "^9.33.0",
40
+ "eslint-config-prettier": "^10.1.8",
41
+ "eslint-plugin-jsdoc": "^53.0.0",
40
42
  "globals": "^15.15.0",
41
- "typescript": "^5.8.3",
42
- "vitest": "^3.1.1"
43
+ "typescript": "^5.9.2",
44
+ "vitest": "^3.2.4"
43
45
  },
44
46
  "scripts": {
45
47
  "build": "tsc",
package/src/index.test.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { test, expect, expectTypeOf } from "vitest";
2
- import type { Option } from "@bodil/opt";
3
- import { Order } from "@bodil/core";
2
+ import type { Option } from "@bodil/core";
3
+ import { order as Order } from "@bodil/core";
4
4
 
5
5
  import ".";
6
6
 
@@ -86,7 +86,7 @@ test("Array.filterPresent", () => {
86
86
  expect(array.some((v) => v === undefined)).toBeTruthy();
87
87
  expect(cleanArray.some((v) => v === undefined)).toBeFalsy();
88
88
  expect(cleanArray).toEqual([1, 2, 3, 4]);
89
- expectTypeOf(cleanArray).toMatchTypeOf<Array<number>>();
89
+ expectTypeOf(cleanArray).toExtend<Array<number>>();
90
90
  });
91
91
 
92
92
  test("Iterator.partition", () => {
@@ -129,3 +129,12 @@ test("Iterator.concat", () => {
129
129
  const iter = Iterator.concat([1, 2, 3], [], [4, 5], [], [6]);
130
130
  expect(iter.toArray()).deep.equals([1, 2, 3, 4, 5, 6]);
131
131
  });
132
+
133
+ test("Error.isError", () => {
134
+ const err = new TypeError("welp");
135
+ expect(Error.isError(err)).true;
136
+ const domX = new DOMException("welp");
137
+ expect(Error.isError(domX)).true;
138
+ const notErr = new Event("welp");
139
+ expect(Error.isError(notErr)).false;
140
+ });
package/src/index.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  /* eslint-disable @typescript-eslint/no-this-alias */
2
2
  // deno-lint-ignore-file no-this-alias
3
3
 
4
- import { None, Option, Some } from "@bodil/opt";
4
+ import { None, Option, Some } from "@bodil/core";
5
5
  import { type OrderFn, bisectHigh, bisectLow } from "@bodil/core/order";
6
6
  import type { Present } from "@bodil/core/types";
7
7
  import { assert } from "@bodil/core/assert";
8
+ import defineProperties from "define-properties";
8
9
 
9
10
  declare global {
10
11
  interface ObjectConstructor {
@@ -160,289 +161,253 @@ declare global {
160
161
 
161
162
  // Object
162
163
 
163
- Object.get = function get<O extends object, K extends keyof O>(obj: O, key: K): Option<O[K]> {
164
- return Object.hasOwn(obj, key) ? Some(obj[key]) : None;
165
- };
164
+ defineProperties(Object, {
165
+ get<O extends object, K extends keyof O>(obj: O, key: K): Option<O[K]> {
166
+ return Object.hasOwn(obj, key) ? Some(obj[key]) : None;
167
+ },
166
168
 
167
- Object.mapEntries = function mapEntries<A, B>(
168
- obj: Record<string, A>,
169
- fn: (entry: [key: string, value: A]) => [string, B]
170
- ): Record<string, B> {
171
- return Object.fromEntries(Object.entries(obj).map(fn));
172
- };
169
+ mapEntries<A, B>(
170
+ obj: Record<string, A>,
171
+ fn: (entry: [key: string, value: A]) => [string, B]
172
+ ): Record<string, B> {
173
+ return Object.fromEntries(Object.entries(obj).map(fn));
174
+ },
175
+ });
173
176
 
174
177
  // Map
175
178
 
176
- Map.prototype.getOrSet = function getOrSet<K, V>(
177
- this: Map<K, NonNullable<V>>,
178
- key: K,
179
- defaultValue: () => NonNullable<V>
180
- ): V {
181
- const result = this.get(key);
182
- if (result !== undefined) {
183
- return result;
184
- }
185
- const newValue = defaultValue();
186
- this.set(key, newValue);
187
- return newValue;
188
- };
179
+ defineProperties(Map.prototype, {
180
+ getOrSet<K, V>(this: Map<K, NonNullable<V>>, key: K, defaultValue: () => NonNullable<V>): V {
181
+ const result = this.get(key);
182
+ if (result !== undefined) {
183
+ return result;
184
+ }
185
+ const newValue = defaultValue();
186
+ this.set(key, newValue);
187
+ return newValue;
188
+ },
189
+ });
189
190
 
190
191
  // Array
191
192
 
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
- },
193
+ defineProperties(Array.prototype, {
194
+ remove<T>(this: Array<T>, value: T): Option<T> {
195
+ return this.removeIndex(this.indexOf(value));
200
196
  },
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
- },
197
+
198
+ removeFn<T>(
199
+ this: Array<T>,
200
+ predicate: (value: T, index: number, obj: Array<T>) => boolean
201
+ ): Option<T> {
202
+ return this.removeIndex(this.findIndex(predicate as () => boolean));
211
203
  },
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
- },
204
+
205
+ removeIndex<T>(this: Array<T>, index: number): Option<T> {
206
+ if (!Number.isInteger(index)) {
207
+ throw new TypeError(`Array.removeIndex(): index ${index} is not an integer`);
208
+ }
209
+ if (index < 0 || index >= this.length) {
210
+ return None;
211
+ }
212
+ const removed = this.splice(index, 1).pop();
213
+ return Option.from(removed);
226
214
  },
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
- },
215
+
216
+ insert<T>(this: Array<T>, value: T, index: number): Array<T> {
217
+ if (!Number.isInteger(index)) {
218
+ throw new TypeError(`Array.insert(): index ${index} is not an integer`);
219
+ }
220
+ if (index > this.length || index < 0) {
221
+ throw new RangeError(`Array.insert: index ${index} out of bounds`);
222
+ }
223
+ this.splice(index, 0, value);
224
+ return this;
241
225
  },
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
- },
226
+
227
+ insertOrdered<T>(
228
+ this: Array<T>,
229
+ value: T,
230
+ cmp: OrderFn<T>,
231
+ duplicates: "low" | "high" = "high"
232
+ ): Array<T> {
233
+ return this.insert(
234
+ value,
235
+ (duplicates === "low" ? bisectLow : bisectHigh)(cmp, this, value)
236
+ );
257
237
  },
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
- },
238
+
239
+ present<T>(this: Array<T>): Array<Present<T>> {
240
+ return this.filter((value: T): value is Present<T> => value !== undefined);
265
241
  },
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
- },
242
+
243
+ nonNullable<T>(this: Array<T>): Array<NonNullable<T>> {
244
+ return this.filter((value: T): value is NonNullable<T> => value !== undefined);
273
245
  },
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
- },
246
+
247
+ get<T>(this: Array<T>, index: number): Option<T> {
248
+ return Object.get(this, index);
281
249
  },
282
250
  });
283
251
 
284
252
  // Iterator
285
253
 
286
- Iterator.empty = function empty<T>(): IteratorObject<T> {
287
- return Iterator.from([]);
288
- };
254
+ defineProperties(Iterator, {
255
+ empty<T>(): IteratorObject<T> {
256
+ return Iterator.from([]);
257
+ },
289
258
 
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();
259
+ concat<T>(...inputs: Array<Iterable<T>>): IteratorObject<T> {
260
+ if (inputs.length === 0) {
261
+ return Iterator.empty();
262
+ }
263
+ let iter: Iterator<T> = inputs[0][Symbol.iterator]();
264
+ let index = 0;
265
+ let done = false;
266
+ return Iterator.from({
267
+ next(): IteratorResult<T, undefined> {
268
+ if (!done) {
269
+ let result = iter.next();
270
+ while (result.done === true && index < inputs.length - 1) {
271
+ iter = inputs[++index][Symbol.iterator]();
272
+ result = iter.next();
273
+ }
274
+ if (result.done !== true) {
275
+ return result;
276
+ }
304
277
  }
305
- if (result.done !== true) {
306
- return result;
278
+ done = true;
279
+ return { done: true, value: undefined };
280
+ },
281
+ });
282
+ },
283
+ });
284
+
285
+ defineProperties(Iterator.prototype, {
286
+ takeOne<T>(this: Iterator<T>): Option<T> {
287
+ const result = this.next();
288
+ return result.done === true ? None : Some(result.value);
289
+ },
290
+
291
+ takeWhile<T>(
292
+ this: IteratorObject<T, undefined>,
293
+ predicate: (value: T, index: number) => boolean
294
+ ): IteratorObject<T, undefined> {
295
+ const iter = this;
296
+ let index = 0;
297
+ let done = false;
298
+ return Iterator.from<T>({
299
+ next(): IteratorResult<T, undefined> {
300
+ if (!done) {
301
+ const result = iter.next();
302
+ if (result.done === true) {
303
+ return result;
304
+ }
305
+ if (predicate(result.value, index++)) {
306
+ return result;
307
+ }
307
308
  }
308
- }
309
- done = true;
310
- return { done: true, value: undefined };
311
- },
312
- });
313
- };
314
-
315
- Iterator.prototype.takeOne = function takeOne<T>(this: Iterator<T>): Option<T> {
316
- const result = this.next();
317
- return result.done === true ? None : Some(result.value);
318
- };
319
-
320
- Iterator.prototype.takeWhile = function takeWhile<T>(
321
- this: IteratorObject<T, undefined>,
322
- predicate: (value: T, index: number) => boolean
323
- ): IteratorObject<T, undefined> {
324
- const iter = this;
325
- let index = 0;
326
- let done = false;
327
- return Iterator.from<T>({
328
- next(): IteratorResult<T, undefined> {
329
- if (!done) {
330
- const result = iter.next();
331
- if (result.done === true) {
332
- return result;
309
+ done = true;
310
+ return { done: true, value: undefined };
311
+ },
312
+ });
313
+ },
314
+
315
+ skipWhile<T>(
316
+ this: IteratorObject<T, undefined>,
317
+ predicate: (value: T, index: number) => boolean
318
+ ): IteratorObject<T, undefined> {
319
+ const iter = this;
320
+ let index = 0;
321
+ let skipped = false;
322
+ return Iterator.from<T>({
323
+ next(): IteratorResult<T, undefined> {
324
+ if (skipped) {
325
+ return iter.next();
333
326
  }
334
- if (predicate(result.value, index++)) {
335
- return result;
327
+ while (true) {
328
+ const result = iter.next();
329
+ if (result.done === true) {
330
+ return result;
331
+ }
332
+ if (!predicate(result.value, index++)) {
333
+ skipped = true;
334
+ return result;
335
+ }
336
336
  }
337
+ },
338
+ });
339
+ },
340
+
341
+ findMap<T, U>(
342
+ this: IteratorObject<T, undefined>,
343
+ mapFn: (value: T, index: number) => NonNullable<U> | undefined
344
+ ): NonNullable<U> | undefined {
345
+ let index = 0;
346
+ while (true) {
347
+ const result = this.next();
348
+ if (result.done === true) {
349
+ return undefined;
337
350
  }
338
- done = true;
339
- return { done: true, value: undefined };
340
- },
341
- });
342
- };
343
-
344
- Iterator.prototype.skipWhile = function skipWhile<T>(
345
- this: IteratorObject<T, undefined>,
346
- predicate: (value: T, index: number) => boolean
347
- ): IteratorObject<T, undefined> {
348
- const iter = this;
349
- let index = 0;
350
- let skipped = false;
351
- return Iterator.from<T>({
352
- next(): IteratorResult<T, undefined> {
353
- if (skipped) {
354
- return iter.next();
351
+ const mapped = mapFn(result.value, index++);
352
+ if (mapped !== undefined) {
353
+ return mapped;
355
354
  }
356
- while (true) {
357
- const result = iter.next();
358
- if (result.done === true) {
359
- return result;
355
+ }
356
+ },
357
+
358
+ partition<T>(
359
+ this: IteratorObject<T, undefined>,
360
+ size: number
361
+ ): IteratorObject<Array<T>, undefined> {
362
+ const iter = this;
363
+ let done = false;
364
+ return Iterator.from<Array<T>>({
365
+ next(): IteratorResult<Array<T>, undefined> {
366
+ if (done) {
367
+ return { done: true, value: undefined };
360
368
  }
361
- if (!predicate(result.value, index++)) {
362
- skipped = true;
363
- return result;
369
+ const part = [];
370
+ while (true) {
371
+ const result = iter.next();
372
+ if (result.done === true) {
373
+ done = true;
374
+ return part.length > 0
375
+ ? { done: false, value: part }
376
+ : { done: true, value: undefined };
377
+ }
378
+ part.push(result.value);
379
+ if (part.length === size) {
380
+ return { done: false, value: part };
381
+ }
364
382
  }
365
- }
366
- },
367
- });
368
- };
369
-
370
- Iterator.prototype.findMap = function findMap<T, U>(
371
- this: IteratorObject<T, undefined>,
372
- mapFn: (value: T, index: number) => NonNullable<U> | undefined
373
- ): NonNullable<U> | undefined {
374
- let index = 0;
375
- while (true) {
376
- const result = this.next();
377
- if (result.done === true) {
378
- return undefined;
383
+ },
384
+ });
385
+ },
386
+
387
+ frontBiasedPartition<T>(this: IteratorObject<T, undefined>, size: number): Array<Array<T>> {
388
+ const input = this.toArray();
389
+ let inputPos = 0;
390
+ const firstLength = input.length % size;
391
+ const output: Array<Array<T>> = [];
392
+ if (firstLength > 0) {
393
+ output.push(input.slice(0, firstLength));
394
+ inputPos = firstLength;
379
395
  }
380
- const mapped = mapFn(result.value, index++);
381
- if (mapped !== undefined) {
382
- return mapped;
396
+ while (inputPos < input.length) {
397
+ output.push(input.slice(inputPos, inputPos + size));
398
+ inputPos += size;
383
399
  }
384
- }
385
- };
386
-
387
- Iterator.prototype.partition = function partition<T>(
388
- this: IteratorObject<T, undefined>,
389
- size: number
390
- ): IteratorObject<Array<T>, undefined> {
391
- const iter = this;
392
- let done = false;
393
- return Iterator.from<Array<T>>({
394
- next(): IteratorResult<Array<T>, undefined> {
395
- if (done) {
396
- return { done: true, value: undefined };
397
- }
398
- const part = [];
399
- while (true) {
400
- const result = iter.next();
401
- if (result.done === true) {
402
- done = true;
403
- return part.length > 0
404
- ? { done: false, value: part }
405
- : { done: true, value: undefined };
406
- }
407
- part.push(result.value);
408
- if (part.length === size) {
409
- return { done: false, value: part };
410
- }
411
- }
412
- },
413
- });
414
- };
415
-
416
- Iterator.prototype.frontBiasedPartition = function frontBiasedPartition<T>(
417
- this: IteratorObject<T, undefined>,
418
- size: number
419
- ): Array<Array<T>> {
420
- const input = this.toArray();
421
- let inputPos = 0;
422
- const firstLength = input.length % size;
423
- const output: Array<Array<T>> = [];
424
- if (firstLength > 0) {
425
- output.push(input.slice(0, firstLength));
426
- inputPos = firstLength;
427
- }
428
- while (inputPos < input.length) {
429
- output.push(input.slice(inputPos, inputPos + size));
430
- inputPos += size;
431
- }
432
- assert(inputPos === input.length);
433
- return output;
434
- };
435
-
436
- Iterator.prototype.present = function present<T>(
437
- this: IteratorObject<T, undefined>
438
- ): IteratorObject<Present<T>, undefined> {
439
- return Iterator.from(this.filter((item): item is Present<T> => item !== undefined));
440
- };
441
-
442
- Iterator.prototype.nonNullable = function nonNullable<T>(
443
- this: IteratorObject<T, undefined>
444
- ): IteratorObject<NonNullable<T>, undefined> {
445
- return Iterator.from(
446
- this.filter((item): item is NonNullable<T> => item !== undefined && item !== null)
447
- );
448
- };
400
+ assert(inputPos === input.length);
401
+ return output;
402
+ },
403
+
404
+ present<T>(this: IteratorObject<T, undefined>): IteratorObject<Present<T>, undefined> {
405
+ return Iterator.from(this.filter((item): item is Present<T> => item !== undefined));
406
+ },
407
+
408
+ nonNullable<T>(this: IteratorObject<T, undefined>): IteratorObject<NonNullable<T>, undefined> {
409
+ return Iterator.from(
410
+ this.filter((item): item is NonNullable<T> => item !== undefined && item !== null)
411
+ );
412
+ },
413
+ });