{
  "name": "agrippa",
  "subcommands": [
    {
      "name": "init",
      "description": "Generates a basic .agripparc.json file, with some default values for options that agrippa accepts"
    },
    {
      "name": "generate",
      "aliases": [
        "gen"
      ],
      "description": "This is the core of the CLI - this command generates a new React component, based on the name and options passed to it",
      "options": [
        {
          "names": [
            "--props"
          ],
          "description": "Determines which prop declaration/validation solution to generate. Defaults to `ts` if `typescript` flag is `true`, `none` otherwise",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "ts",
              "jsdoc",
              "prop-types",
              "none"
            ]
          }
        },
        {
          "names": [
            "--children"
          ],
          "description": "Whether the component is meant to have children or not. Defaults to `false`",
          "takes_arg": true
        },
        {
          "names": [
            "--typescript",
            "--ts"
          ],
          "description": "Option to generate Typescript components, defaults to `true` if the CLI manages to find a `tsconfig.json` file, false otherwise",
          "takes_arg": true
        },
        {
          "names": [
            "--import-react"
          ],
          "description": "Option to import React at the top of the component. Defaults to `true` if the CLI manages to find a `tsconfig.json` file and it has a `jsx` field under `compilerOptions` with `react-jsx` or `react-jsx",
          "takes_arg": true
        },
        {
          "names": [
            "--export-type"
          ],
          "description": "Whether to export the component as a named export or a default export. Defaults to `named`",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "named",
              "default"
            ]
          }
        },
        {
          "names": [
            "--declaration"
          ],
          "description": "Whether to declare the component as a `const` with an arrow function, or as a `function` declaration. Defaults to `const`",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "const",
              "function"
            ]
          }
        },
        {
          "names": [
            "--memo"
          ],
          "description": "Generates a component as a memo component. Defaults to `false`",
          "takes_arg": true
        },
        {
          "names": [
            "--react-native"
          ],
          "description": "Generates a React Native component. Defaults to `true` if `react-native` is a dependency in the project's `package.json`, `false` otherwise",
          "takes_arg": true
        },
        {
          "names": [
            "--styling"
          ],
          "description": "Which styling solution to generate. Defaults to `none`",
          "takes_arg": true,
          "arg": {
            "suggestions": [
              "none",
              "css",
              "scss",
              "jss",
              "mui",
              "react-native"
            ]
          }
        },
        {
          "names": [
            "--styling-module"
          ],
          "description": "Whether to generate a scoped `module` stylesheet. This option is only relevant for `css` or `scss` styling, and will be ignored for other values. Defaults to `true`",
          "takes_arg": true
        },
        {
          "names": [
            "--base-dir"
          ],
          "description": "Path to a base directory which components should be generated inside of (directly or nested). Defaults to the current working directory",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "is_variadic": true,
            "template": "folders"
          }
        },
        {
          "names": [
            "--dest",
            "--destination"
          ],
          "description": "Allows the user to generate the component at a path relative to `baseDir`. It's mostly used to augment or modify the generation path in the command-line when creating the component itself. `dest` is r",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "is_variadic": true,
            "template": "folders"
          },
          "is_required": true
        },
        {
          "names": [
            "--allow-outside-base"
          ],
          "description": "Overrides default Agrippa behaviour to allow components to be specified outside `baseDir`. Defaults to current working directory",
          "takes_arg": true,
          "arg": {
            "name": "path",
            "is_variadic": true,
            "template": "folders"
          }
        },
        {
          "names": [
            "--flat"
          ],
          "description": "By default, Agrippa generates a dedicated directory for the generated component; this directory has the same name as the component, and will contain the component file (as `index.tsx` or `index.jsx`),",
          "takes_arg": true
        },
        {
          "names": [
            "--separate-index"
          ],
          "description": "In the `separateIndex` generation scheme, Agrippa creates one file for the component's code, and one `index` file, whose purpose is to allow importing exports from the component's directory elegantly ",
          "takes_arg": true
        },
        {
          "names": [
            "--post-command",
            "--postCommand"
          ],
          "description": "Allows a custom command to be run after having generated a component. This allows for some cool functionality, such as opening an IDE at the newly generated files automatically or linting them. Defaul",
          "takes_arg": true
        },
        {
          "names": [
            "--overwrite"
          ],
          "description": "By default, Agrippa prevents the generation of a component over an existing components, to prevent a loss of code. `--overwrite` tells Agrippa to replace existing files, if any are found. Defaults to ",
          "takes_arg": true
        },
        {
          "names": [
            "--debug"
          ],
          "description": "The `debug` flag makes Agrippa print out additional debug information. It's quite useful when debugging. Defaults to `false`",
          "takes_arg": true
        }
      ],
      "args": [
        {
          "name": "component"
        }
      ]
    }
  ],
  "args": [
    {
      "name": "component's name"
    }
  ]
}
