| /* |
| * 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; |