UNPKG

@nestjs-cls/transactional-adapter-prisma

Version:

A Prisma adapter for @nestjs-cls/transactional

29 lines 1.73 kB
import { TransactionalAdapter } from '@nestjs-cls/transactional'; import { PrismaClient } from '@prisma/client'; interface AnyTransactionClient { $transaction: (fn: (client: any) => Promise<any>, options?: any) => any; } export type PrismaTransactionalClient<TClient extends AnyTransactionClient = PrismaClient> = Parameters<Parameters<TClient['$transaction']>[0]>[0]; export type PrismaTransactionOptions<TClient extends AnyTransactionClient = PrismaClient> = Parameters<TClient['$transaction']>[1]; export interface PrismaTransactionalAdapterOptions<TClient extends AnyTransactionClient = PrismaClient> { /** * The injection token for the PrismaClient instance. */ prismaInjectionToken: any; /** * Default options for the transaction. These will be merged with any transaction-specific options * passed to the `@Transactional` decorator or the `TransactionHost#withTransaction` method. */ defaultTxOptions?: Partial<PrismaTransactionOptions<TClient>>; } export declare class TransactionalAdapterPrisma<TClient extends AnyTransactionClient = PrismaClient> implements TransactionalAdapter<TClient, PrismaTransactionalClient<TClient>, PrismaTransactionOptions<TClient>> { connectionToken: any; defaultTxOptions?: Partial<PrismaTransactionOptions<TClient>>; constructor(options: PrismaTransactionalAdapterOptions<TClient>); optionsFactory: (prisma: TClient) => { wrapWithTransaction: (options: PrismaTransactionOptions, fn: (...args: any[]) => Promise<any>, setClient: (client?: PrismaTransactionalClient<TClient>) => void) => Promise<any>; getFallbackInstance: () => TClient; }; } export {}; //# sourceMappingURL=transactional-adapter-prisma.d.ts.map