Skip to content

Function: mapOk() ​

Call Signature ​

mapOk<R, MapperReturn>(result, mapper): Result<InferValueAsOk<MapperReturn>, UnwrapErr<R | MapperReturn>>

Defined in: index.ts:618

Transforms the data of an Ok result using a mapper function. If the result is Err, it passes through unchanged. The mapper can return a value, Result, or Promise.

Type Parameters ​

R ​

R extends Result<any, any>

The input Result type

MapperReturn ​

MapperReturn

The type returned by the mapper function

Parameters ​

result ​

NonPromise<R>

The Result to map over

mapper ​

(data) => NonPromise<MapperReturn>

Function to transform the Ok data

Returns ​

Result<InferValueAsOk<MapperReturn>, UnwrapErr<R | MapperReturn>>

A new Result with transformed data, or the original Err result

Example ​

typescript
mapOk(ok(5), x => x * 2); //  Result<number, never>

mapOk(err("error"), x => x * 2); // Result<number, "error">

mapOk(ok("123"), str => {
  const num = parseInt(str);
  return isNaN(num) ? err("Not a number") : ok(num);
}); // Result<number, "Not a number">

Call Signature ​

mapOk<R, MapperReturn>(result, mapper): Promise<Result<InferValueAsOk<MapperReturn>, UnwrapErr<R | MapperReturn>>>

Defined in: index.ts:622

Transforms the data of an Ok result using a mapper function. If the result is Err, it passes through unchanged. The mapper can return a value, Result, or Promise.

Type Parameters ​

R ​

R extends Result<any, any>

The input Result type

MapperReturn ​

MapperReturn

The type returned by the mapper function

Parameters ​

result ​

OrPromise<R>

The Result to map over

mapper ​

(data) => OrPromise<MapperReturn>

Function to transform the Ok data

Returns ​

Promise<Result<InferValueAsOk<MapperReturn>, UnwrapErr<R | MapperReturn>>>

A new Result with transformed data, or the original Err result

Example ​

typescript
mapOk(ok(5), x => x * 2); //  Result<number, never>

mapOk(err("error"), x => x * 2); // Result<number, "error">

mapOk(ok("123"), str => {
  const num = parseInt(str);
  return isNaN(num) ? err("Not a number") : ok(num);
}); // Result<number, "Not a number">