UNPKG

2.64 kBTypeScriptView Raw
1/// <reference types="node" />
2import { UnaryFunction, OperatorFunction } from '../interfaces';
3/**
4 * This class serves as the base for all operations which support [Symbol.iterator].
5 */
6export declare abstract class IterableX<T> implements Iterable<T> {
7 abstract [Symbol.iterator](): Iterator<T>;
8 forEach(projection: (value: T, index: number) => void, thisArg?: any): void;
9 /** @nocollapse */
10 pipe<R>(...operations: UnaryFunction<Iterable<T>, R>[]): R;
11 pipe<R>(...operations: OperatorFunction<T, R>[]): IterableX<R>;
12 pipe<R extends NodeJS.WritableStream>(writable: R, options?: {
13 end?: boolean;
14 }): R;
15}
16declare module '../iterable/iterablex' {
17 interface IterableX<T> extends Iterable<T> {
18 pipe(): IterableX<T>;
19 pipe<A>(op1: OperatorFunction<T, A>): IterableX<A>;
20 pipe<A, B>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>): IterableX<B>;
21 pipe<A, B, C>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>): IterableX<C>;
22 pipe<A, B, C, D>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>): IterableX<D>;
23 pipe<A, B, C, D, E>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>): IterableX<E>;
24 pipe<A, B, C, D, E, F>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>): IterableX<F>;
25 pipe<A, B, C, D, E, F, G>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>): IterableX<G>;
26 pipe<A, B, C, D, E, F, G, H>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>): IterableX<H>;
27 pipe<A, B, C, D, E, F, G, H, I>(op1: OperatorFunction<T, A>, op2: OperatorFunction<A, B>, op3: OperatorFunction<B, C>, op4: OperatorFunction<C, D>, op5: OperatorFunction<D, E>, op6: OperatorFunction<E, F>, op7: OperatorFunction<F, G>, op8: OperatorFunction<G, H>, op9: OperatorFunction<H, I>): IterableX<I>;
28 pipe<R>(...operations: OperatorFunction<T, R>[]): IterableX<R>;
29 pipe<A extends NodeJS.WritableStream>(op1: A, options?: {
30 end?: boolean;
31 }): A;
32 }
33}