import { EnumerableFactory } from '../utilities/EnumerableFactory'; import { IEnumerable } from '../types'; import { applyTake, applyTakeEvery, applyTakeLast, applyTakeWhile } from './applicators/applyTake'; export function take(src: Iterable, count: number): IEnumerable { return applyTake(new EnumerableFactory(), src, count); } export function takeEvery(src: Iterable, step: number): IEnumerable { return applyTakeEvery(new EnumerableFactory(), src, step); } export function takeLast(src: Iterable, count: number): IEnumerable { return applyTakeLast(new EnumerableFactory(), src, count); } export function takeWhile( src: Iterable, predicate: (item: TSource, index: number) => boolean ): IEnumerable { return applyTakeWhile(new EnumerableFactory(), src, predicate); }