export const toArray = (iterator: IterableIterator) => { const results: A[] = [] for (const result of iterator) { results.push(result) } return results } export const map = (mapper: (a: A) => B) => (iterator: IterableIterator) => { const results: B[] = [] for (const resultRaw of iterator) { results.push(mapper(resultRaw)) } return results } export const lastOfIterator = (max: number = 1024) => (iterator: IterableIterator) => { let result: T | undefined = undefined let i = 0 for (const item of iterator) { result = item i++ if (i >= max) { return undefined } } return result }