0.4.111 • Published 4 months ago

@api-buddy/prisma v0.4.111

Weekly downloads
-
License
MIT
Repository
github
Last release
4 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

4 months ago

0.4.109

4 months ago

0.4.108

4 months ago

0.4.107

4 months ago

0.4.57

4 months ago

0.0.1

4 months ago