0.4.111 • Published 10 months ago

@api-buddy/prisma v0.4.111

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@api-buddy/prisma

A powerful Prisma extension for API Buddy that provides type-safe database access, automatic CRUD API generation, and enhanced developer experience for Next.js applications.

Installation

pnpm add @api-buddy/prisma @prisma/client

Features

  • 🔄 Automatic CRUD API Generation - Generate RESTful API routes from your Prisma schema
  • 🛡️ Type-Safe Database Access - Full TypeScript support with zero-config type safety
  • 📊 Built-in Logging - Comprehensive logging for all database operations
  • 🚀 Next.js Integration - Seamless integration with Next.js API routes and Server Components
  • Performance Optimized - Built with performance and developer experience in mind

Basic Usage

1. Initialize the Prisma Service

import { PrismaService } from '@api-buddy/prisma';

// Initialize with your Prisma schema
const prisma = new PrismaService({
  log: ['query', 'info', 'warn', 'error'],
});

// Use like regular Prisma Client
const users = await prisma.user.findMany();

2. Generate CRUD APIs (CLI)

Automatically generate RESTful API routes for your Prisma models:

npx @api-buddy/prisma generate:routes --output src/app/api

This will create RESTful API endpoints for all your Prisma models in the specified directory.

3. Use in Next.js API Routes

// app/api/users/route.ts
import { prisma } from '@/lib/prisma';
import { NextResponse } from 'next/server';

export async function GET() {
  const users = await prisma.user.findMany();
  return NextResponse.json(users);
}

export async function POST(request: Request) {
  const data = await request.json();
  const user = await prisma.user.create({ data });
  return NextResponse.json(user, { status: 201 });
}

Advanced Usage

Generate Routes for Specific Models

npx @api-buddy/prisma generate:routes --models User,Post --output src/app/api

Exclude Models from Generation

npx @api-buddy/prisma generate:routes --exclude User,Session --output src/app/api

Add Authentication to Routes

npx @api-buddy/prisma generate:routes --auth --output src/app/api

API Reference

PrismaService

Extends the standard PrismaClient with additional features:

const prisma = new PrismaService({
  // Standard Prisma options
  log: ['query', 'info', 'warn', 'error'],
  
  // Custom logger (optional)
  logger: {
    info: (message) => console.log(`[INFO] ${message}`),
    error: (message, error) => console.error(`[ERROR] ${message}`, error)
  }
});

// Generate CRUD routes programmatically
await prisma.generateCRUDRoutes({
  outputDir: 'src/app/api',
  models: ['User', 'Post'],
  exclude: ['Session', 'Account'],
  auth: {
    required: true,
    userIdField: 'id'
  }
});

Configuration

CLI Options

Usage: api-buddy-prisma generate:routes [options]

Generate CRUD routes from your Prisma schema

Options:
  -o, --output <dir>  Output directory for generated routes (default: "src/app/api")
  --models <models>    Specific models to generate routes for (comma-separated)
  --exclude <models>   Models to exclude from route generation (comma-separated)
  --auth               Add authentication middleware to routes
  -h, --help           Display help for command

License

MIT

0.4.111

10 months ago

0.4.109

10 months ago

0.4.108

10 months ago

0.4.107

10 months ago

0.4.57

10 months ago

0.0.1

10 months ago