-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtypes.ts
78 lines (68 loc) · 1.33 KB
/
types.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
interface Dictionary {
name: string;
createdAt: string;
schemas: Schema[];
updatedAt: string;
version: string;
}
export interface Schema {
changeType: ChangeType;
name: string;
description: string;
fields: Array<Field>;
diff: SchemaDiff;
}
interface SchemaDiff {
description: Diff<string>;
}
export enum ChangeType {
CREATED = 'created',
UPDATED = 'updated',
DELETED = 'deleted',
NONE = 'NONE',
}
export interface Field {
changeType: ChangeType;
name: string;
valueType: string;
description: string;
meta: Meta;
restrictions: Restrictions;
diff: FieldDiff;
}
export interface Meta {
validationDependency: boolean;
primaryId: boolean;
examples: string;
notes: string;
displayName: string;
core: boolean;
}
export interface Restrictions {
required: boolean;
regex: string;
script: string;
}
export type Diff<T> = {
left: T;
right: T;
};
export interface FieldDiff {
valueType: Diff<string>;
description: Diff<string>;
meta: MetaDiff;
restrictions: RestrictionsDiff;
}
export interface MetaDiff {
validationDependency: Diff<boolean>;
primaryId: Diff<boolean>;
examples: Diff<string>;
notes: Diff<string>;
displayName: Diff<string>;
core: Diff<boolean>;
}
export interface RestrictionsDiff {
required: Diff<boolean>;
regex: Diff<string>;
script: Diff<string>;
}