{
  "$schema": "https://json-schema.org/schema",
  "$id": "NxRollupProject",
  "cli": "nx",
  "title": "Add Rollup Configuration to a project",
  "description": "Add Rollup Configuration to a project.",
  "type": "object",
  "properties": {
    "project": {
      "type": "string",
      "description": "The name of the project.",
      "$default": {
        "$source": "argv",
        "index": 0
      },
      "x-dropdown": "project",
      "x-prompt": "What is the name of the project to set up a rollup for?",
      "x-priority": "important"
    },
    "compiler": {
      "type": "string",
      "enum": ["babel", "swc", "tsc"],
      "description": "The compiler to use to build source.",
      "default": "babel"
    },
    "main": {
      "type": "string",
      "description": "Path relative to the workspace root for the main entry file. Defaults to '<projectRoot>/src/index.ts'.",
      "alias": "entryFile",
      "x-priority": "important"
    },
    "tsConfig": {
      "type": "string",
      "description": "Path relative to the workspace root for the tsconfig file to build with. Defaults to '<projectRoot>/tsconfig.lib.json'.",
      "x-priority": "important"
    },
    "skipFormat": {
      "description": "Skip formatting files.",
      "type": "boolean",
      "default": false,
      "x-priority": "internal"
    },
    "skipPackageJson": {
      "type": "boolean",
      "default": false,
      "description": "Do not add dependencies to `package.json`.",
      "x-priority": "internal"
    },
    "skipValidation": {
      "type": "boolean",
      "default": false,
      "description": "Do not perform any validation on existing project.",
      "x-priority": "internal"
    },
    "importPath": {
      "type": "string",
      "description": "The library name used to import it, like `@myorg/my-awesome-lib`."
    },
    "external": {
      "type": "array",
      "description": "A list of external modules that will not be bundled (`react`, `react-dom`, etc.).",
      "items": {
        "type": "string"
      }
    },
    "rollupConfig": {
      "type": "string",
      "description": "Path relative to workspace root to a custom rollup file that takes a config object and returns an updated config."
    },
    "buildTarget": {
      "description": "The build target to add.",
      "type": "string",
      "default": "build"
    },
    "format": {
      "description": "The format to build the library (esm or cjs).",
      "type": "array",
      "items": {
        "type": "string",
        "enum": ["esm", "cjs"]
      },
      "default": ["esm"]
    }
  },
  "required": []
}
