You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.2 KiB
79 lines
2.2 KiB
/** |
|
* @fileoverview Defines a schema for configs. |
|
* @author Sylvan Mably |
|
*/ |
|
|
|
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" |
|
}; |
|
|
|
export default configSchema;
|
|
|