-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
Copy pathtypes.ts
117 lines (108 loc) · 2.21 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
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
105
106
107
108
109
110
111
112
113
114
115
116
117
export type RequestBodySchema = {
properties: {
[key: string]: {description: string; type: string};
};
required: string[];
type: string;
};
export type Parameter = {
description: string;
in: string;
name: string;
required: boolean;
schema: {
enum: string[];
format: string;
type: string;
items?: {[key: string]: {}};
};
};
type Markdown = {
childMdx: {
body: string;
};
};
type Tag = {
description: string;
externalDocs: {
description: string;
url: string;
};
name: string;
'x-display-description': boolean;
'x-sidebar-name': string;
};
export type DeRefedOpenAPI = {
paths: {
[key: string]: {
[key: string]: {
operationId: string;
parameters: Parameter[];
requestBody: {
content: {
'application/json': {
example: any;
schema: RequestBodySchema;
};
};
required: boolean;
};
responses: {
[key: string]: {
content: {
'application/json': {
example: any;
schema: any;
};
};
description: string;
};
};
summary: string;
tags: string[];
description?: string;
security?: any;
};
};
};
tags: Tag[];
};
export type ResponseContent = {
content_type: string;
example: string;
examples: string;
schema: string;
};
export type Response = {
content: ResponseContent | null;
description: string;
status_code: string;
};
export type RequestBody = {
content: {
content_type: string;
example: string;
schema: string;
};
required: boolean;
};
export type OpenApiPath = {
apiPath: string;
description: string;
method: string;
operationId: string;
parameters: Parameter[];
readableUrl: string;
requestBody: RequestBody | null;
responses: Response[];
security: {[key: string]: string[]}[];
summary: string | null;
tags: string[];
};
export type OpenAPI = {
childOpenApiPathDescription: Markdown;
childrenOpenApiBodyParameter: (Parameter & Markdown)[];
childrenOpenApiPathParameter: (Parameter & Markdown)[];
id: string;
path: OpenApiPath;
};