Skip to content

Commit

Permalink
chore: add some blank lines
Browse files Browse the repository at this point in the history
  • Loading branch information
B4nan committed Dec 17, 2020
1 parent 893c701 commit dbd96aa
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
10 changes: 5 additions & 5 deletions packages/core/src/events/TransactionEventBroadcaster.ts
Expand Up @@ -5,13 +5,13 @@ import { UnitOfWork } from '../unit-of-work';

export class TransactionEventBroadcaster {

constructor(
private entityManager: EntityManager,
private uow?: UnitOfWork
) {}
private readonly eventManager = this.em.getEventManager();

constructor(private readonly em: EntityManager,
private readonly uow?: UnitOfWork) {}

async dispatchEvent(event: TransactionEventType, transaction?: Transaction) {
await this.entityManager.getEventManager().dispatchEvent(event, { em: this.entityManager, transaction, uow: this.uow });
await this.eventManager.dispatchEvent(event, { em: this.em, transaction, uow: this.uow });
}

}
11 changes: 11 additions & 0 deletions packages/knex/src/AbstractSqlConnection.ts
Expand Up @@ -41,9 +41,11 @@ export abstract class AbstractSqlConnection extends Connection {

async transactional<T>(cb: (trx: Transaction<KnexTransaction>) => Promise<T>, ctx?: Transaction<KnexTransaction>, eventBroadcaster?: TransactionEventBroadcaster): Promise<T> {
const trx = await this.begin(ctx, eventBroadcaster);

try {
const ret = await cb(trx);
await this.commit(trx, eventBroadcaster);

return ret;
} catch (error) {
await this.rollback(trx, eventBroadcaster);
Expand All @@ -55,33 +57,42 @@ export abstract class AbstractSqlConnection extends Connection {
if (!ctx) {
await eventBroadcaster?.dispatchEvent(EventType.beforeTransactionStart);
}

const trx = await (ctx || this.client).transaction();

if (!ctx) {
await eventBroadcaster?.dispatchEvent(EventType.afterTransactionStart, trx);
} else {
trx[parentTransactionSymbol] = ctx;
}

return trx;
}

async commit(ctx: KnexTransaction, eventBroadcaster?: TransactionEventBroadcaster): Promise<void> {
const runTrxHooks = isRootTransaction(ctx);

if (runTrxHooks) {
await eventBroadcaster?.dispatchEvent(EventType.beforeTransactionCommit, ctx);
}

ctx.commit();
await ctx.executionPromise; // https://github.com/knex/knex/issues/3847#issuecomment-626330453

if (runTrxHooks) {
await eventBroadcaster?.dispatchEvent(EventType.afterTransactionCommit, ctx);
}
}

async rollback(ctx: KnexTransaction, eventBroadcaster?: TransactionEventBroadcaster): Promise<void> {
const runTrxHooks = isRootTransaction(ctx);

if (runTrxHooks) {
await eventBroadcaster?.dispatchEvent(EventType.beforeTransactionRollback, ctx);
}

await ctx.rollback();

if (runTrxHooks) {
await eventBroadcaster?.dispatchEvent(EventType.afterTransactionRollback, ctx);
}
Expand Down
3 changes: 3 additions & 0 deletions packages/mongodb/src/MongoConnection.ts
Expand Up @@ -150,9 +150,11 @@ export class MongoConnection extends Connection {

async transactional<T>(cb: (trx: Transaction<ClientSession>) => Promise<T>, ctx?: Transaction<ClientSession>, eventBroadcaster?: TransactionEventBroadcaster): Promise<T> {
const session = await this.begin(ctx, eventBroadcaster);

try {
const ret = await cb(session);
await this.commit(session, eventBroadcaster);

return ret;
} catch (error) {
await this.rollback(session, eventBroadcaster);
Expand All @@ -167,6 +169,7 @@ export class MongoConnection extends Connection {
/* istanbul ignore next */
await eventBroadcaster?.dispatchEvent(EventType.beforeTransactionStart);
}

const session = ctx || this.client.startSession();
session.startTransaction();
this.logQuery('db.begin();');
Expand Down

0 comments on commit dbd96aa

Please sign in to comment.