@dbos-inc/kafkajs-receive 3.0.16-preview → 3.0.19-preview

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 CHANGED
@@ -44,10 +44,7 @@ class KafkaExample {
44
44
  }
45
45
  }
46
46
 
47
- KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(
48
- KafkaExample.registeredConsumerWorkflow,
49
- 'registeredConsumerWorkflow',
50
- );
47
+ KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(KafkaExample.registeredConsumerWorkflow);
51
48
  kafkaReceiver.registerConsumer(KafkaExample.registeredConsumerWorkflow, 'another-example-topic');
52
49
  ```
53
50
 
@@ -78,10 +75,7 @@ class KafkaExample {
78
75
  }
79
76
  }
80
77
 
81
- KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(
82
- KafkaExample.registeredConsumerWorkflow,
83
- 'registeredConsumerWorkflow',
84
- );
78
+ KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(KafkaExample.registeredConsumerWorkflow);
85
79
  kafkaReceiver.registerConsumer(KafkaExample.registeredConsumerWorkflow, 'another-example-topic', {
86
80
  config: { groupId: 'custom-group-id' },
87
81
  });
@@ -105,10 +99,7 @@ class KafkaExample {
105
99
  }
106
100
  }
107
101
 
108
- KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(
109
- KafkaExample.registeredConsumerWorkflow,
110
- 'registeredConsumerWorkflow',
111
- );
102
+ KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(KafkaExample.registeredConsumerWorkflow);
112
103
  kafkaReceiver.registerConsumer(KafkaExample.registeredConsumerWorkflow, 'another-example-topic', {
113
104
  queueName: 'example-queue',
114
105
  });
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { DBOSLifecycleCallback } from '@dbos-inc/dbos-sdk';
2
2
  import { ConsumerConfig, KafkaConfig, KafkaMessage } from 'kafkajs';
3
+ export type KafkaArgs = [string, number, KafkaMessage];
3
4
  interface KafkaRetryConfig {
4
5
  maxRetries: number;
5
6
  retryTime: number;
@@ -14,8 +15,8 @@ export declare class KafkaReceiver extends DBOSLifecycleCallback {
14
15
  initialize(): Promise<void>;
15
16
  destroy(): Promise<void>;
16
17
  logRegisteredEndpoints(): void;
17
- registerConsumer<This, Args extends unknown[], Return>(func: (this: This, ...args: Args) => Promise<Return>, topics: ConsumerTopics, options?: {
18
- classOrInst?: object;
18
+ registerConsumer<This, Return>(func: (this: This, ...args: KafkaArgs) => Promise<Return>, topics: ConsumerTopics, options?: {
19
+ ctorOrProto?: object;
19
20
  className?: string;
20
21
  name?: string;
21
22
  queueName?: string;
@@ -24,7 +25,7 @@ export declare class KafkaReceiver extends DBOSLifecycleCallback {
24
25
  consumer(topics: ConsumerTopics, options?: {
25
26
  queueName?: string;
26
27
  config?: ConsumerConfig;
27
- }): <This, Args extends [string, number, KafkaMessage], Return>(target: object, propertyKey: PropertyKey, descriptor: TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>) => TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>;
28
+ }): <This, Return>(target: object, propertyKey: PropertyKey, descriptor: TypedPropertyDescriptor<(this: This, ...args: KafkaArgs) => Promise<Return>>) => TypedPropertyDescriptor<(this: This, args_0: string, args_1: number, args_2: KafkaMessage) => Promise<Return>>;
28
29
  }
29
30
  export {};
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAA8B,cAAc,EAAE,WAAW,EAAE,YAAY,EAAwB,MAAM,SAAS,CAAC;AAYtH,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtE,qBAAa,aAAc,SAAQ,qBAAqB;;IAIpD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,gBAAmE;IAMpF,UAAU;IA0DV,OAAO;IAKb,sBAAsB;IAa/B,gBAAgB,CAAC,IAAI,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACnD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EACpD,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,cAAc,CAAC;KACpB;IAcR,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,uEAIlF,MAAM,eACD,WAAW,cACZ,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAAxC,IAAI,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;CAcvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAA8B,cAAc,EAAE,WAAW,EAAE,YAAY,EAAwB,MAAM,SAAS,CAAC;AAEtH,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAWvD,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtE,qBAAa,aAAc,SAAQ,qBAAqB;;IAIpD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,MAAM,EAAE,WAAW,EACnB,WAAW,GAAE,gBAAmE;IAMpF,UAAU;IA0DV,OAAO;IAKb,sBAAsB;IAa/B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAC3B,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC,EACzD,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,cAAc,CAAC;KACpB;IAcR,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,cAAc,CAAA;KAAO,0BAIlF,MAAM,eACD,WAAW,cACZ,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,SAAS,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAA7C,IAAI,2DAAyB,QAAQ,MAAM,CAAC;CAc5F"}
package/dist/index.js CHANGED
@@ -92,7 +92,7 @@ class KafkaReceiver extends dbos_sdk_1.DBOSLifecycleCallback {
92
92
  }
93
93
  registerConsumer(func, topics, options = {}) {
94
94
  const { regInfo } = dbos_sdk_1.DBOS.associateFunctionWithInfo(this, func, {
95
- classOrInst: options.classOrInst,
95
+ ctorOrProto: options.ctorOrProto,
96
96
  className: options.className,
97
97
  name: options.name ?? func.name,
98
98
  });
@@ -107,7 +107,7 @@ class KafkaReceiver extends dbos_sdk_1.DBOSLifecycleCallback {
107
107
  function methodDecorator(target, propertyKey, descriptor) {
108
108
  if (descriptor.value) {
109
109
  $this.registerConsumer(descriptor.value, topics, {
110
- classOrInst: target,
110
+ ctorOrProto: target,
111
111
  name: String(propertyKey),
112
112
  queueName: options.queueName,
113
113
  config: options.config,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { DBOS, DBOSLifecycleCallback } from '@dbos-inc/dbos-sdk';
2
2
  import { Kafka as KafkaJS, Consumer, ConsumerConfig, KafkaConfig, KafkaMessage, KafkaJSProtocolError } from 'kafkajs';
3
3
 
4
- type KafkaMessageHandler<Return> = (topic: string, partition: number, message: KafkaMessage) => Promise<Return>;
4
+ export type KafkaArgs = [string, number, KafkaMessage];
5
+ type KafkaMessageHandler<Return> = (...args: KafkaArgs) => Promise<Return>;
5
6
 
6
7
  const sleepms = (ms: number) => new Promise((r) => setTimeout(r, ms));
7
8
 
@@ -114,11 +115,11 @@ export class KafkaReceiver extends DBOSLifecycleCallback {
114
115
  }
115
116
  }
116
117
 
117
- registerConsumer<This, Args extends unknown[], Return>(
118
- func: (this: This, ...args: Args) => Promise<Return>,
118
+ registerConsumer<This, Return>(
119
+ func: (this: This, ...args: KafkaArgs) => Promise<Return>,
119
120
  topics: ConsumerTopics,
120
121
  options: {
121
- classOrInst?: object;
122
+ ctorOrProto?: object;
122
123
  className?: string;
123
124
  name?: string;
124
125
  queueName?: string;
@@ -126,7 +127,7 @@ export class KafkaReceiver extends DBOSLifecycleCallback {
126
127
  } = {},
127
128
  ) {
128
129
  const { regInfo } = DBOS.associateFunctionWithInfo(this, func, {
129
- classOrInst: options.classOrInst,
130
+ ctorOrProto: options.ctorOrProto,
130
131
  className: options.className,
131
132
  name: options.name ?? func.name,
132
133
  });
@@ -140,14 +141,14 @@ export class KafkaReceiver extends DBOSLifecycleCallback {
140
141
  consumer(topics: ConsumerTopics, options: { queueName?: string; config?: ConsumerConfig } = {}) {
141
142
  // eslint-disable-next-line @typescript-eslint/no-this-alias
142
143
  const $this = this;
143
- function methodDecorator<This, Args extends [string, number, KafkaMessage], Return>(
144
+ function methodDecorator<This, Return>(
144
145
  target: object,
145
146
  propertyKey: PropertyKey,
146
- descriptor: TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>,
147
+ descriptor: TypedPropertyDescriptor<(this: This, ...args: KafkaArgs) => Promise<Return>>,
147
148
  ) {
148
149
  if (descriptor.value) {
149
150
  $this.registerConsumer(descriptor.value, topics, {
150
- classOrInst: target,
151
+ ctorOrProto: target,
151
152
  name: String(propertyKey),
152
153
  queueName: options.queueName,
153
154
  config: options.config,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/kafkajs-receive",
3
- "version": "3.0.16-preview",
3
+ "version": "3.0.19-preview",
4
4
  "description": "DBOS event reciever for Kafka using KafkaJS",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -19,7 +19,7 @@ const kafkaConfig = {
19
19
  const kafkaReceiver = new KafkaReceiver(kafkaConfig);
20
20
 
21
21
  interface KafkaEvents {
22
- message: (functionName: string, topic: string, partition: number, message: KafkaMessage) => void;
22
+ message: (functionName: string, topic: string, partition: number, message: KafkaMessage, workflowID?: string) => void;
23
23
  }
24
24
 
25
25
  class KafkaEmitter extends EventEmitter {
@@ -37,6 +37,7 @@ type KafkaMessageEvent = {
37
37
  topic: string;
38
38
  partition: number;
39
39
  message: KafkaMessage;
40
+ workflowID?: string;
40
41
  };
41
42
 
42
43
  function waitForMessage(
@@ -47,10 +48,10 @@ function waitForMessage(
47
48
  ): Promise<KafkaMessageEvent> {
48
49
  return withTimeout(
49
50
  new Promise<KafkaMessageEvent>((resolve) => {
50
- const handler = (f: string, t: string, partition: number, message: KafkaMessage) => {
51
+ const handler = (f: string, t: string, partition: number, message: KafkaMessage, workflowID?: string) => {
51
52
  if (f === funcName && t === topic) {
52
53
  emitter.off('message', handler);
53
- resolve({ topic: t, partition, message });
54
+ resolve({ topic: t, partition, message, workflowID });
54
55
  }
55
56
  };
56
57
  emitter.on('message', handler);
@@ -67,37 +68,37 @@ class KafkaTestClass {
67
68
  @DBOS.workflow()
68
69
  static async stringTopic(topic: string, partition: number, message: KafkaMessage) {
69
70
  await Promise.resolve();
70
- KafkaTestClass.emitter.emit('message', 'stringTopic', topic, partition, message);
71
+ KafkaTestClass.emitter.emit('message', 'stringTopic', topic, partition, message, DBOS.workflowID);
71
72
  }
72
73
 
73
74
  @kafkaReceiver.consumer(/regex-topic-.*/i)
74
75
  @DBOS.workflow()
75
76
  static async regexTopic(topic: string, partition: number, message: KafkaMessage) {
76
77
  await Promise.resolve();
77
- KafkaTestClass.emitter.emit('message', 'regexTopic', topic, partition, message);
78
+ KafkaTestClass.emitter.emit('message', 'regexTopic', topic, partition, message, DBOS.workflowID);
78
79
  }
79
80
 
80
81
  @kafkaReceiver.consumer(['a-topic', 'b-topic'])
81
82
  @DBOS.workflow()
82
83
  static async stringArrayTopic(topic: string, partition: number, message: KafkaMessage) {
83
84
  await Promise.resolve();
84
- KafkaTestClass.emitter.emit('message', 'stringArrayTopic', topic, partition, message);
85
+ KafkaTestClass.emitter.emit('message', 'stringArrayTopic', topic, partition, message, DBOS.workflowID);
85
86
  }
86
87
 
87
88
  @kafkaReceiver.consumer([/z-topic-.*/i, /y-topic-.*/i])
88
89
  @DBOS.workflow()
89
90
  static async regexArrayTopic(topic: string, partition: number, message: KafkaMessage) {
90
91
  await Promise.resolve();
91
- KafkaTestClass.emitter.emit('message', 'regexArrayTopic', topic, partition, message);
92
+ KafkaTestClass.emitter.emit('message', 'regexArrayTopic', topic, partition, message, DBOS.workflowID);
92
93
  }
93
94
 
94
95
  static async registeredConsumer(topic: string, partition: number, message: KafkaMessage) {
95
96
  await Promise.resolve();
96
- KafkaTestClass.emitter.emit('message', 'registeredConsumer', topic, partition, message);
97
+ KafkaTestClass.emitter.emit('message', 'registeredConsumer', topic, partition, message, DBOS.workflowID);
97
98
  }
98
99
  }
99
100
 
100
- KafkaTestClass.registeredConsumer = DBOS.registerWorkflow(KafkaTestClass.registeredConsumer, 'registeredConsumer');
101
+ KafkaTestClass.registeredConsumer = DBOS.registerWorkflow(KafkaTestClass.registeredConsumer);
101
102
  kafkaReceiver.registerConsumer(KafkaTestClass.registeredConsumer, 'registered-topic');
102
103
 
103
104
  async function validateKafka(config: KafkaConfig) {
@@ -209,6 +210,10 @@ suite('kafkajs-receive', async () => {
209
210
 
210
211
  assert.equal(topic, result.topic);
211
212
  assert.equal(message, String(result.message.value));
213
+ assert(!!result.workflowID);
214
+
215
+ const status = await DBOS.getWorkflowStatus(result.workflowID);
216
+ assert(!!status);
212
217
  });
213
218
  }
214
219
  });