Skip to content

Function: mapErr()

Call Signature

mapErr<R, MapperReturn>(result, mapper): Result<UnwrapOk<R | MapperReturn>, InferValueAsErr<MapperReturn>>

Defined in: index.ts:657

Transforms the error of an Err result using a mapper function. If the result is Ok, 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 Err data

Returns

Result<UnwrapOk<R | MapperReturn>, InferValueAsErr<MapperReturn>>

A new Result with transformed error, or the original Ok result

Example

typescript
mapErr(err('Not found'), (msg) => `Error: ${msg}`); // Result<never, "Error: Not found">

mapErr(ok(42), (msg) => `Error: ${msg}`); // Result<42, never>

mapErr(err(404 as number), code => {
  if (code === 404) return ok("Not found, but that's ok");
  return err(`HTTP ${code}`);
}); // Result<"Not found, but that's ok", `HTTP ${number}`>

mapErr(err('network failure'), () => ok('default data')); // Result<"default data", never>

Call Signature

mapErr<R, MapperReturn>(result, mapper): Promise<Result<UnwrapOk<R | MapperReturn>, InferValueAsErr<MapperReturn>>>

Defined in: index.ts:661

Transforms the error of an Err result using a mapper function. If the result is Ok, 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 Err data

Returns

Promise<Result<UnwrapOk<R | MapperReturn>, InferValueAsErr<MapperReturn>>>

A new Result with transformed error, or the original Ok result

Example

typescript
mapErr(err('Not found'), (msg) => `Error: ${msg}`); // Result<never, "Error: Not found">

mapErr(ok(42), (msg) => `Error: ${msg}`); // Result<42, never>

mapErr(err(404 as number), code => {
  if (code === 404) return ok("Not found, but that's ok");
  return err(`HTTP ${code}`);
}); // Result<"Not found, but that's ok", `HTTP ${number}`>

mapErr(err('network failure'), () => ok('default data')); // Result<"default data", never>