Skip to main content

abstract class StreamBase<T>

A reusable base implementation for Stream that provides all high-level operations in terms of a FastIterator returned from [Symbol.iterator]. Custom stream implementations in @rimbu/stream/custom extend this class.

Type parameters​

NameDescription
Tthe element type

Methods​

[Symbol.iterator]​

undocumented

Definition​

abstract [Symbol.iterator](): FastIterator<T>;

append​

undocumented

Definition​

append(value: OptLazy<T>): Stream.NonEmpty<T>;

Parameters​

NameTypeDescription
valueOptLazy<T>

asNormal​

undocumented

Definition​

asNormal(): Stream<T>;

assumeNonEmpty​

undocumented

Definition​

assumeNonEmpty(): Stream.NonEmpty<T>;

collect​

undocumented

Definition​

collect<R>(collectFun: CollectFun<T, R>): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
collectFunCollectFun<T, R>

concat​

undocumented

Definition​

concat(...others: ArrayNonEmpty<StreamSource<T>>): Stream.NonEmpty<T>;

Parameters​

NameTypeDescription
othersArrayNonEmpty<StreamSource<T>>

contains​

undocumented

Definition​

contains(searchValue: T, options?: {
    amount?: number;
    eq?: Eq<T>;
    negate?: boolean;
  }): boolean;

Parameters​

NameTypeDescription
searchValueT
options{
    amount?: number;
    eq?: Eq<T>;
    negate?: boolean;
  }

containsSlice​

undocumented

Definition​

containsSlice(source: StreamSource.NonEmpty<T>, options?: {
    eq?: Eq<T>;
    amount?: number;
  }): boolean;

Parameters​

NameTypeDescription
sourceStreamSource.NonEmpty<T>
options{
    eq?: Eq<T>;
    amount?: number;
  }

count​

undocumented

Definition​

count(): number;

countElement​

undocumented

Definition​

countElement(value: T, options?: {
    eq?: Eq<T>;
    negate?: boolean;
  }): number;

Parameters​

NameTypeDescription
valueT
options{
    eq?: Eq<T>;
    negate?: boolean;
  }

distinctPrevious​

undocumented

Definition​

distinctPrevious(options?: {
    eq?: Eq<T>;
    negate?: boolean;
  }): Stream<T>;

Parameters​

NameTypeDescription
options{
    eq?: Eq<T>;
    negate?: boolean;
  }

drop​

undocumented

Definition​

drop(amount: number): Stream<T>;

Parameters​

NameTypeDescription
amountnumber

dropWhile​

undocumented

Definition​

dropWhile(pred: (value: T, index: number) => boolean, options?: {
    negate?: boolean;
  }): Stream<T>;

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    negate?: boolean;
  }

elementAt​

undocumented

Definition​

elementAt<O>(index: number, otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
indexnumber
otherwiseOptLazy<O>

equals​

undocumented

Definition​

equals(other: StreamSource<T>, { eq, negate }?: {
    eq?: Eq<T>;
    negate?: boolean;
  }): boolean;

Parameters​

NameTypeDescription
otherStreamSource<T>
{ eq, negate }{
    eq?: Eq<T>;
    negate?: boolean;
  }

every​

undocumented

Definition​

every(pred: (value: T, index: number) => boolean, options?: {
    negate?: boolean;
  }): boolean;

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    negate?: boolean;
  }

filter​

undocumented

Definition​

filter(pred: (value: T, index: number, halt: () => void) => boolean, options?: {
    negate?: boolean | undefined;
  }): any;

Parameters​

NameTypeDescription
pred(value: T, index: number, halt: () => void) => boolean
options{
    negate?: boolean | undefined;
  }

filterPure​

undocumented

Definition​

filterPure<A extends readonly unknown[]>(options: {
    pred: (value: T, ...args: A) => boolean;
    negate?: boolean | undefined;
  }, ...args: A): any;

Type parameters​

NameConstraintsDescription
Areadonly unknown[]

Parameters​

NameTypeDescription
options{
    pred: (value: T, ...args: A) => boolean;
    negate?: boolean | undefined;
  }
argsA

find​

undocumented

Definition​

find<O>(pred: (value: T, index: number) => boolean, options?: {
    occurrance?: number | undefined;
    negate?: boolean | undefined;
    otherwise?: OptLazy<O>;
  }): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    occurrance?: number | undefined;
    negate?: boolean | undefined;
    otherwise?: OptLazy<O>;
  }

first​

undocumented

Definition​

first<O>(otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
otherwiseOptLazy<O>

flatMap​

undocumented

Definition​

flatMap<T2>(flatMapFun: (value: T, index: number, halt: () => void) => StreamSource<T2>): Stream<T2>;

Type parameters​

NameDescription
T2

Parameters​

NameTypeDescription
flatMapFun(value: T, index: number, halt: () => void) => StreamSource<T2>

flatZip​

undocumented

Definition​

flatZip<T2>(flatMapFun: (value: T, index: number, halt: () => void) => StreamSource<T2>): Stream<[T, T2]>;

Type parameters​

NameDescription
T2

Parameters​

NameTypeDescription
flatMapFun(value: T, index: number, halt: () => void) => StreamSource<T2>

fold​

undocumented

Definition​

fold<R>(init: OptLazy<R>, next: (current: R, value: T, index: number, halt: () => void) => R): R;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
initOptLazy<R>
next(current: R, value: T, index: number, halt: () => void) => R

foldStream​

undocumented

Definition​

foldStream<R>(init: OptLazy<R>, next: (current: R, value: T, index: number, halt: () => void) => R): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
initOptLazy<R>
next(current: R, value: T, index: number, halt: () => void) => R

forEach​

undocumented

Definition​

forEach(f: (value: T, index: number, halt: () => void) => void, options?: {
    state?: TraverseState;
  }): void;

Parameters​

NameTypeDescription
f(value: T, index: number, halt: () => void) => void
options{
    state?: TraverseState;
  }

forEachPure​

undocumented

Definition​

forEachPure<A extends readonly unknown[]>(f: (value: T, ...args: A) => void, ...args: A): void;

Type parameters​

NameConstraintsDescription
Areadonly unknown[]

Parameters​

NameTypeDescription
f(value: T, ...args: A) => void
argsA

groupBy​

undocumented

Definition​

groupBy<K, R>(valueToKey: (value: T, index: number) => K, options?: {
    collector?: Reducer<readonly [K, T], R> | undefined;
  }): R;

Type parameters​

NameDescription
K
R

Parameters​

NameTypeDescription
valueToKey(value: T, index: number) => K
options{
    collector?: Reducer<readonly [K, T], R> | undefined;
  }

indexed​

undocumented

Definition​

indexed(options?: {
    startIndex?: number;
  }): Stream<[number, T]>;

Parameters​

NameTypeDescription
options{
    startIndex?: number;
  }

indexOf​

undocumented

Definition​

indexOf(searchValue: T, options?: {
    occurrance?: number | undefined;
    eq?: Eq<T> | undefined;
    negate?: boolean | undefined;
  }): number | undefined;

Parameters​

NameTypeDescription
searchValueT
options{
    occurrance?: number | undefined;
    eq?: Eq<T> | undefined;
    negate?: boolean | undefined;
  }

indexWhere​

undocumented

Definition​

indexWhere(pred: (value: T, index: number) => boolean, options?: {
    occurrance?: number;
    negate?: boolean;
  }): number | undefined;

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    occurrance?: number;
    negate?: boolean;
  }

indicesOf​

undocumented

Definition​

indicesOf(searchValue: T, options?: {
    eq?: Eq<T>;
    negate?: boolean;
  }): Stream<number>;

Parameters​

NameTypeDescription
searchValueT
options{
    eq?: Eq<T>;
    negate?: boolean;
  }

indicesWhere​

undocumented

Definition​

indicesWhere(pred: (value: T) => boolean, options?: {
    negate?: boolean;
  }): Stream<number>;

Parameters​

NameTypeDescription
pred(value: T) => boolean
options{
    negate?: boolean;
  }

intersperse​

undocumented

Definition​

intersperse(sep: StreamSource<T>): Stream<T>;

Parameters​

NameTypeDescription
sepStreamSource<T>

join​

undocumented

Definition​

join({ sep, start, end, valueToString, ifEmpty, }?: {
    sep?: string | undefined;
    start?: string | undefined;
    end?: string | undefined;
    valueToString?: StringConstructor | undefined;
    ifEmpty?: undefined;
  }): string;

Parameters​

NameTypeDescription
{ sep, start, end, valueToString, ifEmpty, }{
    sep?: string | undefined;
    start?: string | undefined;
    end?: string | undefined;
    valueToString?: StringConstructor | undefined;
    ifEmpty?: undefined;
  }

last​

undocumented

Definition​

last<O>(otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
otherwiseOptLazy<O>

map​

undocumented

Definition​

map<T2>(mapFun: (value: T, index: number) => T2): Stream<T2>;

Type parameters​

NameDescription
T2

Parameters​

NameTypeDescription
mapFun(value: T, index: number) => T2

mapPure​

undocumented

Definition​

mapPure<T2, A extends readonly unknown[]>(mapFun: (value: T, ...args: A) => T2, ...args: A): Stream<T2>;

Type parameters​

NameConstraintsDescription
T2
Areadonly unknown[]

Parameters​

NameTypeDescription
mapFun(value: T, ...args: A) => T2
argsA

max​

undocumented

Definition​

max<O>(otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
otherwiseOptLazy<O>

maxBy​

undocumented

Definition​

maxBy<O>(compare: (v1: T, v2: T) => number, otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
compare(v1: T, v2: T) => number
otherwiseOptLazy<O>

min​

undocumented

Definition​

min<O>(otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
otherwiseOptLazy<O>

minBy​

undocumented

Definition​

minBy<O>(compare: (v1: T, v2: T) => number, otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
compare(v1: T, v2: T) => number
otherwiseOptLazy<O>

mkGroup​

undocumented

Definition​

mkGroup({ sep, start, end, }?: {
    sep?: StreamSource<T>;
    start?: StreamSource<T>;
    end?: StreamSource<T>;
  }): any;

Parameters​

NameTypeDescription
{ sep, start, end, }{
    sep?: StreamSource<T>;
    start?: StreamSource<T>;
    end?: StreamSource<T>;
  }

partition​

undocumented

Definition​

partition(pred: (value: T, index: number) => any, options?: {
    collectorTrue?: any;
    collectorFalse?: any;
  }): [any, any];

Parameters​

NameTypeDescription
pred(value: T, index: number) => any
options{
    collectorTrue?: any;
    collectorFalse?: any;
  }

prepend​

undocumented

Definition​

prepend(value: OptLazy<T>): Stream.NonEmpty<T>;

Parameters​

NameTypeDescription
valueOptLazy<T>

reduce​

undocumented

Definition​

reduce<const S extends Reducer.CombineShape<T2>, T2 extends T = T>(shape: S & Reducer.CombineShape<T2>): Reducer.CombineResult<S>;

Type parameters​

NameConstraintsDefaultDescription
SReducer.CombineShape<T2>
T2TT

Parameters​

NameTypeDescription
shapeS & Reducer.CombineShape<T2>

reduceStream​

undocumented

Definition​

reduceStream<const S extends Reducer.CombineShape<T2>, T2 extends T = T>(shape: S & Reducer.CombineShape<T2>): Stream<Reducer.CombineResult<S>>;

Type parameters​

NameConstraintsDefaultDescription
SReducer.CombineShape<T2>
T2TT

Parameters​

NameTypeDescription
shapeS & Reducer.CombineShape<T2>

repeat​

undocumented

Definition​

repeat(amount?: number): Stream<T>;

Parameters​

NameTypeDescription
amountnumber

single​

undocumented

Definition​

single<O>(otherwise?: OptLazy<O>): T | O;

Type parameters​

NameDescription
O

Parameters​

NameTypeDescription
otherwiseOptLazy<O>

some​

undocumented

Definition​

some(pred: (value: T, index: number) => boolean, options?: {
    negate?: boolean;
  }): boolean;

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    negate?: boolean;
  }

splitOn​

undocumented

Definition​

splitOn<R>(sepElem: T, options?: {
    eq?: Eq<T> | undefined;
    negate?: boolean | undefined;
    collector?: Reducer<T, R> | undefined;
  }): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
sepElemT
options{
    eq?: Eq<T> | undefined;
    negate?: boolean | undefined;
    collector?: Reducer<T, R> | undefined;
  }

splitOnSlice​

undocumented

Definition​

splitOnSlice<R>(sepSeq: StreamSource<T>, options?: {
    eq?: Eq<T> | undefined;
    collector?: Reducer<T, R> | undefined;
  }): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
sepSeqStreamSource<T>
options{
    eq?: Eq<T> | undefined;
    collector?: Reducer<T, R> | undefined;
  }

splitWhere​

undocumented

Definition​

splitWhere<R>(pred: (value: T, index: number) => boolean, options?: {
    negate?: boolean | undefined;
    collector?: Reducer<T, R> | undefined;
  }): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    negate?: boolean | undefined;
    collector?: Reducer<T, R> | undefined;
  }

stream​

undocumented

Definition​

stream(): this;

take​

undocumented

Definition​

take(amount: number): Stream<T>;

Parameters​

NameTypeDescription
amountnumber

takeWhile​

undocumented

Definition​

takeWhile(pred: (value: T, index: number) => boolean, options?: {
    negate?: boolean;
  }): Stream<T>;

Parameters​

NameTypeDescription
pred(value: T, index: number) => boolean
options{
    negate?: boolean;
  }

toArray​

undocumented

Definition​

toArray(): T[];

toJSON​

undocumented

Definition​

toJSON(): ToJSON<T[], 'Stream'>;

toString​

undocumented

Definition​

toString(): string;

transform​

undocumented

Definition​

transform<R>(transformer: Transformer<T, R>): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
transformerTransformer<T, R>

window​

undocumented

Definition​

window<R>(windowSize: number, options?: {
    skipAmount?: number | undefined;
    collector?: Reducer<T, R> | undefined;
  }): Stream<R>;

Type parameters​

NameDescription
R

Parameters​

NameTypeDescription
windowSizenumber
options{
    skipAmount?: number | undefined;
    collector?: Reducer<T, R> | undefined;
  }

withOnly​

undocumented

Definition​

withOnly<F extends T>(values: F[]): Stream<F>;

Type parameters​

NameConstraintsDescription
FT

Parameters​

NameTypeDescription
valuesF[]

without​

undocumented

Definition​

without<F extends T>(values: F[]): any;

Type parameters​

NameConstraintsDescription
FT

Parameters​

NameTypeDescription
valuesF[]