Getting Started
CLI
A Laravel Artisan-inspired CLI tool for generating CRUD backend files in Nuxt.
Installation
npm install -g nuxt-crud-cli
Usage
Generate a Model
Create a new Drizzle schema file:
# 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 fieldsnumber
,int
,integer
- Integer fieldsfloat
,real
- Float fieldsboolean
,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 itemsserver/api/v1/{resource}/[id].ts
- Get single itemserver/api/v1/{resource}/create.post.ts
- Create new itemserver/api/v1/{resource}/update.put.ts
- Update existing itemserver/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
# Run CLI in development
npm run dev make:model User
# Build for production
npm run build