Skip to content

Releases: event-driven-io/emmett

0.9.0

17 May 09:15
Compare
Choose a tag to compare

🚀 What's New

  • Allow Custom appendToStream options when using CommandHandler Now you can extend the command handler to take your own event store implementation that supersets the default event store definition by @alex-laycalvert in #63

📝 What's Changed

  • Removed node packages usage in core Emmett package. It appeared in #64 that, by accident, the in-memory event store was using randomUUID from node:crypto, which was causing compatibility issues on the web. Added also the ESLint rule to prevent such things to happen in the future. by @oskardudycz in #66
  • Fixed configuration for a single file debugging by @oskardudycz in #65

New Contributors

Full Changelog: 0.8.0...0.9.0

0.8.0

28 Apr 12:42
Compare
Choose a tag to compare

🚀 What's New

  • Added default handling of EventStoreDB test container ARM64 image. That should make the Mac M1 setup easier. Also changed EventStoreDB test container options to be in the nested object and false by default. That should make them more straightforward. by @oskardudycz in #62

Full Changelog: 0.7.1...0.8.0

0.7.1

28 Apr 10:01
Compare
Choose a tag to compare

📝 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 and esbuild used internally as code bundlers are stripping node: 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 marking describes and it with a void 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

12 Apr 16:02
Compare
Choose a tag to compare

🚀 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

26 Mar 13:51
Compare
Choose a tag to compare

🚀 What's New

📄 Docs

New Contributors

Full Changelog: 0.5.5...0.6.0

0.5.5

16 Mar 10:18
Compare
Choose a tag to compare

🚀 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 on errorCode property. TypeScript class comparison with an instance of can misbehave depending on the TS settings (see more here). To remove that risk and make generic handling easier, the matching in problemDetailsMiddleware 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

15 Mar 17:20
Compare
Choose a tag to compare

📝 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

Have questions or ideas? Join our Discord server!

Full Changelog: 0.5.3...0.5.4

0.5.3

08 Mar 18:41
Compare
Choose a tag to compare

📝 What's Changed

Have questions or ideas? Join our Discord server!

Full Changelog: 0.5.2...0.5.3

0.5.2

08 Mar 17:41
Compare
Choose a tag to compare

📝 What's Changed

Have questions or ideas? Join our Discord server!

Full Changelog: 0.5.1...0.5.2

0.5.1

07 Mar 13:45
Compare
Choose a tag to compare

📝 What's Changed

  • Replaced dependency on uuid package with randomUUID from node: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