Marble Versions Save

Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

v4.1.0

1 year ago

Features

  • @marblejs/messaging: When calling ackMessage / nackMesage in case of redis strategy, the listener doesn't return an errored event, instead only a respective error log, so that the related effect can run without any disturbance
  • all - added support for "fp-ts": "~2.13.0" and "io-ts": "2.2.19"

v4.0.3

2 years ago

Fixed

  • @marblejs/testing - parse response body to undefined if nothing is provided and the Content-Type is application/json #389

v4.0.2

2 years ago

Fixed

  • @marblejs/http - server doesn't collect request metadata from error$ (PR: #388)
  • @marblejs/middleware-multipart - replaced busboy with @fastify/busboy (Issue: #387)

v4.0.1

2 years ago

Fixed

  • @marblejs/messaging - heartbeat timeout causes process to crash (closes #345)

v4.0.0

2 years ago

Finally!

👉 Please check out the guide for smooth migration from version 3.x to 4.x.

giphy

v4.0.0-rc.3

2 years ago

What's new?

  • @marblejs/messaging - new aliases for deprecations: MessagingClient, EventBus, EventBusClient

Deprecations

  • @marblejs/messaging - messagingClient, eventBus, eventBusClient

Fixes

  • @marblejs/core - incorrect warning message about eventBus & eventBusClient binding order #373

v4.0.0-rc.2

2 years ago

What's new

  • TypeScript v4.4 support

v4.0.0-rc.1

2 years ago

Before you'll read

  • New, up to date marblejs.com documentation for Marble.js v4 will land just before official release.

What's new?

  • support for rxjs v7.1
  • support for typescript v4.3
  • corrected io-ts deprecation warnings
  • @marblejs/http - moved @marblejs/core HTTP-related protocol API's to separate @marblejs/http module (see related RFC)
  • @marblejs/http - introduced environment config provider
  • @marblejs/http - HttpOutputEffect's and HttpErrorEffect's are resolved eagerly during initial bootstrap
  • @marblejs/http - optimized request/response processing

Breaking changes

  • @marblejs/core - removed deprecated EffectFactory
  • @marblejs/core - removed legacy switchToProtocol operator
  • @marblejs/http - INTERNAL - changed X-Testing-Request-Id metadata header name from to X-Request-Metadata-Id
  • @marblejs/http - INTERNAL - changed MARBLE_TESTING_METADATA_ON env variable name to MARBLE_HTTP_REQUEST_METADATA
  • @marblejs/http - all HTTP headers are lower cased (normalized) unless MARBLE_HTTP_HEADERS_NORMALIZATION environment variable is set to false (resolves: #311)
  • @marblejs/http - Content-Type header is automatically guessed and provided only when it is not directly provided by the user (same in case of Content-Length header)
  • @marblejs/http - send/handleResponse function are evaluated lazily, which means that they will send the HTTP response only when the stream is subscribed
  • @marblejs/http - HttpResponse.send method returns Observable<boolean> instead of an Observable<never>
  • @marblejs/http - HttpOutputEffect interface change
  • @marblejs/http - HttpErrorEffect interface change

HTTP effect I/O flow after the change (see: #357):

1. HttpMiddlewareEffect
Observable<req> -> Observable<req>

2. HttpEffect
Observable<req> -> Observable<{ status, body, headers }>
Observable<req> -> Observable<{ status, body, headers, response }>

3. HttpOutputEffect  ## 👇 
Observable<{ status, body, headers, request }> -> Observable<{ status, body, headers, request }>

4. HttpErrorEffect ## 👇 
Observable<{ error, request }> -> Observable<{ status, body, headers, request }>
  • @marblejs/websockets - removed deprecated server connection$ attribute
  • @marblejs/websockets - lazy evaluation of emitEvent and broadcastEvent functions
  • @marblejs/middleware-joi, @marblejs/middleware-jwt - migrated packages to marblejs/contrib repository

v3.5.1

2 years ago

Fixed

  • @marblejs/websockets - added path-to-regexp package to the dependency list. Closes: #346

v3.5.0

3 years ago

Improved

  • @marblejs/core - User is able to insert undefined | null value inside of a collection of dependencies to register.