@naxodev/gonx
Version:
Modern Nx plugin to use Go in a Nx workspace
199 lines (198 loc) • 4.52 kB
JSON
{
"$schema": "https://json-schema.org/schema",
"$id": "@naxodev/gonx:go-blueprint",
"title": "Uses Go Blueprint to generate multiple templates",
"type": "object",
"properties": {
"directory": {
"description": "The directory of the new application.",
"type": "string",
"$default": {
"$source": "argv",
"index": 0
},
"x-prompt": "Which directory do you want to create the application in?"
},
"name": {
"description": "The name of the application.",
"type": "string",
"pattern": "^[a-zA-Z][^:]*$",
"x-priority": "important"
},
"tags": {
"description": "Add tags to the project (used for linting)",
"type": "string",
"x-priority": "important"
},
"skipFormat": {
"description": "Skip formatting files",
"type": "boolean",
"default": false
},
"addGoDotWork": {
"description": "Add this project to go.work file",
"type": "boolean",
"default": false
},
"framework": {
"description": "Framework to use",
"type": "string",
"enum": [
"chi",
"gin",
"fiber",
"gorilla/mux",
"httprouter",
"standard-library",
"echo"
],
"x-prompt": {
"message": "Which web framework would you like to use?",
"type": "list",
"items": [
{
"value": "chi",
"label": "Chi"
},
{
"value": "gin",
"label": "Gin"
},
{
"value": "fiber",
"label": "Fiber"
},
{
"value": "gorilla/mux",
"label": "Gorilla/mux"
},
{
"value": "httprouter",
"label": "Httprouter"
},
{
"value": "standard-library",
"label": "Standard-library"
},
{
"value": "echo",
"label": "Echo"
}
]
}
},
"driver": {
"description": "Database drivers to use",
"type": "string",
"enum": [
"mysql",
"postgres",
"sqlite",
"mongo",
"redis",
"scylla",
"none"
],
"x-prompt": {
"message": "Which database driver would you like to use?",
"type": "list",
"items": [
{
"value": "mysql",
"label": "Mysql"
},
{
"value": "postgres",
"label": "Postgres"
},
{
"value": "sqlite",
"label": "Sqlite"
},
{
"value": "mongo",
"label": "Mongo"
},
{
"value": "redis",
"label": "Redis"
},
{
"value": "scylla",
"label": "Scylla"
},
{
"value": "none",
"label": "None"
}
]
}
},
"feature": {
"description": "Advanced feature to use",
"type": "array",
"enum": [
"react",
"htmx",
"githubaction",
"websocket",
"tailwind",
"docker"
],
"x-prompt": {
"message": "Which advanced features would you like to include?",
"type": "multiselect",
"items": [
{
"value": "react",
"label": "React"
},
{
"value": "htmx",
"label": "Htmx"
},
{
"value": "githubaction",
"label": "Githubaction"
},
{
"value": "websocket",
"label": "Websocket"
},
{
"value": "tailwind",
"label": "Tailwind"
},
{
"value": "docker",
"label": "Docker"
}
]
}
},
"git": {
"description": "Git to use",
"type": "string",
"enum": ["commit", "stage", "skip"],
"x-prompt": {
"message": "How would you like to handle git?",
"type": "list",
"items": [
{
"value": "commit",
"label": "Commit"
},
{
"value": "stage",
"label": "Stage"
},
{
"value": "skip",
"label": "Skip"
}
]
}
}
},
"required": ["directory", "driver", "framework", "git"]
}