hemerajs/hemera
🔬 Writing reliable & fault-tolerant microservices in Node.js https://hemerajs.github.io/hemera/
🐛 Fixes
- Calling reply.send inside async middleware doesn't stop the chain - https://github.com/hemerajs/hemera/issues/244
Hooks refactoring https://github.com/hemerajs/hemera/pull/236
# Bugfix Fix https://github.com/hemerajs/hemera/issues/233
Upgrade to [Avvio@6.0.0](https://github.com/mcollina/avvio/releases/tag/v6.0.0) and expose plugin `timeout` option to hemera.
📋 Changes
- Upgrade to Pino 5 logger. https://github.com/pinojs/pino/releases/tag/v5.0.0
- Don't check custom logger instance with Joi because it produces side-effects and causes an error. https://github.com/hemerajs/hemera/issues/221
- Don't handle errors as success payload in case of the wrong usage of promises or Error-First-Callback:
- `Promise.reject('success')`
- `cb('success', null)`
💥 Breaking changes
- PrettyLog is disabled by default. You have to install `pino-pretty` in order to archive the same result. More informations [here](https://hemerajs.github.io/hemera/docs/logging.html#pretty-logs)
- Only native error objects can be responded. In case of an invalid error, the server will log an error and the client will timeout.
🐛 Fixed
- Don't swallow `onServerPreResponse` error it has precedence over other extension errors.
📦 Miscellaneous
- Add more test
- Add [example](https://github.com/hemerajs/hemera/blob/master/examples/basic/extensions.js) for server extensions
📋 Changes
- https://github.com/hemerajs/hemera/pull/220 Set metadata context correctly when subsequent calls use different values for the same metadata properties'
📋 Changes
- Validate typescript types on ci and test hook
- Improve typescript types
Improve typescript types
📋 Changes
- Add `pattern`, `transport` properties to client request object.
- Remove getter and setters
- Update docs and examples.
🐛 Fixed
- Hemera emit an error when nats connection was closed so process watchers can restart it accordingly.
📋 Changes
- Add `tag` to trace logs https://github.com/hemerajs/hemera/pull/213
- Some internal clean ups
📋 Changes
- Fix logging message
- Add logs for server and client hooks (Request- started, received, responded, completed)
- Improve knabe plugin
📋 Changes
- Improved request logs.
- New option `traceLog` to attach tracing information to each log.
📋 Changes
- Remove `this.request$.parentId` because it's duplicated. The parent relationship is tracked in `this.trace$.parentSpanId`
- Update docs
- Improve tests
📋 Changes
- Improve nats-hemera types https://github.com/hemerajs/hemera/pull/209
- Softening logger interface https://github.com/hemerajs/hemera/pull/208
Avoid to create separate promise in catch case when callback-style is used. Perf gains ~10%.
📋 Changes
- Update deps
- Use strict mode in `index.js`
📋 Changes
- improve TS types
📋 Changes
- improve TS types
📋 Changes
- improve TS types
Remove redundant error log https://github.com/hemerajs/hemera/pull/207
📋 Changes
- Allow to pass a stream to default logger Pino
- Refactor logger configuration
- Improve tests
📋 Changes
- Refactor plugin dependencies
- Add decorator dependencies
- Simplify hemera-plugin
**FIXED**: Decorator should always extend the core hemera instance. **NEW**: Implement `hemera.expose()` to extend the current plugin instance.
📋 Changes
- Remove `expectedMessages$` from `Add` object.
- Don't assign default inbox queue to `Add` object.
Fixed regression of `maxMessages$: -1`
📋 Changes
- Implement `setResponseSchemaCompiler` for better abstraction for response validators
- Update hemera-joi and hemera-ajv to use `setResponseSchemaCompiler`
- Remove hemera-joi from plugins and use simple middleware and joi
🐛 Fixed
- `hemera.add` returns an `Add` Object which should return all information about the subscription. `sid` and `queue` was missing. This also effects the `onAdd` hook.
📦 Miscellaneous
- Internal refactoring
📋 Changes
- Clean up pattern after maxMessages$ received in server action
- Add tests
