Skip to content

True Myth / result / transposeAny

Function: transposeAny()

Call Signature

transposeAny(results): Result<[], never>

Given an array of results, return a new Ok result if any of the results is Ok, or a new Err result if all the results are Err.

Examples

When any result is Ok, return a new Ok result containing the value of the first Ok result:

ts
import { any } from 'true-myth/result';

let result = any([
  Result.err("something went wrong"),
  Result.ok(10),
  Result.err("something else went wrong")
]);

console.log(result.toString()); // Ok(10);

When all results are Err, return a new Err result containing an array of all Err encountered:

ts
import { any } from 'true-myth/result';

let result = any([
  Result.err("something went wrong"),
  Result.err("something else went wrong"),
  Result.err("even more went wrong")
]);

console.log(result.toString()); // Err(something went wrong,something else went wrong,even more went wrong)

Parameters

results

[]

The list of results to check.

Returns

Result<[], never>

A new Result containing the value of the first Ok result if any results are Ok, or a new Err result containing an array of all Err encountered if all results are Err.

Call Signature

transposeAny<A>(results): Result<{ -readonly [P in string | number | symbol]: OkFor<A[P<P>]> }, [...{ -readonly [P in string | number | symbol]: ErrFor<A[P<P>]> }[]]>

Given an array of results, return a new Ok result if any of the results is Ok, or a new Err result if all the results are Err.

Examples

When any result is Ok, return a new Ok result containing the value of the first Ok result:

ts
import { any } from 'true-myth/result';

let result = any([
  Result.err("something went wrong"),
  Result.ok(10),
  Result.err("something else went wrong")
]);

console.log(result.toString()); // Ok(10);

When all results are Err, return a new Err result containing an array of all Err encountered:

ts
import { any } from 'true-myth/result';

let result = any([
  Result.err("something went wrong"),
  Result.err("something else went wrong"),
  Result.err("even more went wrong")
]);

console.log(result.toString()); // Err(something went wrong,something else went wrong,even more went wrong)

Type Parameters

A

A extends AnyResult[]

The type of the array or tuple of tasks.

Parameters

results

A

The list of results to check.

Returns

Result<{ -readonly [P in string | number | symbol]: OkFor<A[P<P>]> }, [...{ -readonly [P in string | number | symbol]: ErrFor<A[P<P>]> }[]]>

A new Result containing the value of the first Ok result if any results are Ok, or a new Err result containing an array of all Err encountered if all results are Err.