27 lines
485 B
OCaml
27 lines
485 B
OCaml
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
|