import { iterateLater } from '.'; export function partition( index: number, iterable: AsyncIterable ): [AsyncIterable, AsyncIterable] { let current = 0; const [partitionFirst, nextFirst, completeFirst] = iterateLater(); const [partitionSecond, nextSecond, completeSecond] = iterateLater(); const iterate = async () => { for await (const value of iterable) { if (current == index) { completeFirst(); } if (current < index) { nextFirst(value); } else { nextSecond(value); } current++; } completeFirst(); completeSecond(); }; iterate(); return [partitionFirst, partitionSecond]; }