{
  "version": 2,
  "outputCapture": "direct-nodejs",
  "$schema": "http://json-schema.org/schema",
  "cli": "nx",
  "title": "BuildSWC executor",
  "description": "Builds artifacts using SWC.",
  "type": "object",
  "properties": {
    "main": {
      "type": "string",
      "description": "The name of the main entry-point file."
    },
    "tsConfig": {
      "type": "string",
      "description": "The path to the Typescript configuration file."
    },
    "swcrc": {
      "type": "string",
      "description": "The path to the SWC configuration file. Default: .swcrc"
    },
    "skipTypeCheck": {
      "type": "boolean",
      "description": "Whether to skip TypeScript type checking.",
      "default": false
    },
    "assets": {
      "type": "array",
      "description": "List of static assets.",
      "default": [],
      "items": {
        "$ref": "#/definitions/assetPattern"
      }
    },
    "watch": {
      "type": "boolean",
      "description": "Rebuild upon file changes.",
      "default": false
    },
    "transformers": {
      "type": "array",
      "description": "List of TypeScript Transformer Plugins.",
      "default": [],
      "items": {
        "$ref": "#/definitions/transformerPattern"
      }
    },
    "updateBuildableProjectDepsInPackageJson": {
      "type": "boolean",
      "description": "Whether to update the buildable project dependencies in `package.json`.",
      "default": true
    },
    "buildableProjectDepsInPackageJsonType": {
      "type": "string",
      "description": "When `updateBuildableProjectDepsInPackageJson` is `true`, this adds dependencies to either `peerDependencies` or `dependencies`.",
      "enum": ["dependencies", "peerDependencies"],
      "default": "peerDependencies"
    },
    "debug": {
      "type": "boolean",
      "description": "Display debugging info.",
      "default": false
    },
    "dir": {
      "description": "The path of the directory containing the GraphQL Mesh config.",
      "type": "string"
    },
    "require": {
      "type": "array",
      "description": "Loads specific require.extensions before running the codegen and reading the configuration.",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "outputPath": {
      "type": "string",
      "description": "The output path of the generated files."
    },
    "codegen": {
      "type": "object",
      "properties": {
        "config": {
          "type": "string",
          "description": "Path to GraphQL codegen YAML config file, defaults to `codegen.yml` on the current directory."
        },
        "overwrite": {
          "type": "boolean",
          "description": "Overwrites existing files.",
          "default": true
        },
        "profile": {
          "type": "boolean",
          "description": "Use profiler to measure performance",
          "default": false
        },
        "project": {
          "type": "string",
          "description": "Name of a project in GraphQL Config",
          "default": ""
        },
        "require": {
          "type": "array",
          "description": "Loads specific require.extensions before running the codegen and reading the configuration.",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "silent": {
          "type": "boolean",
          "description": "Suppresses printing errors.",
          "default": false
        },
        "watch": {
          "type": "boolean",
          "description": "Watch for changes and execute generation automatically.",
          "default": false
        }
      }
    }
  },
  "required": ["main", "dir", "outputPath", "tsConfig"],
  "definitions": {
    "assetPattern": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "glob": {
              "type": "string",
              "description": "The pattern to match."
            },
            "input": {
              "type": "string",
              "description": "The input directory path in which to apply 'glob'. Defaults to the project root."
            },
            "ignore": {
              "description": "An array of globs to ignore.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "output": {
              "type": "string",
              "description": "Absolute path within the output."
            }
          },
          "additionalProperties": false,
          "required": ["glob", "input", "output"]
        },
        {
          "type": "string"
        }
      ]
    },
    "transformerPattern": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "options": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "additionalProperties": false,
          "required": ["name"]
        }
      ]
    }
  }
}
