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.
93 lines
2.5 KiB
93 lines
2.5 KiB
/* |
|
* STOP!!! DO NOT MODIFY. |
|
* |
|
* This file is part of the ongoing work to move the eslintrc-style config |
|
* system into the @eslint/eslintrc package. This file needs to remain |
|
* unchanged in order for this work to proceed. |
|
* |
|
* If you think you need to change this file, please contact @nzakas first. |
|
* |
|
* Thanks in advance for your cooperation. |
|
*/ |
|
|
|
/** |
|
* @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;
|
|
|