@message-queue-toolkit/core 3.6.0 → 4.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/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export type { QueueConsumer, AsyncPublisher, SyncPublisher, TransactionObservabilityManager, Logger, SchemaMap, } from './lib/types/MessageQueueTypes';
|
|
1
|
+
export type { QueueConsumer, AsyncPublisher, SyncPublisher, TransactionObservabilityManager, Logger, LogFn, SchemaMap, ExtraParams, } from './lib/types/MessageQueueTypes';
|
|
2
2
|
export { AbstractQueueService } from './lib/queues/AbstractQueueService';
|
|
3
3
|
export type { NewQueueOptions, ExistingQueueOptions, NewQueueOptionsMultiSchema, ExistingQueueOptionsMultiSchema, MonoSchemaQueueOptions, MultiSchemaConsumerOptions, QueueDependencies, QueueConsumerDependencies, Deserializer, CommonQueueLocator, DeletionConfig, MultiSchemaPublisherOptions, } from './lib/queues/AbstractQueueService';
|
|
4
4
|
export { isMessageError, MessageValidationError, MessageInvalidFormatError, } from './lib/errors/Errors';
|
|
5
|
-
export { HandlerContainer, MessageHandlerConfig, MessageHandlerConfigBuilder, BarrierCallbackMultiConsumers, } from './lib/queues/HandlerContainer';
|
|
5
|
+
export { HandlerContainer, MessageHandlerConfig, MessageHandlerConfigBuilder, BarrierCallbackMultiConsumers, BarrierResult, BarrierResultPositive, BarrierResultNegative, } from './lib/queues/HandlerContainer';
|
|
6
6
|
export type { HandlerContainerOptions, Handler } from './lib/queues/HandlerContainer';
|
|
7
7
|
export { MessageSchemaContainer } from './lib/queues/MessageSchemaContainer';
|
|
8
8
|
export type { MessageSchemaContainerOptions } from './lib/queues/MessageSchemaContainer';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAWA,0EAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAgB7B,8CAI4B;AAH1B,wGAAA,cAAc,OAAA;AACd,gHAAA,sBAAsB,OAAA;AACtB,mHAAA,yBAAyB,OAAA;AAG3B,kEAQsC;AAPpC,oHAAA,gBAAgB,OAAA;AAChB,wHAAA,oBAAoB,OAAA;AACpB,+HAAA,2BAA2B,OAAA;AAQ7B,8EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAG/B,qDAAuD;AAA9C,4GAAA,cAAc,OAAA;AACvB,mDAAoD;AAA3C,yGAAA,YAAY,OAAA;AACrB,qDAAqD;AAA5C,0GAAA,YAAY,OAAA;AAErB,iDAAiE;AAAxD,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA"}
|
|
@@ -1,34 +1,43 @@
|
|
|
1
1
|
import type { Either } from '@lokalise/node-core';
|
|
2
2
|
import type { ZodSchema } from 'zod';
|
|
3
3
|
export type LogFormatter<MessagePayloadSchema> = (message: MessagePayloadSchema) => unknown;
|
|
4
|
-
export type
|
|
4
|
+
export type BarrierResult<BarrierOutput> = BarrierResultPositive<BarrierOutput> | BarrierResultNegative;
|
|
5
|
+
export type BarrierResultPositive<BarrierOutput> = {
|
|
6
|
+
isPassing: true;
|
|
7
|
+
output: BarrierOutput;
|
|
8
|
+
};
|
|
9
|
+
export type BarrierResultNegative = {
|
|
10
|
+
isPassing: false;
|
|
11
|
+
output?: never;
|
|
12
|
+
};
|
|
13
|
+
export type BarrierCallbackMultiConsumers<MessagePayloadSchema extends object, ExecutionContext, BarrierOutput> = (message: MessagePayloadSchema, context: ExecutionContext) => Promise<BarrierResult<BarrierOutput>>;
|
|
5
14
|
export declare const defaultLogFormatter: <MessagePayloadSchema>(message: MessagePayloadSchema) => MessagePayloadSchema;
|
|
6
|
-
export type HandlerConfigOptions<MessagePayloadSchema extends object, ExecutionContext> = {
|
|
15
|
+
export type HandlerConfigOptions<MessagePayloadSchema extends object, ExecutionContext, BarrierOutput> = {
|
|
7
16
|
messageLogFormatter?: LogFormatter<MessagePayloadSchema>;
|
|
8
|
-
preHandlerBarrier?: BarrierCallbackMultiConsumers<MessagePayloadSchema, ExecutionContext>;
|
|
17
|
+
preHandlerBarrier?: BarrierCallbackMultiConsumers<MessagePayloadSchema, ExecutionContext, BarrierOutput>;
|
|
9
18
|
};
|
|
10
|
-
export declare class MessageHandlerConfig<const MessagePayloadSchema extends object, const ExecutionContext> {
|
|
19
|
+
export declare class MessageHandlerConfig<const MessagePayloadSchema extends object, const ExecutionContext, const BarrierOutput = unknown> {
|
|
11
20
|
readonly schema: ZodSchema<MessagePayloadSchema>;
|
|
12
|
-
readonly handler: Handler<MessagePayloadSchema, ExecutionContext>;
|
|
21
|
+
readonly handler: Handler<MessagePayloadSchema, ExecutionContext, BarrierOutput>;
|
|
13
22
|
readonly messageLogFormatter: LogFormatter<MessagePayloadSchema>;
|
|
14
|
-
readonly preHandlerBarrier?: BarrierCallbackMultiConsumers<MessagePayloadSchema, ExecutionContext>;
|
|
15
|
-
constructor(schema: ZodSchema<MessagePayloadSchema>, handler: Handler<MessagePayloadSchema, ExecutionContext>, options?: HandlerConfigOptions<MessagePayloadSchema, ExecutionContext>);
|
|
23
|
+
readonly preHandlerBarrier?: BarrierCallbackMultiConsumers<MessagePayloadSchema, ExecutionContext, BarrierOutput>;
|
|
24
|
+
constructor(schema: ZodSchema<MessagePayloadSchema>, handler: Handler<MessagePayloadSchema, ExecutionContext, BarrierOutput>, options?: HandlerConfigOptions<MessagePayloadSchema, ExecutionContext, BarrierOutput>);
|
|
16
25
|
}
|
|
17
26
|
export declare class MessageHandlerConfigBuilder<MessagePayloadSchemas extends object, ExecutionContext> {
|
|
18
27
|
private readonly configs;
|
|
19
28
|
constructor();
|
|
20
|
-
addConfig<MessagePayloadSchema extends MessagePayloadSchemas>(schema: ZodSchema<MessagePayloadSchema>, handler: Handler<MessagePayloadSchema, ExecutionContext>, options?: HandlerConfigOptions<MessagePayloadSchema, ExecutionContext>): this;
|
|
21
|
-
build(): MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext>[];
|
|
29
|
+
addConfig<MessagePayloadSchema extends MessagePayloadSchemas, const BarrierOutput>(schema: ZodSchema<MessagePayloadSchema>, handler: Handler<MessagePayloadSchema, ExecutionContext, BarrierOutput>, options?: HandlerConfigOptions<MessagePayloadSchema, ExecutionContext, BarrierOutput>): this;
|
|
30
|
+
build(): MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext, any>[];
|
|
22
31
|
}
|
|
23
|
-
export type Handler<MessagePayloadSchemas, ExecutionContext> = (message: MessagePayloadSchemas, context: ExecutionContext) => Promise<Either<'retryLater', 'success'>>;
|
|
32
|
+
export type Handler<MessagePayloadSchemas, ExecutionContext, BarrierOutput = undefined> = (message: MessagePayloadSchemas, context: ExecutionContext, barrierOutput: BarrierOutput) => Promise<Either<'retryLater', 'success'>>;
|
|
24
33
|
export type HandlerContainerOptions<MessagePayloadSchemas extends object, ExecutionContext> = {
|
|
25
|
-
messageHandlers: MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext>[];
|
|
34
|
+
messageHandlers: MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext, unknown>[];
|
|
26
35
|
messageTypeField: string;
|
|
27
36
|
};
|
|
28
37
|
export declare class HandlerContainer<MessagePayloadSchemas extends object, ExecutionContext> {
|
|
29
38
|
private readonly messageHandlers;
|
|
30
39
|
private readonly messageTypeField;
|
|
31
40
|
constructor(options: HandlerContainerOptions<MessagePayloadSchemas, ExecutionContext>);
|
|
32
|
-
resolveHandler(messageType: string): MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext>;
|
|
41
|
+
resolveHandler<BarrierResult>(messageType: string): MessageHandlerConfig<MessagePayloadSchemas, ExecutionContext, BarrierResult>;
|
|
33
42
|
private resolveHandlerMap;
|
|
34
43
|
}
|
|
@@ -17,13 +17,15 @@ class MessageHandlerConfig {
|
|
|
17
17
|
}
|
|
18
18
|
exports.MessageHandlerConfig = MessageHandlerConfig;
|
|
19
19
|
class MessageHandlerConfigBuilder {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
21
|
configs;
|
|
21
22
|
constructor() {
|
|
22
23
|
this.configs = [];
|
|
23
24
|
}
|
|
24
25
|
addConfig(schema, handler, options) {
|
|
26
|
+
this.configs.push(new MessageHandlerConfig(schema,
|
|
25
27
|
// @ts-ignore
|
|
26
|
-
|
|
28
|
+
handler, options));
|
|
27
29
|
return this;
|
|
28
30
|
}
|
|
29
31
|
build() {
|
|
@@ -38,12 +40,12 @@ class HandlerContainer {
|
|
|
38
40
|
this.messageTypeField = options.messageTypeField;
|
|
39
41
|
this.messageHandlers = this.resolveHandlerMap(options.messageHandlers);
|
|
40
42
|
}
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
43
|
resolveHandler(messageType) {
|
|
43
44
|
const handler = this.messageHandlers[messageType];
|
|
44
45
|
if (!handler) {
|
|
45
46
|
throw new Error(`Unsupported message type: ${messageType}`);
|
|
46
47
|
}
|
|
48
|
+
// @ts-ignore
|
|
47
49
|
return handler;
|
|
48
50
|
}
|
|
49
51
|
resolveHandlerMap(supportedHandlers) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandlerContainer.js","sourceRoot":"","sources":["../../../lib/queues/HandlerContainer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"HandlerContainer.js","sourceRoot":"","sources":["../../../lib/queues/HandlerContainer.ts"],"names":[],"mappings":";;;AA4BO,MAAM,mBAAmB,GAAG,CAAuB,OAA6B,EAAE,EAAE,CAAC,OAAO,CAAA;AAAtF,QAAA,mBAAmB,uBAAmE;AAenG,MAAa,oBAAoB;IAKf,MAAM,CAAiC;IACvC,OAAO,CAAgE;IACvE,mBAAmB,CAAoC;IACvD,iBAAiB,CAIhC;IAED,YACE,MAAuC,EACvC,OAAuE,EACvE,OAAqF;QAErF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,mBAAmB,GAAG,OAAO,EAAE,mBAAmB,IAAI,2BAAmB,CAAA;QAC9E,IAAI,CAAC,iBAAiB,GAAG,OAAO,EAAE,iBAAiB,CAAA;IACrD,CAAC;CACF;AAxBD,oDAwBC;AAED,MAAa,2BAA2B;IACtC,8DAA8D;IAC7C,OAAO,CAAsE;IAE9F;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,SAAS,CACP,MAAuC,EACvC,OAAuE,EACvE,OAAqF;QAErF,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,oBAAoB,CACtB,MAAM;QACN,aAAa;QACb,OAAO,EACP,OAAO,CACR,CACF,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AA3BD,kEA2BC;AAaD,MAAa,gBAAgB;IACV,eAAe,CAG/B;IACgB,gBAAgB,CAAQ;IAEzC,YAAY,OAAyE;QACnF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IACxE,CAAC;IAEM,cAAc,CACnB,WAAmB;QAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,EAAE,CAAC,CAAA;SAC5D;QACD,aAAa;QACb,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,iBAAiB,CACvB,iBAA2F;QAE3F,OAAO,iBAAiB,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACb,aAAa;YACb,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAA;YACnE,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,CAAA;YACxB,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,EAA4F,CAC7F,CAAA;IACH,CAAC;CACF;AApCD,4CAoCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@message-queue-toolkit/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
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",
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@types/node": "^20.
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
31
|
-
"@typescript-eslint/parser": "^6.
|
|
29
|
+
"@types/node": "^20.7.0",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
31
|
+
"@typescript-eslint/parser": "^6.7.3",
|
|
32
32
|
"del-cli": "^5.0.0",
|
|
33
33
|
"eslint": "^8.44.0",
|
|
34
34
|
"eslint-config-prettier": "^9.0.0",
|
|
35
35
|
"eslint-plugin-import": "^2.27.5",
|
|
36
36
|
"eslint-plugin-prettier": "^5.0.0",
|
|
37
37
|
"prettier": "^3.0.0",
|
|
38
|
-
"typescript": "^5.
|
|
38
|
+
"typescript": "^5.2.2"
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/kibertoad/message-queue-toolkit",
|
|
41
41
|
"repository": {
|