@lou.codes/iterables
Version:
🔁 Iterable and AsyncIterable utils
32 lines (31 loc) • 901 B
TypeScript
import type {
ReadOnlyIterableIterator,
ReadOnlyIterator,
} from "@lou.codes/types";
/**
* Takes a generator function and returns an iterable iterator object.
*
* @category Common
* @example
* ```typescript
* const identityGenerator = function* (value) { yield value; };
* const iterableIterator = createIterableIterator(identityGenerator);
*
* const fooIdentity = iterableIterator("foo");
*
* for (const value of fooIdentity) {
* console.log(value); // "foo"
* }
*
* // Same IterableIterator as above, return values again:
*
* for (const value of fooIdentity) {
* console.log(value); // "foo"
* }
* ```
* @param generatorFunction Generator to be used every time `[Symbol.iterator]` is called.
* @returns Iterable iterator object.
*/
export declare const createIterableIterator: <Item>(
generatorFunction: () => ReadOnlyIterator<Item>,
) => ReadOnlyIterableIterator<Item>;