[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Result](https://evolu.dev/docs/api-reference/common/Result) › allResult

## Call Signature

```ts
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](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Result.ts#L543)

Extracts all values from an array of [Result](https://evolu.dev/docs/api-reference/common/Result/type-aliases/Result)s.

Returns the first error if any result fails.

### Example

```ts
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

```ts
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](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Result.ts#L555)

Returns object with same keys.

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

## Call Signature

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

Defined in: [packages/common/src/Result.ts:571](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Result.ts#L571)

For dynamic or generated result lists.

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

## Call Signature

```ts
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](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Result.ts#L587)

Guarantees non-empty result.

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