{
  "$schema": "http://json-schema.org/draft-07/schema",
  "title": "ESLint Target",
  "description": "ESLint target options for Build Facade.",
  "type": "object",
  "properties": {
    "eslintConfig": {
      "type": "string",
      "description": "The name of the ESLint configuration file."
    },
    "fix": {
      "type": "boolean",
      "description": "Fixes linting errors (may overwrite linted files).",
      "default": false
    },
    "cache": {
      "type": "boolean",
      "description": "Only check changed files.",
      "default": false
    },
    "cacheLocation": {
      "type": "string",
      "description": "Path to the cache file or directory."
    },
    "outputFile": {
      "type": "string",
      "description": "File to write report to instead of the console."
    },
    "cacheStrategy": {
      "type": "string",
      "description": "Strategy to use for detecting changed files in the cache.",
      "default": "metadata",
      "enum": ["metadata", "content"]
    },
    "force": {
      "type": "boolean",
      "description": "Succeeds even if there was linting errors.",
      "default": false
    },
    "quiet": {
      "type": "boolean",
      "description": "Report errors only.",
      "default": false
    },
    "maxWarnings": {
      "type": "number",
      "description": "Number of warnings to trigger nonzero exit code.",
      "default": -1
    },
    "silent": {
      "type": "boolean",
      "description": "Hide output text.",
      "default": false
    },
    "lintFilePatterns": {
      "type": "array",
      "description": "One or more files/dirs/globs to pass directly to ESLint's `lintFiles()` method.",
      "default": [],
      "items": {
        "type": "string"
      }
    },
    "format": {
      "type": "string",
      "description": "ESLint Output formatter (https://eslint.org/docs/user-guide/formatters).",
      "default": "stylish",
      "anyOf": [
        {
          "enum": [
            "stylish",
            "compact",
            "codeframe",
            "unix",
            "visualstudio",
            "table",
            "checkstyle",
            "html",
            "jslint-xml",
            "json",
            "json-with-metadata",
            "junit",
            "tap"
          ]
        },
        { "minLength": 1 }
      ]
    },
    "ignorePath": {
      "type": "string",
      "description": "The path of the `.eslintignore` file."
    },
    "noEslintrc": {
      "type": "boolean",
      "description": "NOTE: eslintrc config only. The equivalent of the `--no-eslintrc` flag on the ESLint CLI, it is false by default",
      "default": false
    },
    "noConfigLookup": {
      "type": "boolean",
      "description": "NOTE: flat config only. The equivalent of the `--no-config-lookup` flag on the ESLint CLI, it is false by default",
      "default": false
    },
    "rulesdir": {
      "type": "array",
      "description": "The equivalent of the `--rulesdir` flag on the ESLint CLI, it is an empty array by default",
      "default": [],
      "items": {
        "type": "string"
      }
    },
    "resolvePluginsRelativeTo": {
      "type": "string",
      "description": "The equivalent of the `--resolve-plugins-relative-to` flag on the ESLint CLI"
    },
    "reportUnusedDisableDirectives": {
      "type": "string",
      "enum": ["off", "warn", "error"],
      "description": "The equivalent of the `--report-unused-disable-directives` flag on the ESLint CLI."
    }
  },
  "additionalProperties": false,
  "required": ["lintFilePatterns"]
}
