@message-queue-toolkit/core 13.5.0 → 13.6.1
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/dist/index.d.ts +1 -1
- package/dist/lib/events/DomainEventEmitter.d.ts +7 -2
- package/dist/lib/events/DomainEventEmitter.js +25 -2
- package/dist/lib/events/DomainEventEmitter.js.map +1 -1
- package/dist/lib/queues/AbstractPublisherManager.d.ts +2 -1
- package/dist/lib/queues/AbstractPublisherManager.js.map +1 -1
- package/dist/lib/queues/HandlerSpy.d.ts +13 -6
- package/dist/lib/queues/HandlerSpy.js +7 -1
- package/dist/lib/queues/HandlerSpy.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { DoNotProcessMessageError } from './lib/errors/DoNotProcessError';
|
|
|
8
8
|
export { PrehandlerResult, HandlerContainer, MessageHandlerConfig, MessageHandlerConfigBuilder, } from './lib/queues/HandlerContainer';
|
|
9
9
|
export type { BarrierCallback, BarrierResult, BarrierResultPositive, BarrierResultNegative, HandlerContainerOptions, Handler, Prehandler, PreHandlingOutputs, } from './lib/queues/HandlerContainer';
|
|
10
10
|
export { HandlerSpy } from './lib/queues/HandlerSpy';
|
|
11
|
-
export type {
|
|
11
|
+
export type { SpyResultInput, HandlerSpyParams, PublicHandlerSpy } from './lib/queues/HandlerSpy';
|
|
12
12
|
export { MessageSchemaContainer } from './lib/queues/MessageSchemaContainer';
|
|
13
13
|
export type { MessageSchemaContainerOptions } from './lib/queues/MessageSchemaContainer';
|
|
14
14
|
export { objectToBuffer } from './lib/utils/queueUtils';
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import type { MetadataFiller } from '../messages/MetadataFiller';
|
|
2
2
|
import type { MessageMetadataType } from '../messages/baseMessageSchemas';
|
|
3
|
+
import type { HandlerSpy, HandlerSpyParams, PublicHandlerSpy } from '../queues/HandlerSpy';
|
|
3
4
|
import type { EventRegistry } from './EventRegistry';
|
|
4
|
-
import type { AnyEventHandler, SingleEventHandler, CommonEventDefinition, EventTypeNames, CommonEventDefinitionPublisherSchemaType } from './eventTypes';
|
|
5
|
+
import type { AnyEventHandler, SingleEventHandler, CommonEventDefinition, CommonEventDefinitionConsumerSchemaType, EventTypeNames, CommonEventDefinitionPublisherSchemaType } from './eventTypes';
|
|
5
6
|
export declare class DomainEventEmitter<SupportedEvents extends CommonEventDefinition[]> {
|
|
6
7
|
private readonly eventRegistry;
|
|
7
8
|
private readonly eventHandlerMap;
|
|
8
9
|
private readonly anyHandlers;
|
|
9
10
|
private readonly metadataFiller;
|
|
11
|
+
private _handlerSpy;
|
|
10
12
|
constructor({ eventRegistry, metadataFiller, }: {
|
|
11
13
|
eventRegistry: EventRegistry<SupportedEvents>;
|
|
12
14
|
metadataFiller: MetadataFiller;
|
|
15
|
+
}, options?: {
|
|
16
|
+
handlerSpy?: HandlerSpy<object> | HandlerSpyParams | boolean;
|
|
13
17
|
});
|
|
14
|
-
|
|
18
|
+
get handlerSpy(): PublicHandlerSpy<CommonEventDefinitionConsumerSchemaType<SupportedEvents[number]>>;
|
|
19
|
+
emit<SupportedEvent extends SupportedEvents[number]>(supportedEvent: SupportedEvent, data: Omit<CommonEventDefinitionPublisherSchemaType<SupportedEvent>, 'type'>, metadata?: Partial<MessageMetadataType>): Promise<Omit<CommonEventDefinitionConsumerSchemaType<SupportedEvent>, 'type'>>;
|
|
15
20
|
/**
|
|
16
21
|
* Register handler for a specific event
|
|
17
22
|
*/
|
|
@@ -2,14 +2,24 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DomainEventEmitter = void 0;
|
|
4
4
|
const node_core_1 = require("@lokalise/node-core");
|
|
5
|
+
const HandlerSpy_1 = require("../queues/HandlerSpy");
|
|
5
6
|
class DomainEventEmitter {
|
|
6
7
|
eventRegistry;
|
|
7
8
|
eventHandlerMap = {};
|
|
8
9
|
anyHandlers = [];
|
|
9
10
|
metadataFiller;
|
|
10
|
-
|
|
11
|
+
_handlerSpy;
|
|
12
|
+
constructor({ eventRegistry, metadataFiller, }, options = {}) {
|
|
11
13
|
this.eventRegistry = eventRegistry;
|
|
12
14
|
this.metadataFiller = metadataFiller;
|
|
15
|
+
this._handlerSpy =
|
|
16
|
+
(0, HandlerSpy_1.resolveHandlerSpy)(options);
|
|
17
|
+
}
|
|
18
|
+
get handlerSpy() {
|
|
19
|
+
if (!this._handlerSpy) {
|
|
20
|
+
throw new Error('HandlerSpy was not instantiated, please pass `handlerSpy` parameter during queue service creation.');
|
|
21
|
+
}
|
|
22
|
+
return this._handlerSpy;
|
|
13
23
|
}
|
|
14
24
|
async emit(supportedEvent, data, metadata) {
|
|
15
25
|
if (!data.timestamp) {
|
|
@@ -28,7 +38,8 @@ class DomainEventEmitter {
|
|
|
28
38
|
const eventHandlers = this.eventHandlerMap[eventTypeName];
|
|
29
39
|
// No relevant handlers are registered, we can stop processing
|
|
30
40
|
if (!eventHandlers && this.anyHandlers.length === 0) {
|
|
31
|
-
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
return data;
|
|
32
43
|
}
|
|
33
44
|
const validatedEvent = this.eventRegistry
|
|
34
45
|
.getEventDefinitionByTypeName(eventTypeName)
|
|
@@ -44,6 +55,18 @@ class DomainEventEmitter {
|
|
|
44
55
|
for (const handler of this.anyHandlers) {
|
|
45
56
|
await handler.handleEvent(validatedEvent, metadata);
|
|
46
57
|
}
|
|
58
|
+
if (this._handlerSpy) {
|
|
59
|
+
this._handlerSpy.addProcessedMessage({
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
message: {
|
|
62
|
+
...validatedEvent,
|
|
63
|
+
...(metadata !== undefined ? { metadata } : {}),
|
|
64
|
+
},
|
|
65
|
+
processingResult: 'consumed',
|
|
66
|
+
}, validatedEvent.id);
|
|
67
|
+
}
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
return validatedEvent;
|
|
47
70
|
}
|
|
48
71
|
/**
|
|
49
72
|
* Register handler for a specific event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomainEventEmitter.js","sourceRoot":"","sources":["../../../lib/events/DomainEventEmitter.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;
|
|
1
|
+
{"version":3,"file":"DomainEventEmitter.js","sourceRoot":"","sources":["../../../lib/events/DomainEventEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import type { CommonEventDefinition } from '../events/eventTypes';
|
|
|
5
5
|
import type { MetadataFiller } from '../messages/MetadataFiller';
|
|
6
6
|
import type { AsyncPublisher, SyncPublisher } from '../types/MessageQueueTypes';
|
|
7
7
|
import type { CommonCreationConfigType, QueuePublisherOptions } from '../types/queueOptionsTypes';
|
|
8
|
+
import type { PublicHandlerSpy } from './HandlerSpy';
|
|
8
9
|
export type MessagePublishType<T extends CommonEventDefinition> = z.infer<T['publisherSchema']>;
|
|
9
10
|
export type MessageSchemaType<T extends CommonEventDefinition> = z.infer<T['consumerSchema']>;
|
|
10
11
|
export type AbstractPublisherFactory<PublisherType extends AsyncPublisher<object, unknown> | SyncPublisher<object, unknown>, DependenciesType, CreationConfigType extends CommonCreationConfigType, QueueLocatorType extends object, EventType extends PublisherBaseEventType, OptionsType extends Omit<QueuePublisherOptions<CreationConfigType, QueueLocatorType, EventType>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>> = {
|
|
@@ -45,5 +46,5 @@ export declare abstract class AbstractPublisherManager<EventDefinitionType exten
|
|
|
45
46
|
/**
|
|
46
47
|
* @param eventTarget - topic or exchange
|
|
47
48
|
*/
|
|
48
|
-
handlerSpy(eventTarget: EventTargets):
|
|
49
|
+
handlerSpy(eventTarget: EventTargets): PublicHandlerSpy<object>;
|
|
49
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPublisherManager.js","sourceRoot":"","sources":["../../../lib/queues/AbstractPublisherManager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"AbstractPublisherManager.js","sourceRoot":"","sources":["../../../lib/queues/AbstractPublisherManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { MessageProcessingResult } from '../types/MessageQueueTypes';
|
|
2
|
-
import type { CommonQueueOptions } from '../types/queueOptionsTypes';
|
|
3
2
|
export type HandlerSpyParams = {
|
|
4
3
|
bufferSize?: number;
|
|
5
4
|
messageIdField?: string;
|
|
5
|
+
messageTypeField?: string;
|
|
6
6
|
};
|
|
7
|
-
export type
|
|
7
|
+
export type SpyResultInput<MessagePayloadSchemas extends object> = {
|
|
8
8
|
message: MessagePayloadSchemas | null;
|
|
9
9
|
processingResult: MessageProcessingResult;
|
|
10
10
|
};
|
|
11
|
+
export type SpyResultOutput<MessagePayloadSchemas extends object> = {
|
|
12
|
+
message: MessagePayloadSchemas;
|
|
13
|
+
processingResult: MessageProcessingResult;
|
|
14
|
+
};
|
|
11
15
|
export declare function isHandlerSpy<T extends object>(value: unknown): value is HandlerSpy<T>;
|
|
12
16
|
export type PublicHandlerSpy<MessagePayloadSchemas extends object> = Omit<HandlerSpy<MessagePayloadSchemas>, 'addProcessedMessage'>;
|
|
13
17
|
type DeepPartial<T> = T extends Function ? T : T extends object ? {
|
|
@@ -17,13 +21,16 @@ export declare class HandlerSpy<MessagePayloadSchemas extends object> {
|
|
|
17
21
|
name: string;
|
|
18
22
|
private readonly messageBuffer;
|
|
19
23
|
private readonly messageIdField;
|
|
24
|
+
private readonly messageTypeField;
|
|
20
25
|
private readonly spyPromises;
|
|
21
26
|
constructor(params?: HandlerSpyParams);
|
|
22
27
|
private messageMatchesFilter;
|
|
23
|
-
waitForMessageWithId<T extends MessagePayloadSchemas>(id: string, processingResult?: MessageProcessingResult): Promise<
|
|
24
|
-
waitForMessage<T extends MessagePayloadSchemas>(fields: DeepPartial<T>, processingResult?: MessageProcessingResult): Promise<
|
|
28
|
+
waitForMessageWithId<T extends MessagePayloadSchemas>(id: string, processingResult?: MessageProcessingResult): Promise<SpyResultOutput<T>>;
|
|
29
|
+
waitForMessage<T extends MessagePayloadSchemas>(fields: DeepPartial<T>, processingResult?: MessageProcessingResult): Promise<SpyResultOutput<T>>;
|
|
25
30
|
clear(): void;
|
|
26
|
-
addProcessedMessage(processingResult:
|
|
31
|
+
addProcessedMessage(processingResult: SpyResultInput<MessagePayloadSchemas>, messageId?: string): void;
|
|
27
32
|
}
|
|
28
|
-
export declare function resolveHandlerSpy<T extends object>(queueOptions:
|
|
33
|
+
export declare function resolveHandlerSpy<T extends object>(queueOptions: {
|
|
34
|
+
handlerSpy?: HandlerSpy<object> | HandlerSpyParams | boolean;
|
|
35
|
+
}): HandlerSpy<T> | undefined;
|
|
29
36
|
export {};
|
|
@@ -15,11 +15,14 @@ class HandlerSpy {
|
|
|
15
15
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
16
|
messageBuffer;
|
|
17
17
|
messageIdField;
|
|
18
|
+
messageTypeField;
|
|
18
19
|
spyPromises;
|
|
19
20
|
constructor(params = {}) {
|
|
20
21
|
this.messageBuffer = new toad_cache_1.Fifo(params.bufferSize ?? 100);
|
|
21
22
|
// @ts-ignore
|
|
22
23
|
this.messageIdField = params.messageIdField ?? 'id';
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
this.messageTypeField = params.messageTypeField ?? 'type';
|
|
23
26
|
this.spyPromises = [];
|
|
24
27
|
}
|
|
25
28
|
messageMatchesFilter(spyResult, fields, processingResult) {
|
|
@@ -55,6 +58,7 @@ class HandlerSpy {
|
|
|
55
58
|
// @ts-ignore
|
|
56
59
|
resolve,
|
|
57
60
|
});
|
|
61
|
+
// @ts-ignore
|
|
58
62
|
return spyPromise;
|
|
59
63
|
}
|
|
60
64
|
clear() {
|
|
@@ -62,13 +66,15 @@ class HandlerSpy {
|
|
|
62
66
|
}
|
|
63
67
|
addProcessedMessage(processingResult, messageId) {
|
|
64
68
|
const resolvedMessageId = processingResult.message?.[this.messageIdField] ?? messageId ?? (0, node_crypto_1.randomUUID)();
|
|
65
|
-
|
|
69
|
+
const resolvedMessageType = processingResult.message?.[this.messageTypeField] ?? 'FAILED_TO_RESOLVE';
|
|
70
|
+
// If we failed to parse message, let's store id and type at least
|
|
66
71
|
const resolvedProcessingResult = processingResult.message
|
|
67
72
|
? processingResult
|
|
68
73
|
: {
|
|
69
74
|
...processingResult,
|
|
70
75
|
message: {
|
|
71
76
|
[this.messageIdField]: messageId,
|
|
77
|
+
[this.messageTypeField]: resolvedMessageType,
|
|
72
78
|
},
|
|
73
79
|
};
|
|
74
80
|
// @ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerSpy.js","sourceRoot":"","sources":["../../../lib/queues/HandlerSpy.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAExC,mDAA8C;AAC9C,2CAAiC;
|
|
1
|
+
{"version":3,"file":"HandlerSpy.js","sourceRoot":"","sources":["../../../lib/queues/HandlerSpy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/core",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.6.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"prepublishOnly": "npm run build:release"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@lokalise/node-core": "^
|
|
28
|
+
"@lokalise/node-core": "^10.0.0",
|
|
29
29
|
"@message-queue-toolkit/schemas": "^1.0.0",
|
|
30
30
|
"fast-equals": "^5.0.1",
|
|
31
31
|
"toad-cache": "^3.7.0",
|