-
Notifications
You must be signed in to change notification settings - Fork 31
/
validation-error.ts
104 lines (88 loc) · 2.37 KB
/
validation-error.ts
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import { Link } from './utils'
export interface BaseValidationError {
name: string
message?: string
details?: string
value?: any
customMessage?: string
path: string[]
}
export interface SizeValidationError extends BaseValidationError {
name: 'size'
max: number
min: number
nodeType?: string
}
export interface RangeValidationError extends BaseValidationError {
name: 'range'
min?: number
max?: number
}
export interface InValidationError extends BaseValidationError {
name: 'in'
expected: string[]
}
export interface RequiredValidationError extends BaseValidationError {
name: 'required'
}
export interface UniqueValidationError extends BaseValidationError {
name: 'unique'
conflicting: Link<'Entry', 'Link'>[]
}
export interface ProhibitRegexpValidationError extends BaseValidationError {
name: 'prohibitRegexp'
}
export interface RegexpValidationError extends BaseValidationError {
name: 'regexp'
}
export interface LinkMimetypeGroupValidationError extends BaseValidationError {
name: 'linkMimetypeGroup'
mimetypeGroupName: string[]
}
export interface LinkContentTypeValidationError extends BaseValidationError {
name: 'linkContentType'
contentTypeId: string[]
}
export interface DateRangeValidationError extends BaseValidationError {
name: 'dateRange'
min: number
max: number
}
export interface NotResolvableValidationError extends BaseValidationError {
name: 'notResolvable'
link: {
linkType: string
}
}
export interface UnknownValidationError extends BaseValidationError {
name: 'unknown'
}
export interface TypeValidationError extends BaseValidationError {
name: 'type'
type: string
}
export interface AllowedResourceValidationError extends BaseValidationError {
name: 'allowedResource'
code: string
}
export interface AllowedResourcesValidationError extends BaseValidationError {
name: 'allowedResources'
contentTypeId?: string[]
}
export type ValidationError =
| SizeValidationError
| RangeValidationError
| InValidationError
| RequiredValidationError
| UniqueValidationError
| RegexpValidationError
| ProhibitRegexpValidationError
| LinkMimetypeGroupValidationError
| LinkContentTypeValidationError
| DateRangeValidationError
| NotResolvableValidationError
| UnknownValidationError
| TypeValidationError
| AllowedResourceValidationError
| AllowedResourcesValidationError
| BaseValidationError