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 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

# Run CLI in development
npm run dev make:model User

# Build for production
npm run build