Spaces:
Paused
Paused
| /** | |
| * @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; | |