Skip to content

v3.3.0

Compare
Choose a tag to compare
@JozefFlakus JozefFlakus released this 07 Jul 07:03
· 143 commits to master since this release

What's new?

  • @marblejs/core - I/O event decoder/encoder (RFC #273) (#272) (docs)
  • @marblejs/core - EventMetadata allows to pass additional params (#277)
  • @marblejs/core - act - pass through error events. With this feature we can trigger subsequent act error handler if previous act operator did not handled the exception (#283)
event$.pipe(
  matchEvent(Codec),
  act(eventValidator$(Codec)),
  act(event => ...),
);
  • @marblejs/messaging - exposed timeout and transport type in TransportLayerConnection interface (#277)
  • @marblejs/messaging - correlationId will be automatically assigned for each incoming event if not defined (#277)
  • @marblejs/messaging - dedicated ackEvent, nackEvent, nackAndResendEvent functions for event acknowledgements (#277)
  • @marblejs/messaging - rejectUnhandled$ middleware (#277) (docs)
    • Automatically try to reject all unhandled events when timeout defined by the transport layer options occurs.
    • The middleware will be applied only for transports that support message acknowledgements.
  • @marblejs/messaging - transport layer specific options are exposed via TransportLayerConnection.config.raw (#279)
  • @marblejs/messaging - allow to pass single event to eventValidator$ middleware (#282)

Fixed

  • @marblejs/core - act operator is able to catch errors outside stream (#277)
  • @marblejs/messaging - if event transformer fails to decode the event it won't break the internal event stream, instead it will be mapped to UNKNOWN event and the error notification will be propagated downstream (#276) (#284)
  • @marblejs/messaging - AMQP strategy - when disconnect event occurs there is no error log propagated downstream #275
  • @marblejs/messaging - server doesn't have to skip error events since act operator maps default errors to *_UNHANDLED_ERROR suffixed event types to avoid event handler dead loop (#283)