UNPKG

data-collectors

Version:

A collection of composable reduction operations for arbitrary streams of values

18 lines (17 loc) 1.09 kB
import { Collector, BaseCollector, Supplier } from "../collector"; export interface Mapper<T, U> { (value: T): U; } export declare class GroupingByCollector<T, K, A, D, M extends Map<K, D>> extends BaseCollector<T, Map<K, A>, Map<K, D>> { protected mapper: Mapper<T, K>; protected supplier: Supplier<M>; protected collector: Collector<T, A, D>; constructor(mapper: Mapper<T, K>, supplier: Supplier<M>, collector: Collector<T, A, D>); supply(): Map<K, A>; accumulate(container: Map<K, A>, item: T): void; combine(container1: Map<K, A>, container2: Map<K, A>): Map<K, A>; finish(container: Map<K, A>): Map<K, D>; } export declare function groupingBy<T, K>(mapper: (item: T) => K): Collector<T, Map<K, T[]>, Map<K, T[]>>; export declare function groupingBy<T, K, A, D>(mapper: (item: T) => K, collector: Collector<T, A, D>): Collector<T, Map<K, A>, Map<K, D>>; export declare function groupingBy<T, K, A, D, M extends Map<K, D>>(mapper: (item: T) => K, supplier: Supplier<M>, collector: Collector<T, A, D>): Collector<T, Map<K, A>, Map<K, D>>;