Releases: marblejs/marble
Releases · marblejs/marble
v3.4.9
v3.4.8
v3.4.6
v3.4.5
Fixed
- @marblejs/messaging - AQMP strategy - messaging client reconnection results in RPC queues high spike
v3.4.4
v3.4.3
Fixed
- @marblejs/messaging - microservice host URI components are properly masked
v3.4.2
Fixed
- @marblejs/messaging - resolved a nasty bug with event bus client initialization that prevented initializing and injecting the client in messaging effects. From now the Event Bus client will only warn instead of throwing an exception if initialized before the main reader.
v3.4.1
Fixed
- @marblejs/messaging -
@types/amqplib
package does not have to be installed when AMQP transport layer is not in use
v3.4.0
What's new?
- all - Support for TypeScript v4.0.x #294
- @marblejs/core - derived context (more details: #288) (more details about this feature in docs soon!)
A Reader can register its own context that doesn't influence/mutate the derived parent context
Context:
|- [DerivedContextToken]: DerivedContext
| |- [DerivedDependencyToken_1]: DerivedDependency_1
| |- [DerivedDependencyToken_2]: DerivedDependency_2
|
|- [FooToken]: Foo
|- [BarToken]: Bar
- @marblejs/messaging - allow to pass
timeout
option toEventBus
config #291 #292 - @marblejs/messaging - refactored EventBus context creation #288
- @marblejs/messaging - Local transport layer (
EventBus
) is initialized per context (not globally) #292 - @marblejs/messaging - restricted binding order for event bus and its corresponding client - first
eventBus
reader theneventBusClient
#292 - @marblejs/messaging -
contextFactory
registers default LoggerToken if derived context doesn't have it bound #293 - @marblejs/messaging -
EventBus
- expose resolved Context #293 - @marblejs/messaging -
outputLogger$
- outputs detailed logs for event validation errors #293
Fixed
- @marblejs/messaging -
outputErrorEncoder$
won't crash whenevent.payload === null
v3.3.0
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)