@dbos-inc/confluent-kafka-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
 
@@ -75,10 +72,7 @@ class KafkaExample {
75
72
  }
76
73
  }
77
74
 
78
- KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(
79
- KafkaExample.registeredConsumerWorkflow,
80
- 'registeredConsumerWorkflow',
81
- );
75
+ KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(KafkaExample.registeredConsumerWorkflow);
82
76
  kafkaReceiver.registerConsumer(KafkaExample.registeredConsumerWorkflow, 'another-example-topic', {
83
77
  config: { groupId: 'custom-group-id' },
84
78
  });
@@ -102,10 +96,7 @@ class KafkaExample {
102
96
  }
103
97
  }
104
98
 
105
- KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(
106
- KafkaExample.registeredConsumerWorkflow,
107
- 'registeredConsumerWorkflow',
108
- );
99
+ KafkaExample.registeredConsumerWorkflow = DBOS.registerWorkflow(KafkaExample.registeredConsumerWorkflow);
109
100
  kafkaReceiver.registerConsumer(KafkaExample.registeredConsumerWorkflow, 'another-example-topic', {
110
101
  queueName: 'example-queue',
111
102
  });
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { DBOSLifecycleCallback } from '@dbos-inc/dbos-sdk';
2
2
  import { KafkaJS } from '@confluentinc/kafka-javascript';
3
+ export type KafkaArgs = [string, number, KafkaJS.Message];
3
4
  interface KafkaRetryConfig {
4
5
  maxRetries: number;
5
6
  retryTime: number;
@@ -14,8 +15,8 @@ export declare class ConfluentKafkaReceiver 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 ConfluentKafkaReceiver extends DBOSLifecycleCallback {
24
25
  consumer(topics: ConsumerTopics, options?: {
25
26
  queueName?: string;
26
27
  config?: KafkaJS.ConsumerConstructorConfig;
27
- }): <This, Args extends [string, number, KafkaJS.Message], 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: KafkaJS.Message) => 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;AAEjE,OAAO,EAAE,OAAO,EAAiC,MAAM,gCAAgC,CAAC;AAYxF,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAiBD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtE,qBAAa,sBAAuB,SAAQ,qBAAqB;;IAI7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,MAAM,EAAE,OAAO,CAAC,WAAW,EAC3B,WAAW,GAAE,gBAAmE;IAMpF,UAAU;IA+DV,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,OAAO,CAAC,yBAAyB,CAAC;KACvC;IAcR,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAA;KAAO,0EAIrG,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;AAEjE,OAAO,EAAE,OAAO,EAAiC,MAAM,gCAAgC,CAAC;AAExF,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAW1D,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAiBD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEtE,qBAAa,sBAAuB,SAAQ,qBAAqB;;IAI7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,MAAM,EAAE,OAAO,CAAC,WAAW,EAC3B,WAAW,GAAE,gBAAmE;IAMpF,UAAU;IA+DV,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,OAAO,CAAC,yBAAyB,CAAC;KACvC;IAcR,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAA;KAAO,0BAIrG,MAAM,eACD,WAAW,cACZ,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,SAAS,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAA7C,IAAI,8DAAyB,QAAQ,MAAM,CAAC;CAc5F"}
package/dist/index.js CHANGED
@@ -101,7 +101,7 @@ class ConfluentKafkaReceiver extends dbos_sdk_1.DBOSLifecycleCallback {
101
101
  }
102
102
  registerConsumer(func, topics, options = {}) {
103
103
  const { regInfo } = dbos_sdk_1.DBOS.associateFunctionWithInfo(this, func, {
104
- classOrInst: options.classOrInst,
104
+ ctorOrProto: options.ctorOrProto,
105
105
  className: options.className,
106
106
  name: options.name ?? func.name,
107
107
  });
@@ -116,7 +116,7 @@ class ConfluentKafkaReceiver extends dbos_sdk_1.DBOSLifecycleCallback {
116
116
  function methodDecorator(target, propertyKey, descriptor) {
117
117
  if (descriptor.value) {
118
118
  $this.registerConsumer(descriptor.value, topics, {
119
- classOrInst: target,
119
+ ctorOrProto: target,
120
120
  name: String(propertyKey),
121
121
  queueName: options.queueName,
122
122
  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
@@ -2,7 +2,8 @@ import { DBOS, DBOSLifecycleCallback } from '@dbos-inc/dbos-sdk';
2
2
 
3
3
  import { KafkaJS, LibrdKafkaError as KafkaError } from '@confluentinc/kafka-javascript';
4
4
 
5
- type KafkaMessageHandler<Return> = (topic: string, partition: number, message: KafkaJS.Message) => Promise<Return>;
5
+ export type KafkaArgs = [string, number, KafkaJS.Message];
6
+ type KafkaMessageHandler<Return> = (...args: KafkaArgs) => Promise<Return>;
6
7
 
7
8
  const sleepms = (ms: number) => new Promise((r) => setTimeout(r, ms));
8
9
 
@@ -127,11 +128,11 @@ export class ConfluentKafkaReceiver extends DBOSLifecycleCallback {
127
128
  }
128
129
  }
129
130
 
130
- registerConsumer<This, Args extends unknown[], Return>(
131
- func: (this: This, ...args: Args) => Promise<Return>,
131
+ registerConsumer<This, Return>(
132
+ func: (this: This, ...args: KafkaArgs) => Promise<Return>,
132
133
  topics: ConsumerTopics,
133
134
  options: {
134
- classOrInst?: object;
135
+ ctorOrProto?: object;
135
136
  className?: string;
136
137
  name?: string;
137
138
  queueName?: string;
@@ -139,7 +140,7 @@ export class ConfluentKafkaReceiver extends DBOSLifecycleCallback {
139
140
  } = {},
140
141
  ) {
141
142
  const { regInfo } = DBOS.associateFunctionWithInfo(this, func, {
142
- classOrInst: options.classOrInst,
143
+ ctorOrProto: options.ctorOrProto,
143
144
  className: options.className,
144
145
  name: options.name ?? func.name,
145
146
  });
@@ -153,14 +154,14 @@ export class ConfluentKafkaReceiver extends DBOSLifecycleCallback {
153
154
  consumer(topics: ConsumerTopics, options: { queueName?: string; config?: KafkaJS.ConsumerConstructorConfig } = {}) {
154
155
  // eslint-disable-next-line @typescript-eslint/no-this-alias
155
156
  const $this = this;
156
- function methodDecorator<This, Args extends [string, number, KafkaJS.Message], Return>(
157
+ function methodDecorator<This, Return>(
157
158
  target: object,
158
159
  propertyKey: PropertyKey,
159
- descriptor: TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>,
160
+ descriptor: TypedPropertyDescriptor<(this: This, ...args: KafkaArgs) => Promise<Return>>,
160
161
  ) {
161
162
  if (descriptor.value) {
162
163
  $this.registerConsumer(descriptor.value, topics, {
163
- classOrInst: target,
164
+ ctorOrProto: target,
164
165
  name: String(propertyKey),
165
166
  queueName: options.queueName,
166
167
  config: options.config,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/confluent-kafka-receive",
3
- "version": "3.0.16-preview",
3
+ "version": "3.0.19-preview",
4
4
  "description": "DBOS event reciever for Kafka using the Confluent JavaScript Client for Apache Kafka",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -19,7 +19,13 @@ const kafkaConfig = {
19
19
  const kafkaReceiver = new ConfluentKafkaReceiver(kafkaConfig);
20
20
 
21
21
  interface KafkaEvents {
22
- message: (functionName: string, topic: string, partition: number, message: ConfluentKafkaJS.Message) => void;
22
+ message: (
23
+ functionName: string,
24
+ topic: string,
25
+ partition: number,
26
+ message: ConfluentKafkaJS.Message,
27
+ workflowID?: string,
28
+ ) => void;
23
29
  }
24
30
 
25
31
  class KafkaEmitter extends EventEmitter {
@@ -37,6 +43,7 @@ type KafkaMessageEvent = {
37
43
  topic: string;
38
44
  partition: number;
39
45
  message: ConfluentKafkaJS.Message;
46
+ workflowID?: string;
40
47
  };
41
48
 
42
49
  function waitForMessage(
@@ -47,10 +54,16 @@ function waitForMessage(
47
54
  ): Promise<KafkaMessageEvent> {
48
55
  return withTimeout(
49
56
  new Promise<KafkaMessageEvent>((resolve) => {
50
- const handler = (f: string, t: string, partition: number, message: ConfluentKafkaJS.Message) => {
57
+ const handler = (
58
+ f: string,
59
+ t: string,
60
+ partition: number,
61
+ message: ConfluentKafkaJS.Message,
62
+ workflowID?: string,
63
+ ) => {
51
64
  if (f === funcName && t === topic) {
52
65
  emitter.off('message', handler);
53
- resolve({ topic: t, partition, message });
66
+ resolve({ topic: t, partition, message, workflowID });
54
67
  }
55
68
  };
56
69
  emitter.on('message', handler);
@@ -67,37 +80,37 @@ class KafkaTestClass {
67
80
  @DBOS.workflow()
68
81
  static async stringTopic(topic: string, partition: number, message: ConfluentKafkaJS.Message) {
69
82
  await Promise.resolve();
70
- KafkaTestClass.emitter.emit('message', 'stringTopic', topic, partition, message);
83
+ KafkaTestClass.emitter.emit('message', 'stringTopic', topic, partition, message, DBOS.workflowID);
71
84
  }
72
85
 
73
86
  @kafkaReceiver.consumer(/^regex-topic-.*/)
74
87
  @DBOS.workflow()
75
88
  static async regexTopic(topic: string, partition: number, message: ConfluentKafkaJS.Message) {
76
89
  await Promise.resolve();
77
- KafkaTestClass.emitter.emit('message', 'regexTopic', topic, partition, message);
90
+ KafkaTestClass.emitter.emit('message', 'regexTopic', topic, partition, message, DBOS.workflowID);
78
91
  }
79
92
 
80
93
  @kafkaReceiver.consumer(['a-topic', 'b-topic'])
81
94
  @DBOS.workflow()
82
95
  static async stringArrayTopic(topic: string, partition: number, message: ConfluentKafkaJS.Message) {
83
96
  await Promise.resolve();
84
- KafkaTestClass.emitter.emit('message', 'stringArrayTopic', topic, partition, message);
97
+ KafkaTestClass.emitter.emit('message', 'stringArrayTopic', topic, partition, message, DBOS.workflowID);
85
98
  }
86
99
 
87
100
  @kafkaReceiver.consumer([/^z-topic-.*/, /^y-topic-.*/])
88
101
  @DBOS.workflow()
89
102
  static async regexArrayTopic(topic: string, partition: number, message: ConfluentKafkaJS.Message) {
90
103
  await Promise.resolve();
91
- KafkaTestClass.emitter.emit('message', 'regexArrayTopic', topic, partition, message);
104
+ KafkaTestClass.emitter.emit('message', 'regexArrayTopic', topic, partition, message, DBOS.workflowID);
92
105
  }
93
106
 
94
107
  static async registeredConsumer(topic: string, partition: number, message: ConfluentKafkaJS.Message) {
95
108
  await Promise.resolve();
96
- KafkaTestClass.emitter.emit('message', 'registeredConsumer', topic, partition, message);
109
+ KafkaTestClass.emitter.emit('message', 'registeredConsumer', topic, partition, message, DBOS.workflowID);
97
110
  }
98
111
  }
99
112
 
100
- KafkaTestClass.registeredConsumer = DBOS.registerWorkflow(KafkaTestClass.registeredConsumer, 'registeredConsumer');
113
+ KafkaTestClass.registeredConsumer = DBOS.registerWorkflow(KafkaTestClass.registeredConsumer);
101
114
  kafkaReceiver.registerConsumer(KafkaTestClass.registeredConsumer, 'registered-topic');
102
115
 
103
116
  async function validateKafka(config: KafkaConfig) {
@@ -243,6 +256,10 @@ suite('confluent-kafka-receive', async () => {
243
256
 
244
257
  assert.equal(topic, result.topic);
245
258
  assert.equal(message, String(result.message.value));
259
+ assert(!!result.workflowID);
260
+
261
+ const status = await DBOS.getWorkflowStatus(result.workflowID);
262
+ assert(!!status);
246
263
  });
247
264
  }
248
265
  });