@@ -14,12 +14,13 @@ export interface DatabaseTransaction<
14
14
15
15
export interface DatabaseTransactionFactory <
16
16
ConnectorType extends string = string ,
17
+ DbClient = unknown ,
17
18
> {
18
- transaction : ( ) => DatabaseTransaction < ConnectorType > ;
19
+ transaction : ( ) => DatabaseTransaction < ConnectorType , DbClient > ;
19
20
20
21
withTransaction : < Result = never > (
21
22
handle : (
22
- transaction : DatabaseTransaction < ConnectorType > ,
23
+ transaction : DatabaseTransaction < ConnectorType , DbClient > ,
23
24
) => Promise < TransactionResult < Result > | Result > ,
24
25
) => Promise < Result > ;
25
26
}
@@ -38,11 +39,12 @@ const toTransactionResult = <Result>(
38
39
39
40
export const executeInTransaction = async <
40
41
ConnectorType extends string = string ,
42
+ DbClient = unknown ,
41
43
Result = void ,
42
44
> (
43
- transaction : DatabaseTransaction < ConnectorType > ,
45
+ transaction : DatabaseTransaction < ConnectorType , DbClient > ,
44
46
handle : (
45
- transaction : DatabaseTransaction < ConnectorType > ,
47
+ transaction : DatabaseTransaction < ConnectorType , DbClient > ,
46
48
) => Promise < TransactionResult < Result > | Result > ,
47
49
) : Promise < Result > => {
48
50
await transaction . begin ( ) ;
@@ -67,8 +69,8 @@ export const transactionFactoryWithDbClient = <
67
69
connect : ( ) => Promise < DbClient > ,
68
70
initTransaction : (
69
71
client : Promise < DbClient > ,
70
- ) => DatabaseTransaction < ConnectorType > ,
71
- ) : DatabaseTransactionFactory < ConnectorType > => ( {
72
+ ) => DatabaseTransaction < ConnectorType , DbClient > ,
73
+ ) : DatabaseTransactionFactory < ConnectorType , DbClient > => ( {
72
74
transaction : ( ) => initTransaction ( connect ( ) ) ,
73
75
withTransaction : ( handle ) =>
74
76
executeInTransaction ( initTransaction ( connect ( ) ) , handle ) ,
0 commit comments