diff --git a/src/__tests__/try.spec.ts b/src/__tests__/try.spec.ts index 7e17042..60ad884 100644 --- a/src/__tests__/try.spec.ts +++ b/src/__tests__/try.spec.ts @@ -1,23 +1,18 @@ import { PIITry, unwrap } from "../index" -import { identity } from "../result" describe("PIITry", () => { it("should wrap results in PII", async () => { const result = await PIITry(() => "TEST_STRING") - const success = result.fold(identity, () => void 0) - expect(unwrap(success)).toBe("TEST_STRING") + expect(result).toBe("TEST_STRING") }) it("should wrap exceptions in PII", async () => { - const result = await PIITry(() => { - throw new Error("Error message") - }) - - const errorMessage = result.fold( - () => "never", - e => unwrap(e).message, - ) - - expect(errorMessage).toBe("Error message") + try { + await PIITry(() => { + throw new Error("Error message") + }) + } catch (e) { + expect(unwrap(e).message).toBe("Error message") + } }) }) diff --git a/src/result.ts b/src/result.ts index 3920045..4b7f41c 100644 --- a/src/result.ts +++ b/src/result.ts @@ -2,32 +2,10 @@ import { PII } from "./pii" export const identity = (x: X): X => x -export class Ok { - constructor(private value: S) {} - - // eslint-disable-next-line @typescript-eslint/no-unused-vars - fold(ok: (value: S) => R, _err: (err: E) => R): R { - return ok(this.value) - } -} - -export class Err { - constructor(private err: E) {} - - // eslint-disable-next-line @typescript-eslint/no-unused-vars - fold(_ok: (value: S) => R, err: (err: E) => R): R { - return err(this.err) - } -} - -export type Result = Ok | Err - -export async function PIITry( - fn: () => S | Promise, -): Promise, PII>> { +export async function PIITry(fn: () => S | Promise): Promise { try { - return new Ok(PII(await fn())) + return fn() } catch (e) { - return new Err(PII(e)) + throw PII(e) } }