MCPcopy Create free account
hub / github.com/Snowflyt/tinyeffect / handleErrorAsResult

Function handleErrorAsResult

test/README.example.proof.ts:532–545  ·  view source on GitHub ↗
(
      self: Effected<Effect.Error<ErrorName> | E, R>,
    )

Source from the content-addressed store, hash-verified

530 });
531
532 const handleErrorAsResult = <R, E extends Effect, ErrorName extends string>(
533 self: Effected<Effect.Error<ErrorName> | E, R>,
534 ): Effected<E, Result<R, { error: ErrorName; message?: string }>> => {
535 const isErrorEffect = (name: string | symbol): name is `error:${ErrorName}` => {
536 if (typeof name === "symbol") return false;
537 return name.startsWith("error:");
538 };
539
540 return self
541 .andThen((value) => ok(value))
542 .handle(isErrorEffect, (({ effect, terminate }: any, message: any) => {
543 terminate(err({ error: effect.name.slice("error:".length), message }));
544 }) as never) as Effected<E, Result<R, { error: ErrorName; message?: string }>>;
545 };
546
547 const range2 = (start: number, stop: number) => handleErrorAsResult(range(start, stop));
548

Callers 1

range2Function · 0.70

Calls 5

terminateFunction · 0.85
okFunction · 0.70
errFunction · 0.70
handleMethod · 0.65
andThenMethod · 0.65

Tested by

no test coverage detected