{
  "$schema": "https://json-schema.org/schema",
  "cli": "nx",
  "$id": "Vitest",
  "title": "Vitest",
  "type": "object",
  "description": "Generate a Vitest setup for a project.",
  "properties": {
    "project": {
      "type": "string",
      "description": "The name of the project to test.",
      "$default": {
        "$source": "projectName"
      }
    },
    "uiFramework": {
      "type": "string",
      "enum": ["angular", "react", "none"],
      "description": "UI framework to use with vitest."
    },
    "inSourceTests": {
      "type": "boolean",
      "default": false,
      "description": "Do not generate separate spec files and set up in-source testing."
    },
    "skipViteConfig": {
      "type": "boolean",
      "default": false,
      "description": "Skip generating a vite config file."
    },
    "coverageProvider": {
      "type": "string",
      "enum": ["v8", "istanbul", "custom"],
      "default": "v8",
      "description": "Coverage provider to use."
    },
    "testTarget": {
      "type": "string",
      "description": "The test target of the project to be transformed to use the @nx/vite:test executor.",
      "hidden": true
    },
    "skipFormat": {
      "description": "Skip formatting files.",
      "type": "boolean",
      "default": false,
      "x-priority": "internal"
    },
    "testEnvironment": {
      "description": "The vitest environment to use. See https://vitest.dev/config/#environment.",
      "type": "string",
      "enum": ["node", "jsdom", "happy-dom", "edge-runtime"]
    },
    "runtimeTsconfigFileName": {
      "type": "string",
      "description": "The name of the project's tsconfig file that includes the runtime source files. If not provided, it will default to `tsconfig.lib.json` for libraries and `tsconfig.app.json` for applications."
    },
    "compiler": {
      "type": "string",
      "enum": ["babel", "swc"],
      "default": "babel",
      "description": "The compiler to use"
    }
  },
  "required": ["project"]
}
