method Stream.tryMap
Stream.tryMap<
U,
F = never,
>
(
fn: (value: T) => Promisable<U>,
errFn: (
error: unknown,
value: T,
) => Promisable<F>
,
): Stream<U, E | F>

Maps successful values with fn and transforms errors with errFn. Both receive the original value so you can contextualize the mapping.

Examples

Example 1

import { Source } from "anabranch";

const stream = Source.from<number, Error>(async function* () {
  yield 1;
  throw new Error("failed");
  yield 3;
});

const result = stream.tryMap(
  (value) => value * 2,
  (err, value) => new Error(`Failed on ${value}: ${err.message}`),
);

Type Parameters

F = never

Parameters

fn: (value: T) => Promisable<U>
errFn: (
error: unknown,
value: T,
) => Promisable<F>

Return Type

Stream<U, E | F>

See

Usage

import { type Stream } from ".";