UNPKG

domaindrivenjs

Version:

Composition-based Domain-Driven Design toolkit for JavaScript/TypeScript

21 lines (20 loc) 934 B
/** * Creates a Prisma-based repository adapter * * @template T - Aggregate type * @template P - Prisma model type * @param {object} options - Adapter configuration * @param {any} options.prisma - Prisma client instance * @param {string} options.model - Prisma model name * @param {string} options.identity - Identity field of the aggregate * @param {(aggregate: T) => P} [options.serialize] - Function to convert aggregate to Prisma model * @param {(data: P) => T} [options.deserialize] - Function to convert Prisma model to aggregate * @returns {import('../Base.js').RepositoryAdapter<T>} Prisma repository adapter */ export function createPrismaAdapter<T, P>({ prisma, model, identity, serialize, deserialize, }: { prisma: any; model: string; identity: string; serialize?: ((aggregate: T) => P) | undefined; deserialize?: ((data: P) => T) | undefined; }): import("../Base.js").RepositoryAdapter<T>;