@harperfast/extended-iterable 1.0.2 → 1.0.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.cjs ADDED
@@ -0,0 +1,439 @@
1
+ 'use strict';
2
+
3
+ const SKIP = Symbol.for('@harperdb/extended-iterable:skip');
4
+ const DONE = {
5
+ value: null,
6
+ done: true,
7
+ };
8
+ const RETURN_DONE = {
9
+ // we allow this one to be mutated
10
+ value: null,
11
+ done: true,
12
+ };
13
+ if (!Symbol.asyncIterator) {
14
+ Symbol.asyncIterator = Symbol.for('Symbol.asyncIterator');
15
+ }
16
+ const NO_OPTIONS = {};
17
+
18
+ class ExtendedIterable {
19
+ constructor(sourceArray) {
20
+ if (sourceArray) {
21
+ this.iterate = sourceArray[Symbol.iterator].bind(sourceArray);
22
+ }
23
+ }
24
+ map(func) {
25
+ let source = this;
26
+ let iterable = new ExtendedIterable();
27
+ iterable.iterate = (options = NO_OPTIONS) => {
28
+ const { async } = options;
29
+ let iterator =
30
+ source[async ? Symbol.asyncIterator : Symbol.iterator](options);
31
+ if (!async) source.isSync = true;
32
+ let i = -1;
33
+ return {
34
+ next(resolvedResult) {
35
+ let result;
36
+ do {
37
+ let iteratorResult;
38
+ try {
39
+ if (resolvedResult) {
40
+ iteratorResult = resolvedResult;
41
+ resolvedResult = null; // don't go in this branch on next iteration
42
+ } else {
43
+ i++;
44
+ iteratorResult = iterator.next();
45
+ if (iteratorResult.then) {
46
+ if (!async) {
47
+ this.throw(
48
+ new Error(
49
+ 'Can not synchronously iterate with promises as iterator results',
50
+ ),
51
+ );
52
+ }
53
+ return iteratorResult.then(
54
+ (iteratorResult) => this.next(iteratorResult),
55
+ (error) => {
56
+ return this.throw(error);
57
+ },
58
+ );
59
+ }
60
+ }
61
+ if (iteratorResult.done === true) {
62
+ this.done = true;
63
+ if (iterable.onDone) iterable.onDone();
64
+ return iteratorResult;
65
+ }
66
+ try {
67
+ result = func.call(source, iteratorResult.value, i);
68
+ if (result && result.then && async) {
69
+ // if async, wait for promise to resolve before returning iterator result
70
+ return result.then(
71
+ (result) =>
72
+ result === SKIP
73
+ ? this.next()
74
+ : {
75
+ value: result,
76
+ },
77
+ (error) => {
78
+ if (options.continueOnRecoverableError)
79
+ error.continueIteration = true;
80
+ return this.throw(error);
81
+ },
82
+ );
83
+ }
84
+ } catch (error) {
85
+ // if the error came from the user function, we can potentially mark it for continuing iteration
86
+ if (options.continueOnRecoverableError)
87
+ error.continueIteration = true;
88
+ throw error; // throw to next catch to handle
89
+ }
90
+ } catch (error) {
91
+ if (iterable.handleError) {
92
+ // if we have handleError, we can use it to further handle errors
93
+ try {
94
+ result = iterable.handleError(error, i);
95
+ } catch (error2) {
96
+ return this.throw(error2);
97
+ }
98
+ } else return this.throw(error);
99
+ }
100
+ } while (result === SKIP);
101
+ if (result === DONE) {
102
+ return this.return();
103
+ }
104
+ return {
105
+ value: result,
106
+ };
107
+ },
108
+ return(value) {
109
+ if (!this.done) {
110
+ RETURN_DONE.value = value;
111
+ this.done = true;
112
+ if (iterable.onDone) iterable.onDone();
113
+ iterator.return?.();
114
+ }
115
+ return RETURN_DONE;
116
+ },
117
+ throw(error) {
118
+ if (error.continueIteration) {
119
+ // if it's a recoverable error, we can return or throw without closing the iterator
120
+ if (iterable.returnRecoverableErrors)
121
+ try {
122
+ return {
123
+ value: iterable.returnRecoverableErrors(error),
124
+ };
125
+ } catch (error) {
126
+ // if this throws, we need to go back to closing the iterator
127
+ this.return();
128
+ throw error;
129
+ }
130
+ if (options.continueOnRecoverableError) throw error; // throw without closing iterator
131
+ }
132
+ // else we are done with the iterator (and can throw)
133
+ this.return();
134
+ throw error;
135
+ },
136
+ };
137
+ };
138
+ return iterable;
139
+ }
140
+ [Symbol.asyncIterator](options) {
141
+ if (options) options = { ...options, async: true };
142
+ else options = { async: true };
143
+ return (this.iterator = this.iterate(options));
144
+ }
145
+ [Symbol.iterator](options) {
146
+ return (this.iterator = this.iterate(options));
147
+ }
148
+ filter(func) {
149
+ let iterable = this.map((element) => {
150
+ let result = func(element);
151
+ // handle promise
152
+ if (result?.then)
153
+ return result.then((result) => (result ? element : SKIP));
154
+ else return result ? element : SKIP;
155
+ });
156
+ let iterate = iterable.iterate;
157
+ iterable.iterate = (options = NO_OPTIONS) => {
158
+ // explicitly prevent continue on recoverable error with filter
159
+ if (options.continueOnRecoverableError)
160
+ options = { ...options, continueOnRecoverableError: false };
161
+ return iterate(options);
162
+ };
163
+ return iterable;
164
+ }
165
+
166
+ forEach(callback) {
167
+ let iterator = (this.iterator = this.iterate());
168
+ let result;
169
+ while ((result = iterator.next()).done !== true) {
170
+ callback(result.value);
171
+ }
172
+ }
173
+ concat(secondIterable) {
174
+ let concatIterable = new ExtendedIterable();
175
+ concatIterable.iterate = (options = NO_OPTIONS) => {
176
+ let iterator = (this.iterator = this.iterate(options));
177
+ let isFirst = true;
178
+ function iteratorDone(result) {
179
+ if (isFirst) {
180
+ try {
181
+ isFirst = false;
182
+ iterator =
183
+ secondIterable[
184
+ options.async ? Symbol.asyncIterator : Symbol.iterator
185
+ ]();
186
+ result = iterator.next();
187
+ if (concatIterable.onDone) {
188
+ if (result.then) {
189
+ if (!options.async)
190
+ throw new Error(
191
+ 'Can not synchronously iterate with promises as iterator results',
192
+ );
193
+ result.then(
194
+ (result) => {
195
+ if (result.done()) concatIterable.onDone();
196
+ },
197
+ (error) => {
198
+ this.return();
199
+ throw error;
200
+ },
201
+ );
202
+ } else if (result.done) concatIterable.onDone();
203
+ }
204
+ } catch (error) {
205
+ this.throw(error);
206
+ }
207
+ } else {
208
+ if (concatIterable.onDone) concatIterable.onDone();
209
+ }
210
+ return result;
211
+ }
212
+ return {
213
+ next() {
214
+ try {
215
+ let result = iterator.next();
216
+ if (result.then) {
217
+ if (!options.async)
218
+ throw new Error(
219
+ 'Can not synchronously iterate with promises as iterator results',
220
+ );
221
+ return result.then((result) => {
222
+ if (result.done) return iteratorDone(result);
223
+ return result;
224
+ });
225
+ }
226
+ if (result.done) return iteratorDone(result);
227
+ return result;
228
+ } catch (error) {
229
+ this.throw(error);
230
+ }
231
+ },
232
+ return(value) {
233
+ if (!this.done) {
234
+ RETURN_DONE.value = value;
235
+ this.done = true;
236
+ if (concatIterable.onDone) concatIterable.onDone();
237
+ iterator.return();
238
+ }
239
+ return RETURN_DONE;
240
+ },
241
+ throw(error) {
242
+ if (options.continueOnRecoverableError) throw error;
243
+ this.return();
244
+ throw error;
245
+ },
246
+ };
247
+ };
248
+ return concatIterable;
249
+ }
250
+
251
+ flatMap(callback) {
252
+ let mappedIterable = new ExtendedIterable();
253
+ mappedIterable.iterate = (options = NO_OPTIONS) => {
254
+ let iterator = (this.iterator = this.iterate(options));
255
+ let currentSubIterator;
256
+ return {
257
+ next(resolvedResult) {
258
+ try {
259
+ do {
260
+ if (currentSubIterator) {
261
+ let result;
262
+ if (resolvedResult) {
263
+ result = resolvedResult;
264
+ resolvedResult = undefined;
265
+ } else result = currentSubIterator.next();
266
+ if (result.then) {
267
+ if (!options.async)
268
+ throw new Error(
269
+ 'Can not synchronously iterate with promises as iterator results',
270
+ );
271
+ return result.then((result) => this.next(result));
272
+ }
273
+ if (!result.done) {
274
+ return result;
275
+ }
276
+ }
277
+ let result;
278
+ if (resolvedResult != undefined) {
279
+ result = resolvedResult;
280
+ resolvedResult = undefined;
281
+ } else result = iterator.next();
282
+ if (result.then) {
283
+ if (!options.async)
284
+ throw new Error(
285
+ 'Can not synchronously iterate with promises as iterator results',
286
+ );
287
+ currentSubIterator = undefined;
288
+ return result.then((result) => this.next(result));
289
+ }
290
+ if (result.done) {
291
+ if (mappedIterable.onDone) mappedIterable.onDone();
292
+ return result;
293
+ }
294
+ try {
295
+ let value = callback(result.value);
296
+ if (value?.then) {
297
+ if (!options.async)
298
+ throw new Error(
299
+ 'Can not synchronously iterate with promises as iterator results',
300
+ );
301
+ return value.then(
302
+ (value) => {
303
+ if (
304
+ Array.isArray(value) ||
305
+ value instanceof ExtendedIterable
306
+ ) {
307
+ currentSubIterator = value[Symbol.iterator]();
308
+ return this.next();
309
+ } else {
310
+ currentSubIterator = null;
311
+ return { value };
312
+ }
313
+ },
314
+ (error) => {
315
+ if (options.continueOnRecoverableError)
316
+ error.continueIteration = true;
317
+ this.throw(error);
318
+ },
319
+ );
320
+ }
321
+ if (Array.isArray(value) || value instanceof ExtendedIterable)
322
+ currentSubIterator = value[Symbol.iterator]();
323
+ else {
324
+ currentSubIterator = null;
325
+ return { value };
326
+ }
327
+ } catch (error) {
328
+ if (options.continueOnRecoverableError)
329
+ error.continueIteration = true;
330
+ throw error;
331
+ }
332
+ } while (true);
333
+ } catch (error) {
334
+ this.throw(error);
335
+ }
336
+ },
337
+ return() {
338
+ if (mappedIterable.onDone) mappedIterable.onDone();
339
+ if (currentSubIterator) currentSubIterator.return();
340
+ return iterator.return();
341
+ },
342
+ throw(error) {
343
+ if (options.continueOnRecoverableError) throw error;
344
+ if (mappedIterable.onDone) mappedIterable.onDone();
345
+ if (currentSubIterator) currentSubIterator.return();
346
+ this.return();
347
+ throw error;
348
+ },
349
+ };
350
+ };
351
+ return mappedIterable;
352
+ }
353
+
354
+ slice(start, end) {
355
+ let iterable = this.map((element, i) => {
356
+ if (i < start) return SKIP;
357
+ if (i >= end) {
358
+ DONE.value = element;
359
+ return DONE;
360
+ }
361
+ return element;
362
+ });
363
+ iterable.handleError = (error, i) => {
364
+ if (i < start) return SKIP;
365
+ if (i >= end) {
366
+ return DONE;
367
+ }
368
+ throw error;
369
+ };
370
+ return iterable;
371
+ }
372
+ mapError(catch_callback) {
373
+ if (typeof catch_callback !== 'function') {
374
+ throw new TypeError('Expected catch callback to be a function');
375
+ }
376
+ let iterable = this.map((element) => {
377
+ return element;
378
+ });
379
+ let iterate = iterable.iterate;
380
+ iterable.iterate = (options = NO_OPTIONS) => {
381
+ // we need to ensure the whole stack
382
+ // of iterables is set up to handle recoverable errors and continue iteration
383
+ return iterate({ ...options, continueOnRecoverableError: true });
384
+ };
385
+ iterable.returnRecoverableErrors = catch_callback;
386
+ return iterable;
387
+ }
388
+ next() {
389
+ if (!this.iterator) this.iterator = this.iterate();
390
+ return this.iterator.next();
391
+ }
392
+ toJSON() {
393
+ if (this.asArray && this.asArray.forEach) {
394
+ return this.asArray;
395
+ }
396
+ const error = new Error(
397
+ 'Can not serialize async iterables without first calling resolving asArray',
398
+ );
399
+ error.resolution = this.asArray;
400
+ throw error;
401
+ //return Array.from(this)
402
+ }
403
+ get asArray() {
404
+ if (this._asArray) return this._asArray;
405
+ let promise = new Promise((resolve, reject) => {
406
+ let iterator = this.iterate(true);
407
+ let array = [];
408
+ let iterable = this;
409
+ Object.defineProperty(array, 'iterable', { value: iterable });
410
+ function next(result) {
411
+ while (result.done !== true) {
412
+ if (result.then) {
413
+ return result.then(next);
414
+ } else {
415
+ array.push(result.value);
416
+ }
417
+ result = iterator.next();
418
+ }
419
+ resolve((iterable._asArray = array));
420
+ }
421
+ next(iterator.next());
422
+ });
423
+ promise.iterable = this;
424
+ return this._asArray || (this._asArray = promise);
425
+ }
426
+ resolveData() {
427
+ return this.asArray;
428
+ }
429
+ at(index) {
430
+ for (let entry of this) {
431
+ if (index-- === 0) return entry;
432
+ }
433
+ }
434
+ }
435
+ ExtendedIterable.prototype.DONE = DONE;
436
+
437
+ exports.ExtendedIterable = ExtendedIterable;
438
+ exports.SKIP = SKIP;
439
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../index.js"],"sourcesContent":["export const SKIP = Symbol.for('@harperdb/extended-iterable:skip');\nconst DONE = {\n\tvalue: null,\n\tdone: true,\n};\nconst RETURN_DONE = {\n\t// we allow this one to be mutated\n\tvalue: null,\n\tdone: true,\n};\nif (!Symbol.asyncIterator) {\n\tSymbol.asyncIterator = Symbol.for('Symbol.asyncIterator');\n}\nconst NO_OPTIONS = {};\n\nexport class ExtendedIterable {\n\tconstructor(sourceArray) {\n\t\tif (sourceArray) {\n\t\t\tthis.iterate = sourceArray[Symbol.iterator].bind(sourceArray);\n\t\t}\n\t}\n\tmap(func) {\n\t\tlet source = this;\n\t\tlet iterable = new ExtendedIterable();\n\t\titerable.iterate = (options = NO_OPTIONS) => {\n\t\t\tconst { async } = options;\n\t\t\tlet iterator =\n\t\t\t\tsource[async ? Symbol.asyncIterator : Symbol.iterator](options);\n\t\t\tif (!async) source.isSync = true;\n\t\t\tlet i = -1;\n\t\t\treturn {\n\t\t\t\tnext(resolvedResult) {\n\t\t\t\t\tlet result;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tlet iteratorResult;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (resolvedResult) {\n\t\t\t\t\t\t\t\titeratorResult = resolvedResult;\n\t\t\t\t\t\t\t\tresolvedResult = null; // don't go in this branch on next iteration\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ti++;\n\t\t\t\t\t\t\t\titeratorResult = iterator.next();\n\t\t\t\t\t\t\t\tif (iteratorResult.then) {\n\t\t\t\t\t\t\t\t\tif (!async) {\n\t\t\t\t\t\t\t\t\t\tthis.throw(\n\t\t\t\t\t\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t\t\t\t\t\t'Can not synchronously iterate with promises as iterator results',\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn iteratorResult.then(\n\t\t\t\t\t\t\t\t\t\t(iteratorResult) => this.next(iteratorResult),\n\t\t\t\t\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\t\t\t\t\treturn this.throw(error);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (iteratorResult.done === true) {\n\t\t\t\t\t\t\t\tthis.done = true;\n\t\t\t\t\t\t\t\tif (iterable.onDone) iterable.onDone();\n\t\t\t\t\t\t\t\treturn iteratorResult;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tresult = func.call(source, iteratorResult.value, i);\n\t\t\t\t\t\t\t\tif (result && result.then && async) {\n\t\t\t\t\t\t\t\t\t// if async, wait for promise to resolve before returning iterator result\n\t\t\t\t\t\t\t\t\treturn result.then(\n\t\t\t\t\t\t\t\t\t\t(result) =>\n\t\t\t\t\t\t\t\t\t\t\tresult === SKIP\n\t\t\t\t\t\t\t\t\t\t\t\t? this.next()\n\t\t\t\t\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: result,\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\t\t\t\t\tif (options.continueOnRecoverableError)\n\t\t\t\t\t\t\t\t\t\t\t\terror.continueIteration = true;\n\t\t\t\t\t\t\t\t\t\t\treturn this.throw(error);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t// if the error came from the user function, we can potentially mark it for continuing iteration\n\t\t\t\t\t\t\t\tif (options.continueOnRecoverableError)\n\t\t\t\t\t\t\t\t\terror.continueIteration = true;\n\t\t\t\t\t\t\t\tthrow error; // throw to next catch to handle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tif (iterable.handleError) {\n\t\t\t\t\t\t\t\t// if we have handleError, we can use it to further handle errors\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tresult = iterable.handleError(error, i);\n\t\t\t\t\t\t\t\t} catch (error2) {\n\t\t\t\t\t\t\t\t\treturn this.throw(error2);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else return this.throw(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t} while (result === SKIP);\n\t\t\t\t\tif (result === DONE) {\n\t\t\t\t\t\treturn this.return();\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: result,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\treturn(value) {\n\t\t\t\t\tif (!this.done) {\n\t\t\t\t\t\tRETURN_DONE.value = value;\n\t\t\t\t\t\tthis.done = true;\n\t\t\t\t\t\tif (iterable.onDone) iterable.onDone();\n\t\t\t\t\t\titerator.return?.();\n\t\t\t\t\t}\n\t\t\t\t\treturn RETURN_DONE;\n\t\t\t\t},\n\t\t\t\tthrow(error) {\n\t\t\t\t\tif (error.continueIteration) {\n\t\t\t\t\t\t// if it's a recoverable error, we can return or throw without closing the iterator\n\t\t\t\t\t\tif (iterable.returnRecoverableErrors)\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tvalue: iterable.returnRecoverableErrors(error),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t// if this throws, we need to go back to closing the iterator\n\t\t\t\t\t\t\t\tthis.return();\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tif (options.continueOnRecoverableError) throw error; // throw without closing iterator\n\t\t\t\t\t}\n\t\t\t\t\t// else we are done with the iterator (and can throw)\n\t\t\t\t\tthis.return();\n\t\t\t\t\tthrow error;\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\treturn iterable;\n\t}\n\t[Symbol.asyncIterator](options) {\n\t\tif (options) options = { ...options, async: true };\n\t\telse options = { async: true };\n\t\treturn (this.iterator = this.iterate(options));\n\t}\n\t[Symbol.iterator](options) {\n\t\treturn (this.iterator = this.iterate(options));\n\t}\n\tfilter(func) {\n\t\tlet iterable = this.map((element) => {\n\t\t\tlet result = func(element);\n\t\t\t// handle promise\n\t\t\tif (result?.then)\n\t\t\t\treturn result.then((result) => (result ? element : SKIP));\n\t\t\telse return result ? element : SKIP;\n\t\t});\n\t\tlet iterate = iterable.iterate;\n\t\titerable.iterate = (options = NO_OPTIONS) => {\n\t\t\t// explicitly prevent continue on recoverable error with filter\n\t\t\tif (options.continueOnRecoverableError)\n\t\t\t\toptions = { ...options, continueOnRecoverableError: false };\n\t\t\treturn iterate(options);\n\t\t};\n\t\treturn iterable;\n\t}\n\n\tforEach(callback) {\n\t\tlet iterator = (this.iterator = this.iterate());\n\t\tlet result;\n\t\twhile ((result = iterator.next()).done !== true) {\n\t\t\tcallback(result.value);\n\t\t}\n\t}\n\tconcat(secondIterable) {\n\t\tlet concatIterable = new ExtendedIterable();\n\t\tconcatIterable.iterate = (options = NO_OPTIONS) => {\n\t\t\tlet iterator = (this.iterator = this.iterate(options));\n\t\t\tlet isFirst = true;\n\t\t\tfunction iteratorDone(result) {\n\t\t\t\tif (isFirst) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tisFirst = false;\n\t\t\t\t\t\titerator =\n\t\t\t\t\t\t\tsecondIterable[\n\t\t\t\t\t\t\t\toptions.async ? Symbol.asyncIterator : Symbol.iterator\n\t\t\t\t\t\t\t]();\n\t\t\t\t\t\tresult = iterator.next();\n\t\t\t\t\t\tif (concatIterable.onDone) {\n\t\t\t\t\t\t\tif (result.then) {\n\t\t\t\t\t\t\t\tif (!options.async)\n\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t'Can not synchronously iterate with promises as iterator results',\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tresult.then(\n\t\t\t\t\t\t\t\t\t(result) => {\n\t\t\t\t\t\t\t\t\t\tif (result.done()) concatIterable.onDone();\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\t\t\t\tthis.return();\n\t\t\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else if (result.done) concatIterable.onDone();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.throw(error);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (concatIterable.onDone) concatIterable.onDone();\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tnext() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet result = iterator.next();\n\t\t\t\t\t\tif (result.then) {\n\t\t\t\t\t\t\tif (!options.async)\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t'Can not synchronously iterate with promises as iterator results',\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn result.then((result) => {\n\t\t\t\t\t\t\t\tif (result.done) return iteratorDone(result);\n\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (result.done) return iteratorDone(result);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.throw(error);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\treturn(value) {\n\t\t\t\t\tif (!this.done) {\n\t\t\t\t\t\tRETURN_DONE.value = value;\n\t\t\t\t\t\tthis.done = true;\n\t\t\t\t\t\tif (concatIterable.onDone) concatIterable.onDone();\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t\treturn RETURN_DONE;\n\t\t\t\t},\n\t\t\t\tthrow(error) {\n\t\t\t\t\tif (options.continueOnRecoverableError) throw error;\n\t\t\t\t\tthis.return();\n\t\t\t\t\tthrow error;\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\treturn concatIterable;\n\t}\n\n\tflatMap(callback) {\n\t\tlet mappedIterable = new ExtendedIterable();\n\t\tmappedIterable.iterate = (options = NO_OPTIONS) => {\n\t\t\tlet iterator = (this.iterator = this.iterate(options));\n\t\t\tlet isFirst = true;\n\t\t\tlet currentSubIterator;\n\t\t\treturn {\n\t\t\t\tnext(resolvedResult) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif (currentSubIterator) {\n\t\t\t\t\t\t\t\tlet result;\n\t\t\t\t\t\t\t\tif (resolvedResult) {\n\t\t\t\t\t\t\t\t\tresult = resolvedResult;\n\t\t\t\t\t\t\t\t\tresolvedResult = undefined;\n\t\t\t\t\t\t\t\t} else result = currentSubIterator.next();\n\t\t\t\t\t\t\t\tif (result.then) {\n\t\t\t\t\t\t\t\t\tif (!options.async)\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'Can not synchronously iterate with promises as iterator results',\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn result.then((result) => this.next(result));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (!result.done) {\n\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlet result;\n\t\t\t\t\t\t\tif (resolvedResult != undefined) {\n\t\t\t\t\t\t\t\tresult = resolvedResult;\n\t\t\t\t\t\t\t\tresolvedResult = undefined;\n\t\t\t\t\t\t\t} else result = iterator.next();\n\t\t\t\t\t\t\tif (result.then) {\n\t\t\t\t\t\t\t\tif (!options.async)\n\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t'Can not synchronously iterate with promises as iterator results',\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcurrentSubIterator = undefined;\n\t\t\t\t\t\t\t\treturn result.then((result) => this.next(result));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (result.done) {\n\t\t\t\t\t\t\t\tif (mappedIterable.onDone) mappedIterable.onDone();\n\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tlet value = callback(result.value);\n\t\t\t\t\t\t\t\tif (value?.then) {\n\t\t\t\t\t\t\t\t\tif (!options.async)\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'Can not synchronously iterate with promises as iterator results',\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\treturn value.then(\n\t\t\t\t\t\t\t\t\t\t(value) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tArray.isArray(value) ||\n\t\t\t\t\t\t\t\t\t\t\t\tvalue instanceof ExtendedIterable\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentSubIterator = value[Symbol.iterator]();\n\t\t\t\t\t\t\t\t\t\t\t\treturn this.next();\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentSubIterator = null;\n\t\t\t\t\t\t\t\t\t\t\t\treturn { value };\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t(error) => {\n\t\t\t\t\t\t\t\t\t\t\tif (options.continueOnRecoverableError)\n\t\t\t\t\t\t\t\t\t\t\t\terror.continueIteration = true;\n\t\t\t\t\t\t\t\t\t\t\tthis.throw(error);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (Array.isArray(value) || value instanceof ExtendedIterable)\n\t\t\t\t\t\t\t\t\tcurrentSubIterator = value[Symbol.iterator]();\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tcurrentSubIterator = null;\n\t\t\t\t\t\t\t\t\treturn { value };\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tif (options.continueOnRecoverableError)\n\t\t\t\t\t\t\t\t\terror.continueIteration = true;\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (true);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.throw(error);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\treturn() {\n\t\t\t\t\tif (mappedIterable.onDone) mappedIterable.onDone();\n\t\t\t\t\tif (currentSubIterator) currentSubIterator.return();\n\t\t\t\t\treturn iterator.return();\n\t\t\t\t},\n\t\t\t\tthrow(error) {\n\t\t\t\t\tif (options.continueOnRecoverableError) throw error;\n\t\t\t\t\tif (mappedIterable.onDone) mappedIterable.onDone();\n\t\t\t\t\tif (currentSubIterator) currentSubIterator.return();\n\t\t\t\t\tthis.return();\n\t\t\t\t\tthrow error;\n\t\t\t\t},\n\t\t\t};\n\t\t};\n\t\treturn mappedIterable;\n\t}\n\n\tslice(start, end) {\n\t\tlet iterable = this.map((element, i) => {\n\t\t\tif (i < start) return SKIP;\n\t\t\tif (i >= end) {\n\t\t\t\tDONE.value = element;\n\t\t\t\treturn DONE;\n\t\t\t}\n\t\t\treturn element;\n\t\t});\n\t\titerable.handleError = (error, i) => {\n\t\t\tif (i < start) return SKIP;\n\t\t\tif (i >= end) {\n\t\t\t\treturn DONE;\n\t\t\t}\n\t\t\tthrow error;\n\t\t};\n\t\treturn iterable;\n\t}\n\tmapError(catch_callback) {\n\t\tif (typeof catch_callback !== 'function') {\n\t\t\tthrow new TypeError('Expected catch callback to be a function');\n\t\t}\n\t\tlet iterable = this.map((element) => {\n\t\t\treturn element;\n\t\t});\n\t\tlet iterate = iterable.iterate;\n\t\titerable.iterate = (options = NO_OPTIONS) => {\n\t\t\t// we need to ensure the whole stack\n\t\t\t// of iterables is set up to handle recoverable errors and continue iteration\n\t\t\treturn iterate({ ...options, continueOnRecoverableError: true });\n\t\t};\n\t\titerable.returnRecoverableErrors = catch_callback;\n\t\treturn iterable;\n\t}\n\tnext() {\n\t\tif (!this.iterator) this.iterator = this.iterate();\n\t\treturn this.iterator.next();\n\t}\n\ttoJSON() {\n\t\tif (this.asArray && this.asArray.forEach) {\n\t\t\treturn this.asArray;\n\t\t}\n\t\tconst error = new Error(\n\t\t\t'Can not serialize async iterables without first calling resolving asArray',\n\t\t);\n\t\terror.resolution = this.asArray;\n\t\tthrow error;\n\t\t//return Array.from(this)\n\t}\n\tget asArray() {\n\t\tif (this._asArray) return this._asArray;\n\t\tlet promise = new Promise((resolve, reject) => {\n\t\t\tlet iterator = this.iterate(true);\n\t\t\tlet array = [];\n\t\t\tlet iterable = this;\n\t\t\tObject.defineProperty(array, 'iterable', { value: iterable });\n\t\t\tfunction next(result) {\n\t\t\t\twhile (result.done !== true) {\n\t\t\t\t\tif (result.then) {\n\t\t\t\t\t\treturn result.then(next);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tarray.push(result.value);\n\t\t\t\t\t}\n\t\t\t\t\tresult = iterator.next();\n\t\t\t\t}\n\t\t\t\tresolve((iterable._asArray = array));\n\t\t\t}\n\t\t\tnext(iterator.next());\n\t\t});\n\t\tpromise.iterable = this;\n\t\treturn this._asArray || (this._asArray = promise);\n\t}\n\tresolveData() {\n\t\treturn this.asArray;\n\t}\n\tat(index) {\n\t\tfor (let entry of this) {\n\t\t\tif (index-- === 0) return entry;\n\t\t}\n\t}\n}\nExtendedIterable.prototype.DONE = DONE;\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@harperfast/extended-iterable",
3
3
  "author": "Harper",
4
- "version": "1.0.2",
4
+ "version": "1.0.3",
5
5
  "description": "Extended iterable class, providing lazy array-like methods with automatic async and return/throw forwarding",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -26,7 +26,9 @@
26
26
  "types": "./index.d.ts",
27
27
  "files": [
28
28
  "./index.js",
29
- "./index.d.ts"
29
+ "./index.d.ts",
30
+ "./dist/index.cjs",
31
+ "./dist/index.cjs.map"
30
32
  ],
31
33
  "devDependencies": {
32
34
  "rollup": "^4.53.3"