|
|
|
|
|
|
|
|
|
|
|
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" } |
|
}; |
|
|
|
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 |
|
} |
|
] |
|
}, |
|
|
|
|
|
objectConfig: { |
|
type: "object", |
|
properties: { |
|
root: { type: "boolean" }, |
|
ignorePatterns: { $ref: "#/definitions/stringOrStrings" }, |
|
...baseConfigProperties |
|
}, |
|
additionalProperties: false |
|
}, |
|
|
|
|
|
overrideConfig: { |
|
type: "object", |
|
properties: { |
|
excludedFiles: { $ref: "#/definitions/stringOrStrings" }, |
|
files: { $ref: "#/definitions/stringOrStringsRequired" }, |
|
...baseConfigProperties |
|
}, |
|
required: ["files"], |
|
additionalProperties: false |
|
} |
|
}, |
|
|
|
$ref: "#/definitions/objectConfig" |
|
}; |
|
|
|
export default configSchema; |
|
|