Skip to content

Commit c94f3f8

Browse files
committed
Adjusted transaction typing in Dumbo to include DBClient type
Thanks to that, transaction's connection will be correctly resolved
1 parent b6bd618 commit c94f3f8

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

src/packages/dumbo/src/core/connections/connection.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ export type CreateConnectionOptions<
4343
close: (client: DbClient) => Promise<void>;
4444
initTransaction: (
4545
connection: () => ConnectionType,
46-
) => (client: Promise<DbClient>) => DatabaseTransaction<ConnectorType>;
46+
) => (
47+
client: Promise<DbClient>,
48+
) => DatabaseTransaction<ConnectorType, DbClient>;
4749
executor: () => Executor;
4850
};
4951

src/packages/dumbo/src/core/connections/transaction.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ export interface DatabaseTransaction<
1414

1515
export interface DatabaseTransactionFactory<
1616
ConnectorType extends string = string,
17+
DbClient = unknown,
1718
> {
18-
transaction: () => DatabaseTransaction<ConnectorType>;
19+
transaction: () => DatabaseTransaction<ConnectorType, DbClient>;
1920

2021
withTransaction: <Result = never>(
2122
handle: (
22-
transaction: DatabaseTransaction<ConnectorType>,
23+
transaction: DatabaseTransaction<ConnectorType, DbClient>,
2324
) => Promise<TransactionResult<Result> | Result>,
2425
) => Promise<Result>;
2526
}
@@ -38,11 +39,12 @@ const toTransactionResult = <Result>(
3839

3940
export const executeInTransaction = async <
4041
ConnectorType extends string = string,
42+
DbClient = unknown,
4143
Result = void,
4244
>(
43-
transaction: DatabaseTransaction<ConnectorType>,
45+
transaction: DatabaseTransaction<ConnectorType, DbClient>,
4446
handle: (
45-
transaction: DatabaseTransaction<ConnectorType>,
47+
transaction: DatabaseTransaction<ConnectorType, DbClient>,
4648
) => Promise<TransactionResult<Result> | Result>,
4749
): Promise<Result> => {
4850
await transaction.begin();
@@ -67,8 +69,8 @@ export const transactionFactoryWithDbClient = <
6769
connect: () => Promise<DbClient>,
6870
initTransaction: (
6971
client: Promise<DbClient>,
70-
) => DatabaseTransaction<ConnectorType>,
71-
): DatabaseTransactionFactory<ConnectorType> => ({
72+
) => DatabaseTransaction<ConnectorType, DbClient>,
73+
): DatabaseTransactionFactory<ConnectorType, DbClient> => ({
7274
transaction: () => initTransaction(connect()),
7375
withTransaction: (handle) =>
7476
executeInTransaction(initTransaction(connect()), handle),

src/packages/dumbo/src/postgres/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export * from './core';
22
export * from './pg';
33
import {
4+
type NodePostgresConnection,
45
type NodePostgresConnector,
56
type NodePostgresPool,
67
type NodePostgresPoolOptions,
@@ -10,4 +11,5 @@ import {
1011
export type PostgresConnector = NodePostgresConnector;
1112
export type PostgresPoolOptions = NodePostgresPoolOptions;
1213
export type PostgresPool = NodePostgresPool;
14+
export type PostgresConnection = NodePostgresConnection;
1315
export const postgresPool = nodePostgresPool;

0 commit comments

Comments
 (0)