File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ export class Error {
2+ public constructor ( public code : string , public description : string ) { }
3+
4+ public static readonly None = new Error ( "" , "" ) ;
5+ public static readonly Unknown = new Error ( "Unknown" , "An unknown error has occurred." ) ;
6+
7+ public static from ( code : string , description : string ) : Error {
8+ return new Error ( code , description ) ;
9+ }
10+ }
Original file line number Diff line number Diff line change 1+ import { Error } from "./error" ;
2+
3+ export class Result < TData = void > {
4+ public readonly isSuccess : boolean ;
5+ public readonly isFailure : boolean ;
6+
7+ public readonly error : Error ;
8+ public readonly value ?: TData ;
9+
10+ private constructor ( isSuccess : boolean , value ?: TData , error : Error = Error . None ) {
11+ this . isSuccess = isSuccess ;
12+ this . isFailure = ! isSuccess ;
13+ this . error = error ;
14+ this . value = value ;
15+ }
16+
17+ public static success < TData > ( value : TData ) : Result < TData > {
18+ return new Result < TData > ( true , value , Error . None ) ;
19+ }
20+
21+ public static failure < TData > ( error : Error ) : Result < TData > {
22+ return new Result < TData > ( false , undefined , error ) ;
23+ }
24+ }
You can’t perform that action at this time.
0 commit comments