Marble.js v3.3.0 Release Notes

Release Date: 2020-07-07 // over 1 year ago
  • 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)