UNPKG

@api-buddy/prisma

Version:

Prisma database utilities for API Buddy

104 lines (99 loc) 2.9 kB
import { PrismaClient as PrismaClient$1 } from '@prisma/client'; export * from '@prisma/client'; type ModelName = string; type PrismaClient = PrismaClient$1 & { $connect: () => Promise<void>; $disconnect: () => Promise<void>; }; interface GenerateCRUDOptions { outputDir: string; models?: ModelName[]; exclude?: ModelName[]; auth?: { required?: boolean; userIdField?: string; }; } declare class CRUDGenerator { private prisma; constructor(prisma: PrismaClient); private getModelNames; private getModelFields; private generateRouteContent; generateCRUDRoutes(options: GenerateCRUDOptions): Promise<void>; } declare function generateCRUDRoutes(prisma: PrismaClient, options: GenerateCRUDOptions): Promise<void>; /** * @package @api-buddy/prisma * Prisma database utilities for API Buddy */ declare module '@prisma/client' { interface PrismaClient { $connect: () => Promise<void>; $disconnect: () => Promise<void>; generateCRUDRoutes: (options: { outputDir: string; models?: ModelName[]; exclude?: ModelName[]; auth?: { required?: boolean; userIdField?: string; }; }) => Promise<void>; } } type PrismaClientWithExtensions = PrismaClient$1 & { crud: CRUDGenerator; generateCRUDRoutes: (options: { outputDir: string; models?: ModelName[]; exclude?: ModelName[]; auth?: { required?: boolean; userIdField?: string; }; }) => Promise<void>; }; /** * Extended Prisma client with API Buddy specific functionality */ declare class PrismaService implements PrismaClientWithExtensions { private prisma; private logger; /** * CRUD generator instance for this client */ readonly crud: CRUDGenerator; $connect: () => Promise<void>; $disconnect: () => Promise<void>; [key: string]: any; constructor(logger?: any); /** * Connect to the database with error handling */ connect(): Promise<void>; /** * Disconnect from the database */ disconnect(): Promise<void>; /** * Generate CRUD routes for your Prisma models * @param options Generation options */ generateCRUDRoutes(options: { outputDir: string; models?: ModelName[]; exclude?: ModelName[]; auth?: { required?: boolean; userIdField?: string; }; }): Promise<void>; } /** * Create a new Prisma service instance * @param logger Optional logger implementation * @returns PrismaService instance with CRUD capabilities */ declare function createPrismaService(logger?: any): PrismaService; export { CRUDGenerator, type ModelName, PrismaService, createPrismaService, PrismaService as default, generateCRUDRoutes };