crud-cli-auto
v1.0.8
Published
Uma Cli para gerar um CRUD completo (Model, Controller, Service, Routes) a partir de um modelo do Prisma.
Readme
CRUD CLI CLI para gerar automaticamente arquivos de CRUD (Create, Read, Update, Delete) a partir de um schema Prisma. 🚀 Instalação Instalação global npm install -g crud-cli-auto 📋 Pré-requisitos • Node.js 16+ • Projeto com Prisma configurado • Schema Prisma válido 🎯 Uso Gerar CRUD
Gerar a partir do schema padrão (./prisma/schema.prisma)
crud-cli generate
Especificar caminho do schema
crud-cli generate -p ./meu-schema.prisma
Especificar pasta de saída
crud-cli generate -o ./src
Forçar sobrescrita sem confirmação
crud-cli generate --force Atualizar CRUD existente
Atualizar arquivos existentes
crud-cli update
Criar backup antes de atualizar
crud-cli update --backup
Especificar caminhos
crud-cli update -p ./prisma/schema.prisma -o ./src Ajuda crud-cli --help crud-cli generate --help crud-cli update --help 📁 Estrutura gerada Para cada modelo no schema, serão criados: src/ ├── services/ │ ├── userService.js │ └── postService.js ├── controllers/ │ ├── userController.js │ └── postController.js └── routes/ ├── userRoutes.js ├── postRoutes.js └── index.js 📝 Exemplo de schema model User { id Int @id @default(autoincrement()) name String email String @unique posts Post[] }
model Post { id Int @id @default(autoincrement()) title String content String? userId Int user User @relation(fields: [userId], references: [id]) } 🔧 Funcionalidades geradas Services • getAll(options) - Listagem com paginação • getById(id) - Buscar por ID • create(data) - Criar novo registro • update(id, data) - Atualizar registro • delete(id) - Deletar registro • search(query, options) - Busca textual Controllers • Tratamento de erros com chalk colorido • Validação de dados • Responses padronizadas • Logs informativos Routes • Rotas RESTful completas • Documentação inline • Middleware-ready • Health check endpoint 📊 Exemplos de uso das APIs geradas Listar usuários GET /users?page=1&limit=10&orderBy=name&order=asc Buscar usuário GET /users/1 Criar usuário POST /users { "name": "João Silva", "email": "[email protected]" } Buscar usuários GET /users/search?q=joão&page=1&limit=5 ⚙️ Opções de configuração Paginação • page: Página atual (padrão: 1) • limit: Items por página (padrão: 10) • orderBy: Campo para ordenação (padrão: id) • order: Direção da ordenação (asc/desc, padrão: asc) Validação automática • Campos obrigatórios são validados • Tipos de dados são verificados • Constraints únicos são respeitados 📄 Schema de exemplo Crie um arquivo examples/schema.prisma: generator client { provider = "prisma-client-js" }
datasource db { provider = "postgresql" url = env("DATABASE_URL") }
model User { id Int @id @default(autoincrement()) name String email String @unique createdAt DateTime @default(now()) updatedAt DateTime @updatedAt posts Post[] }
model Post { id Int @id @default(autoincrement()) title String content String? published Boolean @default(false) userId Int user User @relation(fields: [userId], references: [id]) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } 🐛 Solução de problemas Erro: Schema não encontrado
Verifique o caminho do schema
ls -la ./prisma/schema.prisma
Use caminho absoluto
crud-cli generate -p /caminho/completo/schema.prisma Erro: Permissões
Executar com sudo (Linux/Mac)
sudo npm install -g crud-cli
Verificar permissões da pasta
ls -la ./src/ 📈 Roadmap • ✅ Geração básica de CRUD • ✅ Atualização de arquivos • ✅ Paginação automática • ✅ Busca textual • ⏳ Templates customizáveis • ⏳ Integração com Swagger • ⏳ Geração de testes • ⏳ Suporte a middleware personalizado 🤝 Contribuição
- Fork o projeto
- Crie uma branch: git checkout -b feature/nova-feature
- Commit: git commit -m 'Adicionar nova feature'
- Push: git push origin feature/nova-feature
- Pull Request 📜 Licença MIT License - veja LICENSE para detalhes.
