Releases: event-driven-io/emmett
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
0.3.0
🚀 What's New
- Added Api Specification for integration testing. In Emmett, you get lightweight abstractions like event store, command handlers, etc. Event Sourcing gives repeatable patterns for handling business. That can be useful for unit tests. Now you can do the same to test the full command flow. Such tests can be written in the Hexagonal Architecture style by replacing the external dependencies with some in-memory implementation or just going fully end-to-end. The benefit of that is that you can test the whole pipeline (middleware, auth, etc.), even Open Telemetry traces (like Martin Thwaites showed in his talks). by @oskardudycz in #25
Have questions or ideas? Join our Discord server!
Full Changelog: 0.2.0...0.3.0
0.2.0
🚀 What's New
- Added and released the package to build WebApis with Express.js. - Now, you can implement fully-featured WebApi on top of event-sourced business logic. All of that with a minimum boilerplate and features like Problem Details for error handling, optimistic concurrency with ETags, etc. Read more in the Getting Started Guide. By @oskardudycz in #15, #17, #19, #20
- Refactor/use node native test runners. That's mostly for helping smoother the CI experience. Jest seems to be abandonware, so we decided to try native test runners. Check the related PR to see how to configure that in your project by @thiagomini in #14
Join also our newly set up Discord server!
New Contributors
- @thiagomini made their first contribution in #14
Full Changelog: 0.1.8...0.2.0
Optimistic handling and InMemoryEventStore
🚀 What's New
- Added handling of the optimistic concurrency. It was missing, as the initial release focused on providing business logic abstractions. The first draft adding support for that to
EventStore
interface and command handler was added by @watfordsuzy in #11. I expanded that in #12, adding more types and scenarios. I finished showcasing the sample implementation together with basic abstractions for expected version checks at #13. - Added
InMemoryEventStore
. It's the first working version for theEventStore
. It showcases how the handling should be done. This enables further work on Web Api. #13 - Configured monorepo using NPM workspaces. That enables effective work and publishing of the multiple packages like ones for Express.js and EventStoreDB by @oskardudycz in #8
New Contributors
- @watfordsuzy made their first contribution in #11
Full Changelog: 0.1.6...0.1.8
0.1.6
Emmett let's take your event-driven applications back to the future!
🎉🚀 It's the first version worth releasing! Read the announcement blog article.
It contains essential building blocks for designing and running business and application logic like:
- typings around events, commands, Deciders, Workflows, etc.
- command handling wrappers for the application layer,
- basic, in-memory event store implementation.
Read more in documentation.