UNPKG

geninq

Version:

A JavaScript version of the Linq library for Generators

28 lines (24 loc) 628 B
import { Build, Promised } from "./utils"; declare global { interface Generator<T = unknown, TReturn = any, TNext = unknown> { prepend<TItem>(item: TItem): Generator<TItem | T, TNext, TReturn>; } interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> { prepend<TItem>(item: Promised<TItem>): AsyncGenerator<T | TItem, TNext, TReturn>; } } Build( "prepend", function* (extra) { yield extra; for (const item of this) { yield item; } }, async function* (extra) { yield await Promise.resolve(extra); for await (const item of this) { yield item; } } );