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