fluent-iterable
Version:
Provides LINQ-like fluent api operations for iterables and async iterables (ES2018+).
60 lines (59 loc) • 6.77 kB
TypeScript
import { Comparer, Group, Mapper, Predicate, Reducer, Action, AsyncAction, AsyncPredicate, AsyncMapper, AsyncReducer, Indexed } from './types';
declare function toArray<T>(iterable: AsyncIterable<T>): Promise<T[]>;
declare function withIndex<T>(iterable: AsyncIterable<T>): AsyncIterable<Indexed<T>>;
declare function takeWhile<T>(iterable: AsyncIterable<T>, condition: Predicate<T>): AsyncIterable<T>;
declare function takeWhileAsync<T>(iterable: AsyncIterable<T>, condition: AsyncPredicate<T>): AsyncIterable<T>;
declare function take<T>(iterable: AsyncIterable<T>, n: number): AsyncIterable<T>;
declare function skipWhile<T>(iterable: AsyncIterable<T>, condition: Predicate<T>): AsyncIterable<T>;
declare function skipWhileAsync<T>(iterable: AsyncIterable<T>, condition: AsyncPredicate<T>): AsyncIterable<T>;
declare function skip<T>(iterable: AsyncIterable<T>, n: number): AsyncIterable<T>;
declare function map<T, R>(iterable: AsyncIterable<T>, mapper: Mapper<T, R>): AsyncIterable<R>;
declare function mapAsync<T, R>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, R>): AsyncIterable<R>;
declare function filter<T>(iterable: AsyncIterable<T>, predicate: Predicate<T>): AsyncIterable<T>;
declare function filterAsync<T>(iterable: AsyncIterable<T>, predicate: AsyncPredicate<T>): AsyncIterable<T>;
declare function append<T>(iterable: AsyncIterable<T>, item: T): AsyncIterable<T>;
declare function prepend<T>(iterable: AsyncIterable<T>, item: T): AsyncIterable<T>;
declare function concat<T>(...iterables: Array<AsyncIterable<T>>): AsyncIterable<T>;
declare function repeat<T>(iterable: AsyncIterable<T>, n: number): AsyncIterable<T>;
declare function flatten<T, R>(iterable: AsyncIterable<T>, mapper?: Mapper<T, Iterable<R>>): AsyncIterable<R>;
declare function flattenAsync<T, R>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, AsyncIterable<R>>): AsyncIterable<R>;
declare function sort<T>(iterable: AsyncIterable<T>, comparer?: Comparer<T>): AsyncIterable<T>;
declare function distinct<T, R>(iterable: AsyncIterable<T>, mapper?: Mapper<T, R>): AsyncIterable<T>;
declare function distinctAsync<T, R>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, R>): AsyncIterable<T>;
declare function group<T, R>(iterable: AsyncIterable<T>, mapper: Mapper<T, R>): AsyncIterable<Group<T, R>>;
declare function groupAsync<T, R>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, R>): AsyncIterable<Group<T, R>>;
declare function count<T>(iterable: AsyncIterable<T>, predicate?: Predicate<T>): Promise<number>;
declare function countAsync<T>(iterable: AsyncIterable<T>, predicate: AsyncPredicate<T>): Promise<number>;
declare function first<T>(iterable: AsyncIterable<T>, predicate?: Predicate<T>): Promise<T | undefined>;
declare function firstAsync<T>(iterable: AsyncIterable<T>, predicate: AsyncPredicate<T>): Promise<T | undefined>;
declare function partition<T>(iterable: AsyncIterable<T>, size: number): AsyncIterable<AsyncIterable<T>>;
declare function last<T>(iterable: AsyncIterable<T>, predicate?: Predicate<T>): Promise<T | undefined>;
declare function lastAsync<T>(iterable: AsyncIterable<T>, predicate: AsyncPredicate<T>): Promise<T | undefined>;
declare function reduceAndMap<T, A, R>(iterable: AsyncIterable<T>, reducer: Reducer<T, A>, initial: A, result: Mapper<A, R>): Promise<R>;
declare function reduceAndMapAsync<T, A, R>(iterable: AsyncIterable<T>, reducer: AsyncReducer<T, A>, initial: A, result: AsyncMapper<A, R>): Promise<R>;
declare function reduce<T, R>(iterable: AsyncIterable<T>, reducer: Reducer<T, R>, initial: R): Promise<R>;
declare function reduceAsync<T, R>(iterable: AsyncIterable<T>, reducer: AsyncReducer<T, R>, initial: R): Promise<R>;
declare function all<T>(iterable: AsyncIterable<T>, predicate: Predicate<T>): Promise<boolean>;
declare function allAsync<T>(iterable: AsyncIterable<T>, predicate: AsyncPredicate<T>): Promise<boolean>;
declare function any<T>(iterable: AsyncIterable<T>, predicate?: Predicate<T>): Promise<boolean>;
declare function anyAsync<T>(iterable: AsyncIterable<T>, predicate: AsyncPredicate<T>): Promise<boolean>;
declare function contains<T>(iterable: AsyncIterable<T>, item: T): Promise<boolean>;
declare function toObject<T, R>(iterable: AsyncIterable<T>, keySelector: Mapper<T, string>, valueSelector?: Mapper<T, unknown>): Promise<R>;
declare function toObjectAsync<T, R>(iterable: AsyncIterable<T>, keySelector: AsyncMapper<T, string>, valueSelector: AsyncMapper<T, unknown>): Promise<R>;
declare function forEach<T>(iterable: AsyncIterable<T>, action: Action<T>): Promise<void>;
declare function forEachAsync<T>(iterable: AsyncIterable<T>, action: AsyncAction<T>): Promise<void>;
declare function execute<T>(iterable: AsyncIterable<T>, action: Action<T>): AsyncIterable<T>;
declare function executeAsync<T>(iterable: AsyncIterable<T>, action: AsyncAction<T>): AsyncIterable<T>;
declare function join<T>(iterable: AsyncIterable<T>, separator: string, mapper?: Mapper<T, string>): Promise<string>;
declare function joinAsync<T>(iterable: AsyncIterable<T>, separator: string, mapper: AsyncMapper<T, string>): Promise<string>;
declare function sum<T>(iterable: AsyncIterable<T>, mapper?: Mapper<T, number>): Promise<number>;
declare function sumAsync<T>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, number>): Promise<number>;
declare function avg<T>(iterable: AsyncIterable<T>, mapper?: Mapper<T, number>): Promise<number>;
declare function avgAsync<T>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, number>): Promise<number>;
declare function top<T, R>(iterable: AsyncIterable<T>, mapper: Mapper<T, R>, comparer: Comparer<R>): Promise<T | undefined>;
declare function topAsync<T, R>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, R>, comparer: Comparer<R>): Promise<T | undefined>;
declare function min<T>(iterable: AsyncIterable<T>, mapper?: Mapper<T, number>): Promise<T | undefined>;
declare function minAsync<T>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, number>): Promise<T | undefined>;
declare function max<T>(iterable: AsyncIterable<T>, mapper?: Mapper<T, number>): Promise<T | undefined>;
declare function maxAsync<T>(iterable: AsyncIterable<T>, mapper: AsyncMapper<T, number>): Promise<T | undefined>;
export { withIndex, takeWhile, takeWhileAsync, take, skipWhile, skipWhileAsync, skip, map, mapAsync, filter, firstAsync, partition, append, prepend, concat, repeat, flatten, flattenAsync, sort, distinct, distinctAsync, group, groupAsync, count, countAsync, first, filterAsync, last, lastAsync, reduceAndMap, reduceAndMapAsync, reduce, reduceAsync, all, allAsync, any, anyAsync, contains, toArray, toObject, toObjectAsync, forEach, forEachAsync, execute, executeAsync, join, joinAsync, sum, sumAsync, avg, avgAsync, top, topAsync, min, minAsync, max, maxAsync, };