v0.3.0
Breaking changes
- Minimum Node.js version is 22.x (matching Moleculer 0.15)
- Middleware lifecycle hook changed from
started()tostarting()(Moleculer 0.15 compatibility) - ESLint migrated from v8 to v10 (flat config)
New features
- Add
ctx.channelNameandctx.parentChannelNameto context-based handlers for channel chain tracking #92 - Attach
ctx.serviceto context in channel handlers - Store error info in dead-letter queue headers (
x-error-message,x-error-code,x-error-stack,x-error-data, etc.) #91 - Add customizable
transformErrorToHeadersandtransformHeadersToErrorDatafunctions in dead-lettering options - Add
errorInfoTTLoption for Redis adapter error info storage - Parse error info from dead-letter headers back into
ctx.headersfor downstream consumers - Throw
INVALID_MESSAGE_SERIALIZATIONerror when incoming messages cannot be deserialized (all adapters) #76 - Log errors for message parsing failures in AMQP and NATS adapters
Fixes
- Support
amqplibv0.10.x
TypeScript
- Rewrite type definitions: replace generated
types/directory with hand-crafted rootindex.d.ts - Fix
Serializerimport for Moleculer 0.15 (Serializers.Base) - Add error header constants and error transform function types
- Fix
sendToChannelmodule augmentation to useSendOptions - Add TypeScript consumer test (
test/typescript/) - Add TypeCheck GitHub Actions workflow
Dependencies
- Moleculer peer dependency:
^0.14.12 || ^0.15.0-0 - ESLint 8 → 10 (flat config migration), remove
eslint-plugin-nodeandeslint-plugin-promise - TypeScript 5 → 6
- Update all minor/patch dependencies
New Contributors
- @icebob-ai made their first contribution in #94
Full Changelog: v0.2.0...v0.3.0