@harperfast/extended-iterable
Advanced tools
+439
| 'use strict'; | ||
| const SKIP = Symbol.for('@harperdb/extended-iterable:skip'); | ||
| const DONE = { | ||
| value: null, | ||
| done: true, | ||
| }; | ||
| const RETURN_DONE = { | ||
| // we allow this one to be mutated | ||
| value: null, | ||
| done: true, | ||
| }; | ||
| if (!Symbol.asyncIterator) { | ||
| Symbol.asyncIterator = Symbol.for('Symbol.asyncIterator'); | ||
| } | ||
| const NO_OPTIONS = {}; | ||
| class ExtendedIterable { | ||
| constructor(sourceArray) { | ||
| if (sourceArray) { | ||
| this.iterate = sourceArray[Symbol.iterator].bind(sourceArray); | ||
| } | ||
| } | ||
| map(func) { | ||
| let source = this; | ||
| let iterable = new ExtendedIterable(); | ||
| iterable.iterate = (options = NO_OPTIONS) => { | ||
| const { async } = options; | ||
| let iterator = | ||
| source[async ? Symbol.asyncIterator : Symbol.iterator](options); | ||
| if (!async) source.isSync = true; | ||
| let i = -1; | ||
| return { | ||
| next(resolvedResult) { | ||
| let result; | ||
| do { | ||
| let iteratorResult; | ||
| try { | ||
| if (resolvedResult) { | ||
| iteratorResult = resolvedResult; | ||
| resolvedResult = null; // don't go in this branch on next iteration | ||
| } else { | ||
| i++; | ||
| iteratorResult = iterator.next(); | ||
| if (iteratorResult.then) { | ||
| if (!async) { | ||
| this.throw( | ||
| new Error( | ||
| 'Can not synchronously iterate with promises as iterator results', | ||
| ), | ||
| ); | ||
| } | ||
| return iteratorResult.then( | ||
| (iteratorResult) => this.next(iteratorResult), | ||
| (error) => { | ||
| return this.throw(error); | ||
| }, | ||
| ); | ||
| } | ||
| } | ||
| if (iteratorResult.done === true) { | ||
| this.done = true; | ||
| if (iterable.onDone) iterable.onDone(); | ||
| return iteratorResult; | ||
| } | ||
| try { | ||
| result = func.call(source, iteratorResult.value, i); | ||
| if (result && result.then && async) { | ||
| // if async, wait for promise to resolve before returning iterator result | ||
| return result.then( | ||
| (result) => | ||
| result === SKIP | ||
| ? this.next() | ||
| : { | ||
| value: result, | ||
| }, | ||
| (error) => { | ||
| if (options.continueOnRecoverableError) | ||
| error.continueIteration = true; | ||
| return this.throw(error); | ||
| }, | ||
| ); | ||
| } | ||
| } catch (error) { | ||
| // if the error came from the user function, we can potentially mark it for continuing iteration | ||
| if (options.continueOnRecoverableError) | ||
| error.continueIteration = true; | ||
| throw error; // throw to next catch to handle | ||
| } | ||
| } catch (error) { | ||
| if (iterable.handleError) { | ||
| // if we have handleError, we can use it to further handle errors | ||
| try { | ||
| result = iterable.handleError(error, i); | ||
| } catch (error2) { | ||
| return this.throw(error2); | ||
| } | ||
| } else return this.throw(error); | ||
| } | ||
| } while (result === SKIP); | ||
| if (result === DONE) { | ||
| return this.return(); | ||
| } | ||
| return { | ||
| value: result, | ||
| }; | ||
| }, | ||
| return(value) { | ||
| if (!this.done) { | ||
| RETURN_DONE.value = value; | ||
| this.done = true; | ||
| if (iterable.onDone) iterable.onDone(); | ||
| iterator.return?.(); | ||
| } | ||
| return RETURN_DONE; | ||
| }, | ||
| throw(error) { | ||
| if (error.continueIteration) { | ||
| // if it's a recoverable error, we can return or throw without closing the iterator | ||
| if (iterable.returnRecoverableErrors) | ||
| try { | ||
| return { | ||
| value: iterable.returnRecoverableErrors(error), | ||
| }; | ||
| } catch (error) { | ||
| // if this throws, we need to go back to closing the iterator | ||
| this.return(); | ||
| throw error; | ||
| } | ||
| if (options.continueOnRecoverableError) throw error; // throw without closing iterator | ||
| } | ||
| // else we are done with the iterator (and can throw) | ||
| this.return(); | ||
| throw error; | ||
| }, | ||
| }; | ||
| }; | ||
| return iterable; | ||
| } | ||
| [Symbol.asyncIterator](options) { | ||
| if (options) options = { ...options, async: true }; | ||
| else options = { async: true }; | ||
| return (this.iterator = this.iterate(options)); | ||
| } | ||
| [Symbol.iterator](options) { | ||
| return (this.iterator = this.iterate(options)); | ||
| } | ||
| filter(func) { | ||
| let iterable = this.map((element) => { | ||
| let result = func(element); | ||
| // handle promise | ||
| if (result?.then) | ||
| return result.then((result) => (result ? element : SKIP)); | ||
| else return result ? element : SKIP; | ||
| }); | ||
| let iterate = iterable.iterate; | ||
| iterable.iterate = (options = NO_OPTIONS) => { | ||
| // explicitly prevent continue on recoverable error with filter | ||
| if (options.continueOnRecoverableError) | ||
| options = { ...options, continueOnRecoverableError: false }; | ||
| return iterate(options); | ||
| }; | ||
| return iterable; | ||
| } | ||
| forEach(callback) { | ||
| let iterator = (this.iterator = this.iterate()); | ||
| let result; | ||
| while ((result = iterator.next()).done !== true) { | ||
| callback(result.value); | ||
| } | ||
| } | ||
| concat(secondIterable) { | ||
| let concatIterable = new ExtendedIterable(); | ||
| concatIterable.iterate = (options = NO_OPTIONS) => { | ||
| let iterator = (this.iterator = this.iterate(options)); | ||
| let isFirst = true; | ||
| function iteratorDone(result) { | ||
| if (isFirst) { | ||
| try { | ||
| isFirst = false; | ||
| iterator = | ||
| secondIterable[ | ||
| options.async ? Symbol.asyncIterator : Symbol.iterator | ||
| ](); | ||
| result = iterator.next(); | ||
| if (concatIterable.onDone) { | ||
| if (result.then) { | ||
| if (!options.async) | ||
| throw new Error( | ||
| 'Can not synchronously iterate with promises as iterator results', | ||
| ); | ||
| result.then( | ||
| (result) => { | ||
| if (result.done()) concatIterable.onDone(); | ||
| }, | ||
| (error) => { | ||
| this.return(); | ||
| throw error; | ||
| }, | ||
| ); | ||
| } else if (result.done) concatIterable.onDone(); | ||
| } | ||
| } catch (error) { | ||
| this.throw(error); | ||
| } | ||
| } else { | ||
| if (concatIterable.onDone) concatIterable.onDone(); | ||
| } | ||
| return result; | ||
| } | ||
| return { | ||
| next() { | ||
| try { | ||
| let result = iterator.next(); | ||
| if (result.then) { | ||
| if (!options.async) | ||
| throw new Error( | ||
| 'Can not synchronously iterate with promises as iterator results', | ||
| ); | ||
| return result.then((result) => { | ||
| if (result.done) return iteratorDone(result); | ||
| return result; | ||
| }); | ||
| } | ||
| if (result.done) return iteratorDone(result); | ||
| return result; | ||
| } catch (error) { | ||
| this.throw(error); | ||
| } | ||
| }, | ||
| return(value) { | ||
| if (!this.done) { | ||
| RETURN_DONE.value = value; | ||
| this.done = true; | ||
| if (concatIterable.onDone) concatIterable.onDone(); | ||
| iterator.return(); | ||
| } | ||
| return RETURN_DONE; | ||
| }, | ||
| throw(error) { | ||
| if (options.continueOnRecoverableError) throw error; | ||
| this.return(); | ||
| throw error; | ||
| }, | ||
| }; | ||
| }; | ||
| return concatIterable; | ||
| } | ||
| flatMap(callback) { | ||
| let mappedIterable = new ExtendedIterable(); | ||
| mappedIterable.iterate = (options = NO_OPTIONS) => { | ||
| let iterator = (this.iterator = this.iterate(options)); | ||
| let currentSubIterator; | ||
| return { | ||
| next(resolvedResult) { | ||
| try { | ||
| do { | ||
| if (currentSubIterator) { | ||
| let result; | ||
| if (resolvedResult) { | ||
| result = resolvedResult; | ||
| resolvedResult = undefined; | ||
| } else result = currentSubIterator.next(); | ||
| if (result.then) { | ||
| if (!options.async) | ||
| throw new Error( | ||
| 'Can not synchronously iterate with promises as iterator results', | ||
| ); | ||
| return result.then((result) => this.next(result)); | ||
| } | ||
| if (!result.done) { | ||
| return result; | ||
| } | ||
| } | ||
| let result; | ||
| if (resolvedResult != undefined) { | ||
| result = resolvedResult; | ||
| resolvedResult = undefined; | ||
| } else result = iterator.next(); | ||
| if (result.then) { | ||
| if (!options.async) | ||
| throw new Error( | ||
| 'Can not synchronously iterate with promises as iterator results', | ||
| ); | ||
| currentSubIterator = undefined; | ||
| return result.then((result) => this.next(result)); | ||
| } | ||
| if (result.done) { | ||
| if (mappedIterable.onDone) mappedIterable.onDone(); | ||
| return result; | ||
| } | ||
| try { | ||
| let value = callback(result.value); | ||
| if (value?.then) { | ||
| if (!options.async) | ||
| throw new Error( | ||
| 'Can not synchronously iterate with promises as iterator results', | ||
| ); | ||
| return value.then( | ||
| (value) => { | ||
| if ( | ||
| Array.isArray(value) || | ||
| value instanceof ExtendedIterable | ||
| ) { | ||
| currentSubIterator = value[Symbol.iterator](); | ||
| return this.next(); | ||
| } else { | ||
| currentSubIterator = null; | ||
| return { value }; | ||
| } | ||
| }, | ||
| (error) => { | ||
| if (options.continueOnRecoverableError) | ||
| error.continueIteration = true; | ||
| this.throw(error); | ||
| }, | ||
| ); | ||
| } | ||
| if (Array.isArray(value) || value instanceof ExtendedIterable) | ||
| currentSubIterator = value[Symbol.iterator](); | ||
| else { | ||
| currentSubIterator = null; | ||
| return { value }; | ||
| } | ||
| } catch (error) { | ||
| if (options.continueOnRecoverableError) | ||
| error.continueIteration = true; | ||
| throw error; | ||
| } | ||
| } while (true); | ||
| } catch (error) { | ||
| this.throw(error); | ||
| } | ||
| }, | ||
| return() { | ||
| if (mappedIterable.onDone) mappedIterable.onDone(); | ||
| if (currentSubIterator) currentSubIterator.return(); | ||
| return iterator.return(); | ||
| }, | ||
| throw(error) { | ||
| if (options.continueOnRecoverableError) throw error; | ||
| if (mappedIterable.onDone) mappedIterable.onDone(); | ||
| if (currentSubIterator) currentSubIterator.return(); | ||
| this.return(); | ||
| throw error; | ||
| }, | ||
| }; | ||
| }; | ||
| return mappedIterable; | ||
| } | ||
| slice(start, end) { | ||
| let iterable = this.map((element, i) => { | ||
| if (i < start) return SKIP; | ||
| if (i >= end) { | ||
| DONE.value = element; | ||
| return DONE; | ||
| } | ||
| return element; | ||
| }); | ||
| iterable.handleError = (error, i) => { | ||
| if (i < start) return SKIP; | ||
| if (i >= end) { | ||
| return DONE; | ||
| } | ||
| throw error; | ||
| }; | ||
| return iterable; | ||
| } | ||
| mapError(catch_callback) { | ||
| if (typeof catch_callback !== 'function') { | ||
| throw new TypeError('Expected catch callback to be a function'); | ||
| } | ||
| let iterable = this.map((element) => { | ||
| return element; | ||
| }); | ||
| let iterate = iterable.iterate; | ||
| iterable.iterate = (options = NO_OPTIONS) => { | ||
| // we need to ensure the whole stack | ||
| // of iterables is set up to handle recoverable errors and continue iteration | ||
| return iterate({ ...options, continueOnRecoverableError: true }); | ||
| }; | ||
| iterable.returnRecoverableErrors = catch_callback; | ||
| return iterable; | ||
| } | ||
| next() { | ||
| if (!this.iterator) this.iterator = this.iterate(); | ||
| return this.iterator.next(); | ||
| } | ||
| toJSON() { | ||
| if (this.asArray && this.asArray.forEach) { | ||
| return this.asArray; | ||
| } | ||
| const error = new Error( | ||
| 'Can not serialize async iterables without first calling resolving asArray', | ||
| ); | ||
| error.resolution = this.asArray; | ||
| throw error; | ||
| //return Array.from(this) | ||
| } | ||
| get asArray() { | ||
| if (this._asArray) return this._asArray; | ||
| let promise = new Promise((resolve, reject) => { | ||
| let iterator = this.iterate(true); | ||
| let array = []; | ||
| let iterable = this; | ||
| Object.defineProperty(array, 'iterable', { value: iterable }); | ||
| function next(result) { | ||
| while (result.done !== true) { | ||
| if (result.then) { | ||
| return result.then(next); | ||
| } else { | ||
| array.push(result.value); | ||
| } | ||
| result = iterator.next(); | ||
| } | ||
| resolve((iterable._asArray = array)); | ||
| } | ||
| next(iterator.next()); | ||
| }); | ||
| promise.iterable = this; | ||
| return this._asArray || (this._asArray = promise); | ||
| } | ||
| resolveData() { | ||
| return this.asArray; | ||
| } | ||
| at(index) { | ||
| for (let entry of this) { | ||
| if (index-- === 0) return entry; | ||
| } | ||
| } | ||
| } | ||
| ExtendedIterable.prototype.DONE = DONE; | ||
| exports.ExtendedIterable = ExtendedIterable; | ||
| exports.SKIP = SKIP; | ||
| //# sourceMappingURL=index.cjs.map |
| {"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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"} |
+4
-2
| { | ||
| "name": "@harperfast/extended-iterable", | ||
| "author": "Harper", | ||
| "version": "1.0.2", | ||
| "version": "1.0.3", | ||
| "description": "Extended iterable class, providing lazy array-like methods with automatic async and return/throw forwarding", | ||
@@ -29,3 +29,5 @@ "license": "Apache-2.0", | ||
| "./index.js", | ||
| "./index.d.ts" | ||
| "./index.d.ts", | ||
| "./dist/index.cjs", | ||
| "./dist/index.cjs.map" | ||
| ], | ||
@@ -32,0 +34,0 @@ "devDependencies": { |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
68197
137.66%7
40%876
97.74%2
100%