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">