Marble.js v3.3.0 Release Notes
Release Date: 2020-07-07 // almost 4 years 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 subsequentact
error handler if previousact
operator did not handled the exception (#283)event$.pipe(matchEvent(Codec),act(eventValidator$(Codec)),act(event => ...),);
@marblejs/messaging - exposed
timeout
and transporttype
inTransportLayerConnection
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)