From 1d66a0f58e4ebcdf4f42c9d78f82a1ab49a2cf11 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Tue, 13 May 2025 18:58:45 -0700 Subject: snapshot! --- utils/either.ts | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 utils/either.ts (limited to 'utils/either.ts') diff --git a/utils/either.ts b/utils/either.ts deleted file mode 100644 index 10e4f43..0000000 --- a/utils/either.ts +++ /dev/null @@ -1,48 +0,0 @@ -export interface IEither { - ok?: T; - err?: E; - mapBoth: ( - errBranch: (e: E) => Ee, - okBranch: (o: T) => Tt, - ) => IEither; - mapRight: (mapper: (t: T) => Tt) => Either; - mapLeft: (mapper: (e: E) => Ee) => Either; - flatMap: ( - mapper: (e: T) => Either, - ) => Either; -} - -export class Either implements IEither { - private constructor(readonly err?: E, readonly ok?: T) {} - - public mapBoth( - errBranch: (e: E) => Ee, - okBranch: (t: T) => Tt, - ): Either { - if (this.err) return Either.left(errBranch(this.err)); - return Either.right(okBranch(this.ok!)); - } - - public flatMap(mapper: (t: T) => Either) { - if (this.ok) return mapper(this.ok); - return this; - } - - public mapRight(mapper: (t: T) => Tt): Either { - if (this.ok) return Either.right(mapper(this.ok)); - return Either.left(this.err!); - } - - public mapLeft(mapper: (e: E) => Ee): Either { - if (this.err) return Either.left(mapper(this.err)); - return Either.right(this.ok!); - } - - static left(e: E) { - return new Either(e); - } - - static right(t: T) { - return new Either(undefined, t); - } -} -- cgit v1.2.3-70-g09d2