Feat/ add possibility to pass your own database driver to transactional event emitter #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request includes several changes to improve the database driver interface, enhance the event emitter functionality, and update the event interface. The most important changes include modifying the
DatabaseDriver
interface, adding an overloadedemit
method to theTransactionalEventEmitter
, and updating theInboxOutboxEvent
class.Enhancements to database driver interface:
packages/core/src/driver/database.driver.ts
: Changed thepersist
andremove
methods to be synchronous by removing thePromise
return type.Improvements to event emitter functionality:
packages/core/src/emitter/transactional-event-emitter.ts
: Added an overloadedemit
method that accepts an optionalDatabaseDriver
parameter, allowing the caller to specify a database driver.packages/core/src/emitter/transactional-event-emitter.ts
: Imported theDatabaseDriver
interface to ensure type safety for the newemit
method.Updates to event interface:
packages/core/src/emitter/contract/inbox-outbox-event.interface.ts
: Changed thename
property to be an abstract readonly property, ensuring that subclasses define a unique name for the event.