@message-queue-toolkit/kafka 0.1.2 → 0.2.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/AbstractKafkaConsumer.d.ts +5 -4
- package/dist/AbstractKafkaConsumer.js +10 -4
- package/dist/AbstractKafkaConsumer.js.map +1 -1
- package/dist/handler-container/KafkaHandlerConfig.d.ts +4 -4
- package/dist/handler-container/KafkaHandlerConfig.js.map +1 -1
- package/dist/handler-container/KafkaHandlerContainer.d.ts +3 -3
- package/dist/handler-container/KafkaHandlerContainer.js.map +1 -1
- package/dist/handler-container/KafkaHandlerRoutingBuilder.d.ts +4 -4
- package/dist/handler-container/KafkaHandlerRoutingBuilder.js.map +1 -1
- package/dist/utils/safeJsonDeserializer.d.ts +1 -0
- package/dist/utils/safeJsonDeserializer.js +14 -0
- package/dist/utils/safeJsonDeserializer.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,15 +4,16 @@ import { AbstractKafkaService, type BaseKafkaOptions } from './AbstractKafkaServ
|
|
|
4
4
|
import type { KafkaHandlerRouting } from './handler-container/KafkaHandlerRoutingBuilder.ts';
|
|
5
5
|
import type { KafkaConfig, KafkaDependencies, TopicConfig } from './types.ts';
|
|
6
6
|
export type KafkaConsumerDependencies = KafkaDependencies & Pick<QueueConsumerDependencies, 'transactionObservabilityManager'>;
|
|
7
|
-
export type KafkaConsumerOptions<TopicsConfig extends TopicConfig[]> = BaseKafkaOptions & Omit<ConsumerOptions<string, object, string, string>, 'deserializers' | 'autocommit' | keyof KafkaConfig> & Omit<ConsumeOptions<string, object, string, string>, 'topics'> & {
|
|
8
|
-
handlers: KafkaHandlerRouting<TopicsConfig>;
|
|
7
|
+
export type KafkaConsumerOptions<TopicsConfig extends TopicConfig[], ExecutionContext> = BaseKafkaOptions & Omit<ConsumerOptions<string, object, string, string>, 'deserializers' | 'autocommit' | keyof KafkaConfig> & Omit<ConsumeOptions<string, object, string, string>, 'topics'> & {
|
|
8
|
+
handlers: KafkaHandlerRouting<TopicsConfig, ExecutionContext>;
|
|
9
9
|
};
|
|
10
|
-
export declare abstract class AbstractKafkaConsumer<TopicsConfig extends TopicConfig[]> extends AbstractKafkaService<TopicsConfig, KafkaConsumerOptions<TopicsConfig>> {
|
|
10
|
+
export declare abstract class AbstractKafkaConsumer<TopicsConfig extends TopicConfig[], ExecutionContext> extends AbstractKafkaService<TopicsConfig, KafkaConsumerOptions<TopicsConfig, ExecutionContext>> {
|
|
11
11
|
private readonly consumer;
|
|
12
12
|
private consumerStream?;
|
|
13
13
|
private readonly transactionObservabilityManager;
|
|
14
14
|
private readonly handlerContainer;
|
|
15
|
-
|
|
15
|
+
private readonly executionContext;
|
|
16
|
+
constructor(dependencies: KafkaConsumerDependencies, options: KafkaConsumerOptions<TopicsConfig, ExecutionContext>, executionContext: ExecutionContext);
|
|
16
17
|
init(): Promise<void>;
|
|
17
18
|
close(): Promise<void>;
|
|
18
19
|
private consume;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { setTimeout } from 'node:timers/promises';
|
|
3
3
|
import { InternalError, stringValueSerializer, } from '@lokalise/node-core';
|
|
4
|
-
import { Consumer,
|
|
4
|
+
import { Consumer, stringDeserializer, } from '@platformatic/kafka';
|
|
5
5
|
import { AbstractKafkaService } from "./AbstractKafkaService.js";
|
|
6
6
|
import { KafkaHandlerContainer } from "./handler-container/KafkaHandlerContainer.js";
|
|
7
|
+
import { safeJsonDeserializer } from './utils/safeJsonDeserializer.js';
|
|
7
8
|
/*
|
|
8
9
|
TODO: Proper retry mechanism + DLQ -> https://lokalise.atlassian.net/browse/EDEXP-498
|
|
9
10
|
In the meantime, we will retry in memory up to 3 times
|
|
@@ -14,17 +15,19 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
|
|
|
14
15
|
consumerStream;
|
|
15
16
|
transactionObservabilityManager;
|
|
16
17
|
handlerContainer;
|
|
17
|
-
|
|
18
|
+
executionContext;
|
|
19
|
+
constructor(dependencies, options, executionContext) {
|
|
18
20
|
super(dependencies, options);
|
|
19
21
|
this.transactionObservabilityManager = dependencies.transactionObservabilityManager;
|
|
20
22
|
this.handlerContainer = new KafkaHandlerContainer(options.handlers, options.messageTypeField);
|
|
23
|
+
this.executionContext = executionContext;
|
|
21
24
|
this.consumer = new Consumer({
|
|
22
25
|
...this.options.kafka,
|
|
23
26
|
...this.options,
|
|
24
27
|
autocommit: false, // Handling commits manually
|
|
25
28
|
deserializers: {
|
|
26
29
|
key: stringDeserializer,
|
|
27
|
-
value:
|
|
30
|
+
value: safeJsonDeserializer,
|
|
28
31
|
headerKey: stringDeserializer,
|
|
29
32
|
headerValue: stringDeserializer,
|
|
30
33
|
},
|
|
@@ -58,6 +61,9 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
|
|
|
58
61
|
await this.consumer.close();
|
|
59
62
|
}
|
|
60
63
|
async consume(message) {
|
|
64
|
+
// message.value can be undefined if the message is not JSON-serializable
|
|
65
|
+
if (!message.value)
|
|
66
|
+
return message.commit();
|
|
61
67
|
const handler = this.handlerContainer.resolveHandler(message.topic, message.value);
|
|
62
68
|
// if there is no handler for the message, we ignore it (simulating subscription)
|
|
63
69
|
if (!handler)
|
|
@@ -110,7 +116,7 @@ export class AbstractKafkaConsumer extends AbstractKafkaService {
|
|
|
110
116
|
}
|
|
111
117
|
async tryToConsume(message, handler, requestContext) {
|
|
112
118
|
try {
|
|
113
|
-
await handler(message, requestContext);
|
|
119
|
+
await handler(message, this.executionContext, requestContext);
|
|
114
120
|
return true;
|
|
115
121
|
}
|
|
116
122
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractKafkaConsumer.js","sourceRoot":"","sources":["../lib/AbstractKafkaConsumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EACL,aAAa,EAEb,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAEL,QAAQ,EAIR,
|
|
1
|
+
{"version":3,"file":"AbstractKafkaConsumer.js","sourceRoot":"","sources":["../lib/AbstractKafkaConsumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,9 @@ export interface RequestContext {
|
|
|
5
5
|
logger: CommonLogger;
|
|
6
6
|
reqId: string;
|
|
7
7
|
}
|
|
8
|
-
export type KafkaHandler<MessageValue extends object> = (message: Message<string, MessageValue, string, string>, requestContext: RequestContext) => Promise<void> | void;
|
|
9
|
-
export declare class KafkaHandlerConfig<MessageValue extends object> {
|
|
8
|
+
export type KafkaHandler<MessageValue extends object, ExecutionContext> = (message: Message<string, MessageValue, string, string>, context: ExecutionContext, requestContext: RequestContext) => Promise<void> | void;
|
|
9
|
+
export declare class KafkaHandlerConfig<MessageValue extends object, ExecutionContext> {
|
|
10
10
|
readonly schema: ZodSchema<MessageValue>;
|
|
11
|
-
readonly handler: KafkaHandler<MessageValue>;
|
|
12
|
-
constructor(schema: ZodSchema<MessageValue>, handler: KafkaHandler<MessageValue>);
|
|
11
|
+
readonly handler: KafkaHandler<MessageValue, ExecutionContext>;
|
|
12
|
+
constructor(schema: ZodSchema<MessageValue>, handler: KafkaHandler<MessageValue, ExecutionContext>);
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KafkaHandlerConfig.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KafkaHandlerConfig.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerConfig.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,kBAAkB;IACb,MAAM,CAAyB;IAC/B,OAAO,CAA8C;IAErE,YACE,MAA+B,EAC/B,OAAqD;QAErD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { SupportedMessageValuesForTopic, SupportedTopics, TopicConfig } from '../types.ts';
|
|
2
2
|
import type { KafkaHandlerConfig } from './KafkaHandlerConfig.ts';
|
|
3
3
|
import type { KafkaHandlerRouting } from './KafkaHandlerRoutingBuilder.ts';
|
|
4
|
-
export declare class KafkaHandlerContainer<TopicsConfig extends TopicConfig[]> {
|
|
4
|
+
export declare class KafkaHandlerContainer<TopicsConfig extends TopicConfig[], ExecutionContext> {
|
|
5
5
|
private readonly handlers;
|
|
6
6
|
private readonly messageTypeField?;
|
|
7
|
-
constructor(topicHandlers: KafkaHandlerRouting<TopicsConfig>, messageTypeField?: string);
|
|
7
|
+
constructor(topicHandlers: KafkaHandlerRouting<TopicsConfig, ExecutionContext>, messageTypeField?: string);
|
|
8
8
|
private mapTopicHandlers;
|
|
9
|
-
resolveHandler<Topic extends SupportedTopics<TopicsConfig>>(topic: Topic, messageValue: SupportedMessageValuesForTopic<TopicsConfig, Topic>): KafkaHandlerConfig<SupportedMessageValuesForTopic<TopicsConfig, Topic
|
|
9
|
+
resolveHandler<Topic extends SupportedTopics<TopicsConfig>>(topic: Topic, messageValue: SupportedMessageValuesForTopic<TopicsConfig, Topic>): KafkaHandlerConfig<SupportedMessageValuesForTopic<TopicsConfig, Topic>, ExecutionContext> | undefined;
|
|
10
10
|
get topics(): SupportedTopics<TopicsConfig>[];
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KafkaHandlerContainer.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerContainer.ts"],"names":[],"mappings":"AASA,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"KafkaHandlerContainer.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerContainer.ts"],"names":[],"mappings":"AASA,MAAM,mBAAmB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAUrD,MAAM,OAAO,qBAAqB;IACf,QAAQ,CAA0C;IAClD,gBAAgB,CAAS;IAE1C,YACE,aAAkE,EAClE,gBAAyB;QAEzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;IACtD,CAAC;IAEO,gBAAgB,CACtB,mBAAwE;QAExE,MAAM,MAAM,GAA6C,EAAE,CAAA;QAE3D,KAAK,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,aAAa,CAAC,MAAM;gBAAE,SAAQ;YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YAElB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB;oBACpC,CAAC,CAAC,mBAAmB;wBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK;oBACpD,CAAC,CAAC,SAAS,CAAA;gBACb,UAAU,KAAK,mBAAmB,CAAA;gBAClC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;gBACzD,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA;YACrC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,cAAc,CACZ,KAAY,EACZ,YAAiE;QAIjE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAA;QAE/B,IAAI,gBAAgB,GAAuB,SAAS,CAAA;QACpD,IAAI,IAAI,CAAC,gBAAgB;YAAE,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEjF,OAAO,gBAAgB;YACrB,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC/D,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IACnC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SupportedMessageValues, SupportedMessageValuesForTopic, SupportedTopics, TopicConfig } from '../types.ts';
|
|
2
2
|
import type { KafkaHandlerConfig } from './KafkaHandlerConfig.ts';
|
|
3
|
-
export type KafkaHandlerRouting<TopicsConfig extends TopicConfig[], MessageValue extends SupportedMessageValues<TopicsConfig> = SupportedMessageValues<TopicsConfig>> = Record<string, KafkaHandlerConfig<MessageValue>[]>;
|
|
4
|
-
export declare class KafkaHandlerRoutingBuilder<TopicsConfig extends TopicConfig[]> {
|
|
3
|
+
export type KafkaHandlerRouting<TopicsConfig extends TopicConfig[], ExecutionContext, MessageValue extends SupportedMessageValues<TopicsConfig> = SupportedMessageValues<TopicsConfig>> = Record<string, KafkaHandlerConfig<MessageValue, ExecutionContext>[]>;
|
|
4
|
+
export declare class KafkaHandlerRoutingBuilder<const TopicsConfig extends TopicConfig[], ExecutionContext> {
|
|
5
5
|
private readonly configs;
|
|
6
|
-
addConfig<Topic extends SupportedTopics<TopicsConfig>, MessageValue extends SupportedMessageValuesForTopic<TopicsConfig, Topic>>(topic: Topic, config: KafkaHandlerConfig<MessageValue>): this;
|
|
7
|
-
build(): KafkaHandlerRouting<TopicsConfig>;
|
|
6
|
+
addConfig<Topic extends SupportedTopics<TopicsConfig>, MessageValue extends SupportedMessageValuesForTopic<TopicsConfig, Topic>>(topic: Topic, config: KafkaHandlerConfig<MessageValue, ExecutionContext>): this;
|
|
7
|
+
build(): KafkaHandlerRouting<TopicsConfig, ExecutionContext>;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KafkaHandlerRoutingBuilder.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerRoutingBuilder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KafkaHandlerRoutingBuilder.js","sourceRoot":"","sources":["../../lib/handler-container/KafkaHandlerRoutingBuilder.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,0BAA0B;IAIpB,OAAO,GAAwD,EAAE,CAAA;IAElF,SAAS,CAGP,KAAY,EAAE,MAA0D;QACxE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const safeJsonDeserializer: (data?: string | Buffer) => object | undefined;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const safeJsonDeserializer = (data) => {
|
|
2
|
+
if (!data)
|
|
3
|
+
return undefined;
|
|
4
|
+
// Checking to be safe
|
|
5
|
+
if (!Buffer.isBuffer(data) && typeof data !== 'string')
|
|
6
|
+
return undefined;
|
|
7
|
+
try {
|
|
8
|
+
return JSON.parse(data.toString('utf-8'));
|
|
9
|
+
}
|
|
10
|
+
catch (_) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=safeJsonDeserializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeJsonDeserializer.js","sourceRoot":"","sources":["../../lib/utils/safeJsonDeserializer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAsB,EAAsB,EAAE;IACjF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,sBAAsB;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IAExE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA"}
|