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.
		
		
		
		
		
			
		
			
				
					
					
						
							80 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							80 lines
						
					
					
						
							2.2 KiB
						
					
					
				/** | 
						|
 * @fileoverview Defines a schema for configs. | 
						|
 * @author Sylvan Mably | 
						|
 */ | 
						|
 | 
						|
"use strict"; | 
						|
 | 
						|
const baseConfigProperties = { | 
						|
    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;
 | 
						|
 |