| 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
 | | /** |  |  * @fileoverview Defines a schema for configs. |  |  * @author Sylvan Mably |  |  */ |  |   |  | "use strict"; |  |   |  | const baseConfigProperties = { |  |     $schema: { type: "string" }, |  |     env: { type: "object" }, |  |     extends: { $ref: "#/definitions/stringOrStrings" }, |  |     globals: { type: "object" }, |  |     overrides: { |  |         type: "array", |  |         items: { $ref: "#/definitions/overrideConfig" }, |  |         additionalItems: false |  |     }, |  |     parser: { type: ["string", "null"] }, |  |     parserOptions: { type: "object" }, |  |     plugins: { type: "array" }, |  |     processor: { type: "string" }, |  |     rules: { type: "object" }, |  |     settings: { type: "object" }, |  |     noInlineConfig: { type: "boolean" }, |  |     reportUnusedDisableDirectives: { type: "boolean" }, |  |   |  |     ecmaFeatures: { type: "object" } // deprecated; logs a warning when used |  | }; |  |   |  | const configSchema = { |  |     definitions: { |  |         stringOrStrings: { |  |             oneOf: [ |  |                 { type: "string" }, |  |                 { |  |                     type: "array", |  |                     items: { type: "string" }, |  |                     additionalItems: false |  |                 } |  |             ] |  |         }, |  |         stringOrStringsRequired: { |  |             oneOf: [ |  |                 { type: "string" }, |  |                 { |  |                     type: "array", |  |                     items: { type: "string" }, |  |                     additionalItems: false, |  |                     minItems: 1 |  |                 } |  |             ] |  |         }, |  |   |  |         // Config at top-level. |  |         objectConfig: { |  |             type: "object", |  |             properties: { |  |                 root: { type: "boolean" }, |  |                 ignorePatterns: { $ref: "#/definitions/stringOrStrings" }, |  |                 ...baseConfigProperties |  |             }, |  |             additionalProperties: false |  |         }, |  |   |  |         // Config in `overrides`. |  |         overrideConfig: { |  |             type: "object", |  |             properties: { |  |                 excludedFiles: { $ref: "#/definitions/stringOrStrings" }, |  |                 files: { $ref: "#/definitions/stringOrStringsRequired" }, |  |                 ...baseConfigProperties |  |             }, |  |             required: ["files"], |  |             additionalProperties: false |  |         } |  |     }, |  |   |  |     $ref: "#/definitions/objectConfig" |  | }; |  |   |  | module.exports = configSchema; | 
 |