@api-buddy/prisma
Version:
Prisma database utilities for API Buddy
104 lines (99 loc) • 2.9 kB
TypeScript
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 };