forked from PaloAltoNetworks/docusaurus-openapi-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptions.ts
More file actions
78 lines (73 loc) · 2.4 KB
/
Copy pathoptions.ts
File metadata and controls
78 lines (73 loc) · 2.4 KB
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
/* ============================================================================
* Copyright (c) Palo Alto Networks
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
* ========================================================================== */
import { Joi } from "@docusaurus/utils-validation";
const sidebarGenerators = Joi.object({
createDocItem: Joi.function(),
});
const sidebarOptions = Joi.object({
groupPathsBy: Joi.string().valid("tag", "tagGroup"),
categoryLinkSource: Joi.string().valid("tag", "info", "auto"),
customProps: Joi.object(),
sidebarCollapsible: Joi.boolean(),
sidebarCollapsed: Joi.boolean(),
sidebarGenerators: sidebarGenerators,
});
const markdownGenerators = Joi.object({
createApiPageMD: Joi.function(),
createInfoPageMD: Joi.function(),
createTagPageMD: Joi.function(),
createSchemaPageMD: Joi.function(),
});
export const OptionsSchema = Joi.object({
id: Joi.string().required(),
docsPlugin: Joi.string(),
docsPluginId: Joi.string().required(),
config: Joi.object()
.pattern(
/^/,
Joi.object({
specPath: Joi.string().required(),
proxy: Joi.string(),
outputDir: Joi.string().required(),
template: Joi.string(),
infoTemplate: Joi.string(),
tagTemplate: Joi.string(),
schemaTemplate: Joi.string(),
downloadUrl: Joi.string(),
hideSendButton: Joi.boolean(),
showExtensions: Joi.boolean(),
sidebarOptions: sidebarOptions,
markdownGenerators: markdownGenerators,
showSchemas: Joi.boolean(),
generateSchemas: Joi.boolean(),
disableCompression: Joi.boolean(),
version: Joi.string().when("versions", {
is: Joi.exist(),
then: Joi.required(),
}),
label: Joi.string().when("versions", {
is: Joi.exist(),
then: Joi.required(),
}),
baseUrl: Joi.string().when("versions", {
is: Joi.exist(),
then: Joi.required(),
}),
versions: Joi.object().pattern(
/^/,
Joi.object({
specPath: Joi.string().required(),
outputDir: Joi.string().required(),
label: Joi.string().required(),
baseUrl: Joi.string().required(),
downloadUrl: Joi.string(),
})
),
})
)
.required(),
});