API reference@evolu/commonResult › allResult

Call Signature

function allResult<T>(
  results: T,
): Result<
  { [K in string | number | symbol]: InferOk<T[K]> },
  InferErr<T[number]>
>;

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

Extracts all values from an array of Results.

Returns the first error if any result fails.

Example

const results = [ok(1), ok(2), ok(3)];
const all = allResult(results);
// ok([1, 2, 3])

const withError = [ok(1), err("fail"), ok(3)];
const failed = allResult(withError);
// err("fail")

Call Signature

function allResult<T>(
  results: T,
): Result<
  { [P in string | number | symbol]: InferOk<T[P]> },
  [keyof T] extends [never] ? never : InferErr<T[keyof T]>
>;

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

Returns object with same keys.

const result = allResult({ a: ok(1), b: ok(2) });
// ok({ a: 1, b: 2 })

Call Signature

function allResult<T, E>(
  results: Iterable<Result<T, E>>,
): Result<readonly T[], E>;

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

For dynamic or generated result lists.

const results: ReadonlyArray<Result<number, Error>> = getResults();
const all = allResult(results);
// Result<ReadonlyArray<number>, Error>

Call Signature

function allResult<T, E>(
  results: readonly [Result<T, E>, Result<T, E>],
): Result<readonly [T, T], E>;

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

Guarantees non-empty result.

const results: NonEmptyReadonlyArray<Result<number, Error>> = [ok(1), ok(2)];
const all = allResult(results);
// Result<NonEmptyReadonlyArray<number>, Error>