@message-queue-toolkit/core 24.0.0 → 25.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +710 -0
- package/dist/events/DomainEventEmitter.d.ts +1 -1
- package/dist/events/DomainEventEmitter.js +1 -1
- package/dist/events/DomainEventEmitter.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/queues/AbstractQueueService.d.ts +15 -3
- package/dist/queues/AbstractQueueService.js +51 -17
- package/dist/queues/AbstractQueueService.js.map +1 -1
- package/dist/queues/HandlerContainer.d.ts +38 -2
- package/dist/queues/HandlerContainer.js +71 -4
- package/dist/queues/HandlerContainer.js.map +1 -1
- package/dist/queues/HandlerSpy.d.ts +27 -3
- package/dist/queues/HandlerSpy.js +43 -8
- package/dist/queues/HandlerSpy.js.map +1 -1
- package/dist/queues/MessageSchemaContainer.d.ts +52 -6
- package/dist/queues/MessageSchemaContainer.js +126 -18
- package/dist/queues/MessageSchemaContainer.js.map +1 -1
- package/dist/queues/MessageTypeResolver.d.ts +154 -0
- package/dist/queues/MessageTypeResolver.js +82 -0
- package/dist/queues/MessageTypeResolver.js.map +1 -0
- package/dist/types/queueOptionsTypes.d.ts +35 -3
- package/package.json +5 -4
|
@@ -4,6 +4,7 @@ import type { MessageDeduplicationConfig } from '../message-deduplication/messag
|
|
|
4
4
|
import type { PayloadStoreConfig } from '../payload-store/payloadStoreTypes.ts';
|
|
5
5
|
import type { MessageHandlerConfig } from '../queues/HandlerContainer.ts';
|
|
6
6
|
import type { HandlerSpy, HandlerSpyParams } from '../queues/HandlerSpy.ts';
|
|
7
|
+
import type { MessageTypeResolverConfig } from '../queues/MessageTypeResolver.ts';
|
|
7
8
|
import type { MessageProcessingResult, TransactionObservabilityManager } from './MessageQueueTypes.ts';
|
|
8
9
|
export type QueueDependencies = {
|
|
9
10
|
errorReporter: ErrorReporter;
|
|
@@ -16,9 +17,10 @@ export type ProcessedMessageMetadata<MessagePayloadSchemas extends object = obje
|
|
|
16
17
|
*/
|
|
17
18
|
messageId: string;
|
|
18
19
|
/**
|
|
19
|
-
* Message type
|
|
20
|
+
* Message type resolved by `messageTypeResolver`.
|
|
21
|
+
* May be undefined if messageTypeResolver is not configured.
|
|
20
22
|
*/
|
|
21
|
-
messageType
|
|
23
|
+
messageType?: string;
|
|
22
24
|
/**
|
|
23
25
|
* Processing result status
|
|
24
26
|
*/
|
|
@@ -60,8 +62,38 @@ export type QueueConsumerDependencies = {
|
|
|
60
62
|
consumerErrorResolver: ErrorResolver;
|
|
61
63
|
transactionObservabilityManager: TransactionObservabilityManager;
|
|
62
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Common queue options for publishers and consumers.
|
|
67
|
+
*
|
|
68
|
+
* Message type resolution is configured via `messageTypeResolver`.
|
|
69
|
+
* At least one must be provided for routing to work (unless using a single handler).
|
|
70
|
+
*/
|
|
63
71
|
export type CommonQueueOptions = {
|
|
64
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Configuration for resolving message types.
|
|
74
|
+
*
|
|
75
|
+
* Supports three modes:
|
|
76
|
+
* - `{ messageTypePath: string }` - field name at the root of the message
|
|
77
|
+
* - `{ literal: string }` - constant type for all messages
|
|
78
|
+
* - `{ resolver: fn }` - custom function for complex scenarios (e.g., extracting from attributes)
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // Field path - extracts type from message.type
|
|
82
|
+
* { messageTypeResolver: { messageTypePath: 'type' } }
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Constant type - all messages treated as same type
|
|
86
|
+
* { messageTypeResolver: { literal: 'order.created' } }
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // Custom resolver for Cloud Storage notifications via PubSub
|
|
90
|
+
* {
|
|
91
|
+
* messageTypeResolver: {
|
|
92
|
+
* resolver: ({ messageAttributes }) => messageAttributes?.eventType as string
|
|
93
|
+
* }
|
|
94
|
+
* }
|
|
95
|
+
*/
|
|
96
|
+
messageTypeResolver?: MessageTypeResolverConfig;
|
|
65
97
|
messageIdField?: string;
|
|
66
98
|
messageTimestampField?: string;
|
|
67
99
|
messageDeduplicationIdField?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "25.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently",
|
|
6
6
|
"maintainers": [
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"@lokalise/node-core": "^14.2.0",
|
|
29
29
|
"@lokalise/universal-ts-utils": "^4.5.1",
|
|
30
30
|
"@message-queue-toolkit/schemas": "^7.0.0",
|
|
31
|
+
"dot-prop": "^10.1.0",
|
|
31
32
|
"fast-equals": "^5.2.2",
|
|
32
33
|
"json-stream-stringify": "^3.1.6",
|
|
33
34
|
"tmp": "^0.2.3",
|
|
@@ -37,10 +38,10 @@
|
|
|
37
38
|
"zod": ">=3.25.76 <5.0.0"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
|
-
"@biomejs/biome": "^2.3.
|
|
41
|
+
"@biomejs/biome": "^2.3.8",
|
|
41
42
|
"@lokalise/biome-config": "^3.1.0",
|
|
42
43
|
"@lokalise/tsconfig": "^3.0.0",
|
|
43
|
-
"@types/node": "^24.
|
|
44
|
+
"@types/node": "^24.10.1",
|
|
44
45
|
"@types/tmp": "^0.2.6",
|
|
45
46
|
"@vitest/coverage-v8": "^3.2.4",
|
|
46
47
|
"awilix": "^12.0.5",
|
|
@@ -48,7 +49,7 @@
|
|
|
48
49
|
"rimraf": "^6.0.1",
|
|
49
50
|
"typescript": "^5.9.2",
|
|
50
51
|
"vitest": "^3.2.4",
|
|
51
|
-
"zod": "^4.
|
|
52
|
+
"zod": "^4.1.13"
|
|
52
53
|
},
|
|
53
54
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
54
55
|
"repository": {
|