Skip to content

Commit

Permalink
feat: enable setting custom prisma client type for adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
Papooch committed Feb 22, 2024
1 parent bebefb6 commit a2ab89f
Showing 1 changed file with 17 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import { TransactionalAdapter } from '@nestjs-cls/transactional';
import { PrismaClient } from '@prisma/client';

export type PrismaTransactionalClient = Parameters<
Parameters<PrismaClient['$transaction']>[0]
>[0];
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 = Parameters<
PrismaClient['$transaction']
>[1];
export type PrismaTransactionOptions<
TClient extends AnyTransactionClient = PrismaClient,
> = Parameters<TClient['$transaction']>[1];

export interface PrismaTransactionalAdapterOptions {
/**
Expand All @@ -16,12 +20,13 @@ export interface PrismaTransactionalAdapterOptions {
prismaInjectionToken: any;
}

export class TransactionalAdapterPrisma
implements
export class TransactionalAdapterPrisma<
TClient extends AnyTransactionClient = PrismaClient,
> implements
TransactionalAdapter<
PrismaClient,
PrismaTransactionalClient,
PrismaTransactionOptions
TClient,
PrismaTransactionalClient<TClient>,
PrismaTransactionOptions<TClient>
>
{
connectionToken: any;
Expand All @@ -30,7 +35,7 @@ export class TransactionalAdapterPrisma
this.connectionToken = options.prismaInjectionToken;
}

optionsFactory = (prisma: PrismaClient) => ({
optionsFactory = (prisma: TClient) => ({
wrapWithTransaction: async (
options: PrismaTransactionOptions,
fn: (...args: any[]) => Promise<any>,
Expand Down

0 comments on commit a2ab89f

Please sign in to comment.