diff --git a/.changeset/violet-ducks-know.md b/.changeset/violet-ducks-know.md new file mode 100644 index 0000000..a8d6742 --- /dev/null +++ b/.changeset/violet-ducks-know.md @@ -0,0 +1,5 @@ +--- +"@epicenterhq/result": patch +--- + +Update mapError to take in Err and spit out Err diff --git a/src/result.ts b/src/result.ts index 2489ef0..17764c0 100644 --- a/src/result.ts +++ b/src/result.ts @@ -28,13 +28,13 @@ export function trySync({ mapErr, }: { try: () => T extends Promise ? never : T; - mapErr: (error: unknown) => E; + mapErr: (error: Err) => Err; }): Result { try { const data = operation(); return Ok(data); } catch (error) { - return Err(mapErr(error)); + return mapErr(Err(error)); } } @@ -43,12 +43,12 @@ export async function tryAsync({ mapErr, }: { try: () => Promise; - mapErr: (error: unknown) => E; + mapErr: (error: Err) => Err; }): Promise> { try { const data = await operation(); return Ok(data); } catch (error) { - return Err(mapErr(error)); + return mapErr(Err(error)); } } diff --git a/src/services.ts b/src/services.ts index 3b099bb..90b3bb5 100644 --- a/src/services.ts +++ b/src/services.ts @@ -9,11 +9,11 @@ type ServiceErrorFns = { Err: (props: ServiceErrorProperties) => Err; trySync: (opts: { try: () => T extends Promise ? never : T; - mapErr: (error: unknown) => ServiceErrorProperties; + mapErr: (error: Err) => Err; }) => Result; tryAsync: (opts: { try: () => Promise; - mapErr: (error: unknown) => ServiceErrorProperties; + mapErr: (error: Err) => Err; }) => Promise>; };