API reference@evolu/commonResult › mapResult

Call Signature

function mapResult<A, T, E>(
  items: A,
  fn: (a: A[number]) => Result<T, E>,
): Result<{ [K in string | number | symbol]: T }, E>;

Defined in: packages/common/src/Result.ts:644

Maps items to Results and extracts all values.

Returns the first error if any result fails.

Example

const users = [{ id: 1 }, { id: 2 }];
const result = mapResult(users, validateUser);
// Result<ReadonlyArray<ValidUser>, ValidateUserError>

Call Signature

function mapResult<A, T, E>(
  items: Iterable<A>,
  fn: (a: A) => Result<T, E>,
): Result<readonly T[], E>;

Defined in: packages/common/src/Result.ts:662

For dynamic or generated item lists.

const users = [{ id: 1 }, { id: 2 }];
const result = mapResult(users, validateUser);
// Result<ReadonlyArray<ValidUser>, ValidateUserError>

Call Signature

function mapResult<A, T, E, K>(
  items: Readonly<Record<K, A>>,
  fn: (a: A) => Result<T, E>,
): Result<Readonly<Record<K, T>>, E>;

Defined in: packages/common/src/Result.ts:675

Returns object with same keys.

const result = mapResult({ a: 1, b: 2 }, double);
// Result<{ a: number, b: number }, DoubleError>