From 1f8d753dd71fb036a6f76cb3d66c1dfa572452af Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Fri, 23 Feb 2024 00:57:58 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=8B=20Adds=20exception=20to=20error=20?= =?UTF-8?q?type=20to=20help=20debugging?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/lib/utilities/result/err.ts | 16 +++++++++++----- app/src/lib/utilities/result/result.ts | 8 ++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/lib/utilities/result/err.ts b/app/src/lib/utilities/result/err.ts index 6b93823..1ce0dbb 100644 --- a/app/src/lib/utilities/result/err.ts +++ b/app/src/lib/utilities/result/err.ts @@ -1,14 +1,20 @@ -export class Err { +export class Err { #inner: T + #exception?: U - constructor(inner: T) { + constructor(inner: T, exception?: U) { this.#inner = inner + this.#exception = exception } get inner(): T { return this.#inner } + get exception(): U | undefined { + return this.#exception; + } + /** * Type guard for `Ok` * @returns `true` if `Ok`; `false` if `Err` @@ -21,7 +27,7 @@ export class Err { * Type guard for `Err` * @returns `true` if `Err`; `false` if `Ok` */ - isErr(): this is Err { + isErr(): this is Err { return true } @@ -30,7 +36,7 @@ export class Err { * @param inner * @returns `Err(inner)` */ - static new(inner: E): Err { - return new Err(inner) + static new(inner: E, exception: F): Err { + return new Err(inner, exception) } } diff --git a/app/src/lib/utilities/result/result.ts b/app/src/lib/utilities/result/result.ts index ca13c4c..1722b0b 100644 --- a/app/src/lib/utilities/result/result.ts +++ b/app/src/lib/utilities/result/result.ts @@ -1,7 +1,7 @@ import { Err } from './err' import { Ok } from './ok' -export type Result = Ok | Err +export type Result = Ok | Err export namespace Result { /** @@ -12,9 +12,9 @@ export namespace Result { } /** - * @returns `Err` + * @returns `Err` */ - export function err(error: E) { - return Err.new(error) + export function err(error: E, exception?: F) { + return Err.new(error, exception) } }