summaryrefslogtreecommitdiff
path: root/src/utils/result.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/result.ts')
-rw-r--r--src/utils/result.ts18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/utils/result.ts b/src/utils/result.ts
index c0120b8..39a7fe6 100644
--- a/src/utils/result.ts
+++ b/src/utils/result.ts
@@ -1,14 +1,18 @@
-import { Enum, constructors, match } from "./adt";
+import { Enum, constructors, match } from './adt'
-export type Result<V, E> = Enum<{ Ok: V, Err: E }>
+export type Result<V, E> = Enum<{ Ok: V; Err: E }>
export const Result = constructors<Result<any, any>>()
-export const mapResult = <A, B, E>(res: Result<A, E>, fn: (_: A) => B): Result<B, E> =>
- chainResult(res, a => Result.Ok(fn(a)))
+export const mapResult = <A, B, E>(
+ res: Result<A, E>,
+ fn: (_: A) => B,
+): Result<B, E> => chainResult(res, a => Result.Ok(fn(a)))
-export const chainResult = <A, B, E>(res: Result<A, E>, fn: (_: A) => Result<B, E>): Result<B, E> =>
+export const chainResult = <A, B, E>(
+ res: Result<A, E>,
+ fn: (_: A) => Result<B, E>,
+): Result<B, E> =>
match(res, {
Ok: a => fn(a),
Err: e => Result.Err(e),
- });
-
+ })