data-collectors
Version:
A collection of composable reduction operations for arbitrary streams of values
24 lines (18 loc) • 577 B
text/typescript
import { Collector, BaseCollector } from "../collector";
export class ToArrayCollector<T> extends BaseCollector<T, T[], T[]> {
supply () : T[] {
return [];
}
accumulate ( container : T[], item : T ) : void {
container.push( item );
}
combine ( container1 : T[], container2 : T[] ) : T[] {
return container1.concat( container2 );
}
finish ( container : T[] ) : T[] {
return container;
}
}
export function toArray<T> () : Collector<T, T[], T[]> {
return new ToArrayCollector<T>();
}