/
githubmirror
/
lemon-agent
Обзор
Документация
Войти
/
githubmirror
/
lemon-agent
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/shared/src/result.ts
39 строк
802 B
Felix Brockmeier
Add analytics app
02 авг 2023, 23:48
02 авг 2023, 23:48
d3bf65b
Код
Авторство
О чём код?
export default class Result<T> { #error?: string; #success: boolean; #value?: T; private constructor(success: boolean, value?: T, error?: string) { this.#error = error; this.#success = success; this.#value = value; } get error(): string | undefined { return this.#error; } get success(): boolean { return this.#success; } get value(): T | undefined { if (!this.#success) throw new Error( `An error occurred. Cannot get the value of an error result: ${ this.#error || 'unknown error' }` ); return this.#value; } static ok<U>(value?: U): Result<U> { return new Result<U>(true, value, undefined); } static fail<U>(error: string): Result<U> { return new Result<U>(false, undefined, error); } }