import { IEnumerable, IEnumerableFactory } from '../../types'; export function applyWhere( factory: IEnumerableFactory, src: Iterable, exp: (item: TSource, index: number) => boolean ): IEnumerable { function* generator(): Generator { let i = 0; for (const item of src) { if (exp(item, i)) { yield item; } i++; } } return factory.createBasicEnumerable(generator); }