nuxt-crud-cli
Version:
CLI tool for generating CRUD backend files in Nuxt 3 projects
71 lines (55 loc) • 1.95 kB
Markdown
# Nuxt CRUD CLI
A Laravel Artisan-inspired CLI tool for generating CRUD backend files in Nuxt 3 projects with Drizzle ORM and SQLite.
# Installation
```bash
npm install -g nuxt-crud-cli
```
## Usage
### Generate a Model
Create a new Drizzle schema file:
```bash
# Basic model
nuxt-crud make:model User
# Model with fields
nuxt-crud make:model User -- --fields="name:string,email:string|unique,age:number"
```
Field types supported:
- `string`, `text` - Text fields
- `number`, `int`, `integer` - Integer fields
- `float`, `real` - Float fields
- `boolean`, `bool` - Boolean fields (stored as integer in SQLite)
- `date`, `datetime`, `timestamp` - Date fields (stored as ISO strings)
- `json` - JSON fields
Field modifiers:
- `|required` - Makes field required
- `|unique` - Makes field unique
This generates:
- `server/api/v1/{resource}/index.ts` - List all items
- `server/api/v1/{resource}/[id].ts` - Get single item
- `server/api/v1/{resource}/create.post.ts` - Create new item
- `server/api/v1/{resource}/update.put.ts` - Update existing item
- `server/api/v1/{resource}/validation/` - Validation schemas using drizzle-zod
## Generated Structure
```
server/
├── api/v1/{resource}/
│ ├── index.ts # GET /api/v1/{resource}
│ ├── [id].ts # GET /api/v1/{resource}/{id}
│ ├── create.post.ts # POST /api/v1/{resource}/create
│ ├── update.put.ts # PUT /api/v1/{resource}/update/{id}
│ └── validation/
│ ├── create{Model}Schema.ts
│ ├── update{Model}Schema.ts
│ ├── {model}ResponseSchema.ts
│ └── {model}ListResponseSchema.ts
└── database/schema/
├── index.ts # Schema exports
└── {model}.ts # Drizzle schema definition
```
## Development
```bash
# Run CLI in development
npm run dev make:model User
# Build for production
npm run build
```