Releases: event-driven-io/emmett
0.7.1
📝 What's Changed
- Fixed CommonJs import issues by making event store features tests internal not to expose node packages in bundled Emmett code. It appeared that
tsup
andesbuild
used internally as code bundlers are strippingnode:
prefix for non-node targets, causing compatibility issues for CommonJs modules. Made internal code that was exposing it in code bundle. by @oskardudycz in #61, #59 - Fixed the linter issue with
no-floating-promise
rule in tests. It seems that markingdescribes
andit
with avoid
keyword fixes the issue and still allows floating promises to be caught in the test code. by @oskardudycz in #61, #16
Full Changelog: 0.7.0...0.7.1
0.7.0
🚀 What's New
-
Added in-memory Message Bus implementation. It's a small step towards handling read models and subscriptions in Emmett. It allows publishing events, sending commands, and handling them in memory. Read more in the article How to build an in-memory Message Bus in TypeScript by @oskardudycz in #58
Basic usage:
import { getInMemoryMessageBus } from '@event-driven-io/emmett'; const messageBus = getInMemoryMessageBus();
registering handlers:
messageBus.subscribe( handleGuestStay, 'GuestCheckedIn', 'ChargeRecorded', 'GuestCheckedOut', 'GuestCheckoutFailed', );
And publishing new event:
const event:GuestCheckedOut = { type: 'GuestCheckedOut', data: { guestStayAccountId: 'r9293'; checkedOutAt: new Date(); } >; await messageBus.publish(event);
Full Changelog: 0.6.0...0.7.0
0.6.0
🚀 What's New
- Added WebApi end-to-end tests. Read more in documentation. by @thiagomini in #51
- Updated Express version to satisfy advisory CVE. by @bicatu in #53
- Bumped also Fastify and other dependencies to latest versions by @oskardudycz in #54
📄 Docs
- Added documentation for WebAPI integration and end-to-end testing. Read more in documentation. by @oskardudycz in #52
New Contributors
Full Changelog: 0.5.5...0.6.0
0.5.5
🚀 What's New
- Added Sample: WebApi with Express.js and EventStoreDB. It shows the full flow of WebAPI, unit, integration, and unit tests. See it here. by @oskardudycz in #47, #50
📝 What's Changed
- Added missing
@express/types
peer dependency in Express.js package. That closes outstanding dependencies issues fixed also in 0.5.4 by @oskardudycz in #44 - Made conventional error matching in
problemDetailsMiddleware
to be based onerrorCode
property. TypeScript class comparison with aninstance of
can misbehave depending on the TS settings (see more here). To remove that risk and make generic handling easier, the matching inproblemDetailsMiddleware
was updated to use regular structural matching on the errorCode property. by @oskardudycz in #45 - Nested source codes to allow e2e samples and compatibility tests without sharing
node_modules
. Nested source codes to allow e2e samples and compatibility tests without sharing node_modules. That will allow catching bugs caused by transpilation, bundling, etc. by @oskardudycz in #46, #48, #49
Have questions or ideas? Join our Discord server!
Full Changelog: 0.5.4...0.5.5
0.5.4
📝 What's Changed
- Moved external package dependencies as peer dependencies. As of npm v7,
peerDependencies
are installed by default. That will streamline the configuration without the need to have manual steps or bundle them increasing the package size. @oskardudycz in #43 - Improved compatibility check for ES Modules. Now they don't need to create temp file, but just pipe stderr to the errors matcher. by @oskardudycz in #42
📄 Docs
- Added Contribution Guidelines.
Have questions or ideas? Join our Discord server!
Full Changelog: 0.5.3...0.5.4
0.5.3
📝 What's Changed
- Finally fixed ES Modules compatibility. Updated missing changes to tsup config and fixed mishap in publishing 0.5.2. Yes, I'm sloppy sometimes... Read more in How to tackle compatibility issues in ECMA Script modules (and in general). by @oskardudycz in #41
Have questions or ideas? Join our Discord server!
Full Changelog: 0.5.2...0.5.3
0.5.2
📝 What's Changed
- Fixed compatibility with ES Modules. That one was nasty, but I added test project to ensure compatibility won't be broken again, plus I'll write a blog post about that. Read more in How to tackle compatibility issues in ECMA Script modules (and in general). by @oskardudycz in #39
Have questions or ideas? Join our Discord server!
Full Changelog: 0.5.1...0.5.2
0.5.1
📝 What's Changed
- Replaced dependency on
uuid
package withrandomUUID
fromnode:crypt
. Minor change, but now main Emmett package has zero external dependencies. by @oskardudycz in #35 - Fixed global eslint and tsconfig. As we're getting more external contributors, then this ensures that they'll tackle less weird issues with lining while developing new changes. by @oskardudycz in #36
- Fixed test case to expect correct value instead of the calculated one by @thiagomini in #33
- Removed
.
imports from packages to reduce the chance for circular dependencies issues by @oskardudycz in #37
Have questions or ideas? Join our Discord server!
Full Changelog: 0.5.0...0.5.1
0.5.0
🚀 What's New
- Added new API specification for End-To-End tests. Now you can test fully your Express.js API by using requests both for setup and method calls. by @thiagomini in #29
- Added first version of Fastify WebApi package. See sample API for the reference. It's not yet in full parity with Express.js support (it lacks conventional error mapping and tests), but we'll get there! by @mkubasz in #24
- Added support for time travelling for both InMemoryEventStore and EventStoreDBEventStore. See samples in tests. by @oskardudycz in #32
- Made CommandHandler return not only the next expected version but also the updated state. This can be useful for scenarios where you want to return the updated state from http endpoint without an additional roundtrip to database. by @oskardudycz in #31
📝 What's Changed
New Contributors
Have questions or ideas? Join our Discord server!
Full Changelog: 0.4.0...0.5.0
0.4.0
🚀 What's New
- Added implementation of the EventStoreDB event store. Now you can use Emmett with a real database! by @oskardudycz in #27
- Added TestContainers package with EventStoreDB Test Container. And you can test it e2e using TestContainers by @oskardudycz in #28
Have questions or ideas? Join our Discord server!
Full Changelog: 0.3.0...0.4.0