Skip to content

Commit ac6121f

Browse files
authored
Merge pull request #3 from Nestixis/feat/add-possibility-to-pass-database-drive-to-transactional-event-emitter
tweaks to typing
2 parents e9993b5 + 4e00a94 commit ac6121f

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
export interface DatabaseDriverPersister {
2+
persist<T extends object>(entity: T): void;
23

3-
persist<T>(entity: T): void;
4-
5-
remove<T>(entity: T): void;
4+
remove<T extends object>(entity: T): void;
65

76
flush(): Promise<void>;
8-
}
7+
}

packages/core/src/emitter/transactional-event-emitter.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { Inject, Injectable } from '@nestjs/common';
22
import { DATABASE_DRIVER_FACTORY_TOKEN, DatabaseDriverFactory } from '../driver/database-driver.factory';
3-
import { DatabaseDriver } from '../driver/database.driver';
3+
import { DatabaseDriverPersister } from '../driver/database.driver-persister';
44
import { InboxOutboxModuleEventOptions, InboxOutboxModuleOptions, MODULE_OPTIONS_TOKEN } from '../inbox-outbox.module-definition';
55
import { IListener } from '../listener/contract/listener.interface';
66
import { ListenerDuplicateNameException } from '../listener/exception/listener-duplicate-name.exception';
77
import { INBOX_OUTBOX_EVENT_PROCESSOR_TOKEN, InboxOutboxEventProcessorContract } from '../processor/inbox-outbox-event-processor.contract';
88
import { EVENT_CONFIGURATION_RESOLVER_TOKEN, EventConfigurationResolverContract } from '../resolver/event-configuration-resolver.contract';
99
import { InboxOutboxEvent } from './contract/inbox-outbox-event.interface';
10-
import { DatabaseDriverPersister } from '../driver/database.driver-persister';
1110

1211
export enum TransactionalEventEmitterOperations {
1312
persist = 'persist',
@@ -29,7 +28,7 @@ export class TransactionalEventEmitter {
2928
event: InboxOutboxEvent,
3029
entities: {
3130
operation: TransactionalEventEmitterOperations;
32-
entity: any;
31+
entity: object;
3332
}[],
3433
customDatabaseDriverPersister?: DatabaseDriverPersister,
3534
): Promise<void> {
@@ -42,7 +41,12 @@ export class TransactionalEventEmitter {
4241
const databaseDriver = this.databaseDriverFactory.create(this.eventConfigurationResolver);
4342
const currentTimestamp = new Date().getTime();
4443

45-
const inboxOutboxTransportEvent = databaseDriver.createInboxOutboxTransportEvent(event.name, event, currentTimestamp + eventOptions.listeners.expiresAtTTL, currentTimestamp + eventOptions.listeners.readyToRetryAfterTTL);
44+
const inboxOutboxTransportEvent = databaseDriver.createInboxOutboxTransportEvent(
45+
event.name,
46+
event,
47+
currentTimestamp + eventOptions.listeners.expiresAtTTL,
48+
currentTimestamp + eventOptions.listeners.readyToRetryAfterTTL,
49+
);
4650

4751
const persister = customDatabaseDriverPersister ?? databaseDriver;
4852

0 commit comments

Comments
 (0)