liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
type OptionError<T> := {
    option: T | null,
    message: String,
    type: "OptionError"
}
 
type TypedError<T> := {
    message: String,
    type: T
}
 
type ValidationError := {
    errors: Array<Error>,
    message: String,
    type: "ValidationError"
}
 
error/option := (String, T) => OptionError<T>
 
error/typed := (args: {
    message: String,
    type: String,
    name?: String
}) => (opts: Object) => TypedError<String>
 
error/validation := (Array<Error>) => ValidationError