@rsdk/kafka.producer.direct 3.6.0-next.2 → 3.6.0-next.4

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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.6.0-next.4](https://github.com/R-Vision/rsdk/compare/v3.6.0-next.3...v3.6.0-next.4) (2023-10-19)
7
+
8
+ **Note:** Version bump only for package @rsdk/kafka.producer.direct
9
+
10
+ ## [3.6.0-next.3](https://github.com/R-Vision/rsdk/compare/v3.6.0-next.2...v3.6.0-next.3) (2023-10-11)
11
+
12
+ ### Features
13
+
14
+ * **kafka.producer:** pfm-461-add-kafka-producer-plugin-with-producer-serializer ([3faeaa3](https://github.com/R-Vision/rsdk/commit/3faeaa30682eed824abf16200f684e5cb6f2e596))
15
+
6
16
  ## [3.6.0-next.2](https://github.com/R-Vision/rsdk/compare/v3.6.0-next.1...v3.6.0-next.2) (2023-10-10)
7
17
 
8
18
  **Note:** Version bump only for package @rsdk/kafka.producer.direct
@@ -1,12 +1,13 @@
1
1
  import type { EventType } from '@rsdk/kafka.common';
2
- import type { KafkaProducer, PublishOptions } from '@rsdk/kafka.producer';
2
+ import type { KafkaProducer, KafkaProducerConfig, PublishOptions } from '@rsdk/kafka.producer';
3
3
  import { BaseProducer } from '@rsdk/kafka.producer';
4
4
  import type { Producer } from 'kafkajs';
5
5
  export declare class DirectProducer<T extends EventType, P = T extends EventType<infer P> ? P : never> extends BaseProducer<T, P> implements KafkaProducer<P> {
6
6
  readonly eventType: T;
7
7
  private readonly client;
8
+ readonly kafkaProducerConfig: KafkaProducerConfig;
8
9
  static logger: import("@rsdk/logging").ILogger;
9
- constructor(eventType: T, client: Producer);
10
+ constructor(eventType: T, client: Producer, kafkaProducerConfig: KafkaProducerConfig);
10
11
  static getTopicName(eventType: EventType): string;
11
12
  publish(payload: P, options?: PublishOptions): Promise<void>;
12
13
  private getMessage;
@@ -8,11 +8,13 @@ const node_crypto_1 = require("node:crypto");
8
8
  class DirectProducer extends kafka_producer_1.BaseProducer {
9
9
  eventType;
10
10
  client;
11
+ kafkaProducerConfig;
11
12
  static logger = logging_1.LoggerFactory.create(DirectProducer);
12
- constructor(eventType, client) {
13
- super(eventType);
13
+ constructor(eventType, client, kafkaProducerConfig) {
14
+ super(eventType, kafkaProducerConfig);
14
15
  this.eventType = eventType;
15
16
  this.client = client;
17
+ this.kafkaProducerConfig = kafkaProducerConfig;
16
18
  }
17
19
  static getTopicName(eventType) {
18
20
  return `events.${eventType.$group}`;
@@ -37,15 +39,13 @@ class DirectProducer extends kafka_producer_1.BaseProducer {
37
39
  headers: {
38
40
  id: (0, node_crypto_1.randomUUID)(),
39
41
  type: this.eventType.$type,
40
- ...(options?.metadata && {
41
- metadata: JSON.stringify(options.metadata),
42
- }),
42
+ metadata: JSON.stringify(this.addSerializeFormatToMetadata(options?.metadata ?? {})),
43
43
  },
44
44
  key: JSON.stringify({
45
45
  schema: { type: 'string', optional: false },
46
46
  payload: this.getPayload(payload, options),
47
47
  }),
48
- value: Buffer.from(this.eventType.encode(payload).finish()),
48
+ value: this.serializePayload(payload),
49
49
  };
50
50
  }
51
51
  getPayload(payload, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"direct.producer.js","sourceRoot":"","sources":["../src/direct.producer.ts"],"names":[],"mappings":";;;AACA,qDAAiE;AAEjE,yDAAoD;AACpD,2CAA8C;AAE9C,6CAAyC;AAEzC,MAAa,cAIX,SAAQ,6BAAkB;IAMN;IACD;IAJnB,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAErD,YACoB,SAAY,EACb,MAAgB;QAEjC,KAAK,CAAC,SAAS,CAAC,CAAC;QAHC,cAAS,GAAT,SAAS,CAAG;QACb,WAAM,GAAN,MAAM,CAAU;IAGnC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,SAAoB;QACtC,OAAO,UAAU,SAAS,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAU,EAAE,OAAwB;QAChD,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC9C,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,0CAA2B,CAC7B,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3C;gBACE,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO;aACjB,CACF,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACvB;IACH,CAAC;IAEO,UAAU,CAAC,OAAU,EAAE,OAAwB;QACrD,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,EAAE,IAAA,wBAAU,GAAE;gBAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;gBAC1B,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI;oBACvB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC3C,CAAC;aACH;YACD,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;aAC3C,CAAC;YACF,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5D,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,OAAU,EAAE,OAAwB;QACrD,OAAO,OAAO,EAAE,YAAY;YAC1B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;;AA5DH,wCA6DC"}
1
+ {"version":3,"file":"direct.producer.js","sourceRoot":"","sources":["../src/direct.producer.ts"],"names":[],"mappings":";;;AACA,qDAAiE;AAMjE,yDAAoD;AACpD,2CAA8C;AAE9C,6CAAyC;AAEzC,MAAa,cAIX,SAAQ,6BAAkB;IAMN;IACD;IACC;IALpB,MAAM,CAAC,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAErD,YACoB,SAAY,EACb,MAAgB,EACf,mBAAwC;QAE1D,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAJpB,cAAS,GAAT,SAAS,CAAG;QACb,WAAM,GAAN,MAAM,CAAU;QACf,wBAAmB,GAAnB,mBAAmB,CAAqB;IAG5D,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,SAAoB;QACtC,OAAO,UAAU,SAAS,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAU,EAAE,OAAwB;QAChD,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrB,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAC9C,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,0CAA2B,CAC7B,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3C;gBACE,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO;aACjB,CACF,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACvB;IACH,CAAC;IAEO,UAAU,CAAC,OAAU,EAAE,OAAwB;QACrD,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,EAAE,IAAA,wBAAU,GAAE;gBAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;gBAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS,CACtB,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAC3D;aACF;YACD,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC3C,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;aAC3C,CAAC;YACF,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;SACtC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,OAAU,EAAE,OAAwB;QACrD,OAAO,OAAO,EAAE,YAAY;YAC1B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;;AA7DH,wCA8DC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.KafkaDirectProducer = void 0;
7
7
  const autodoc_protocol_1 = require("@rsdk/autodoc.protocol");
8
8
  const kafka_common_1 = require("@rsdk/kafka.common");
9
+ const kafka_producer_1 = require("@rsdk/kafka.producer");
9
10
  const metadata_1 = require("@rsdk/metadata");
10
11
  const omit_1 = __importDefault(require("lodash/omit"));
11
12
  const autodoc_resolver_1 = require("./metadata/autodoc.resolver");
@@ -17,10 +18,10 @@ class KafkaDirectProducer {
17
18
  static forEvent(eventType) {
18
19
  const eventTypes = Array.isArray(eventType) ? eventType : [eventType];
19
20
  const providers = eventTypes.map((eventType) => ({
20
- inject: [kafka_common_1.KAFKA_PRODUCER_INJECTION_TOKEN],
21
+ inject: [kafka_common_1.KAFKA_PRODUCER_INJECTION_TOKEN, kafka_producer_1.KafkaProducerConfig],
21
22
  provide: eventType.$type,
22
- useFactory: (producer) => {
23
- return new direct_producer_1.DirectProducer(eventType, producer);
23
+ useFactory: (producer, kafkaProducerPluginConfig) => {
24
+ return new direct_producer_1.DirectProducer(eventType, producer, kafkaProducerPluginConfig);
24
25
  },
25
26
  }));
26
27
  const moduleDef = {
@@ -1 +1 @@
1
- {"version":3,"file":"direct.strategy.js","sourceRoot":"","sources":["../src/direct.strategy.ts"],"names":[],"mappings":";;;;;;AACA,6DAAyD;AAEzD,qDAM4B;AAC5B,6CAA8C;AAE9C,uDAA+B;AAE/B,kEAAiF;AACjF,wFAAkF;AAClF,uDAAmD;AAEnD,cAAc;AACd,MAAa,mBAAmB;IAC9B,cAAc;IACd,MAAM,CAAC,QAAQ,CAAC,SAAkC;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,EAAE,CAAC,6CAA8B,CAAC;YACxC,OAAO,EAAE,SAAS,CAAC,KAAK;YACxB,UAAU,EAAE,CAAC,QAAkB,EAA6B,EAAE;gBAC5D,OAAO,IAAI,gCAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,CAAC,gCAAiB,EAAE,wDAAyB,CAAC;YACvD,SAAS;YACT,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;SACjD,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,uBAAY,CACxC,SAAS,EACT,8CAA+B,CAChC,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,iBAAiB,CAAC,GAAG,CAAC;gBACpB,IAAI,EAAE,6BAAc,CAAC,OAAO;gBAC5B,SAAS,EAAE,IAAA,2BAAY,EAAC,SAAS,CAAC;gBAClC,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,iBAAiB,EAAE,SAAS,CAAC,kBAAkB;gBAC/C,SAAS,EAAE,IAAA,cAAI,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACzD,CAAC,CAAC;SACJ;QAED,kCAAe,CAAC,cAAc,CAC5B,SAAS,EACT,8CAA+B,EAC/B,qDAAkC,CACnC,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA3CD,kDA2CC"}
1
+ {"version":3,"file":"direct.strategy.js","sourceRoot":"","sources":["../src/direct.strategy.ts"],"names":[],"mappings":";;;;;;AACA,6DAAyD;AAEzD,qDAM4B;AAC5B,yDAA2D;AAC3D,6CAA8C;AAE9C,uDAA+B;AAE/B,kEAAiF;AACjF,wFAAkF;AAClF,uDAAmD;AAEnD,cAAc;AACd,MAAa,mBAAmB;IAC9B,cAAc;IACd,MAAM,CAAC,QAAQ,CAAC,SAAkC;QAChD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEtE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,EAAE,CAAC,6CAA8B,EAAE,oCAAmB,CAAC;YAC7D,OAAO,EAAE,SAAS,CAAC,KAAK;YACxB,UAAU,EAAE,CACV,QAAkB,EAClB,yBAA8C,EACnB,EAAE;gBAC7B,OAAO,IAAI,gCAAc,CACvB,SAAS,EACT,QAAQ,EACR,yBAAyB,CAC1B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,CAAC,gCAAiB,EAAE,wDAAyB,CAAC;YACvD,SAAS;YACT,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;SACjD,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,uBAAY,CACxC,SAAS,EACT,8CAA+B,CAChC,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,iBAAiB,CAAC,GAAG,CAAC;gBACpB,IAAI,EAAE,6BAAc,CAAC,OAAO;gBAC5B,SAAS,EAAE,IAAA,2BAAY,EAAC,SAAS,CAAC;gBAClC,KAAK,EAAE,SAAS,CAAC,MAAM;gBACvB,iBAAiB,EAAE,SAAS,CAAC,kBAAkB;gBAC/C,SAAS,EAAE,IAAA,cAAI,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACzD,CAAC,CAAC;SACJ;QAED,kCAAe,CAAC,cAAc,CAC5B,SAAS,EACT,8CAA+B,EAC/B,qDAAkC,CACnC,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAlDD,kDAkDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/kafka.producer.direct",
3
- "version": "3.6.0-next.2",
3
+ "version": "3.6.0-next.4",
4
4
  "description": "Publishing messages directly to kafka",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -15,9 +15,9 @@
15
15
  "@nestjs/microservices": "^10.1.3",
16
16
  "@rsdk/autodoc.protocol": "^3.6.0-next.0",
17
17
  "@rsdk/common": "^3.5.0",
18
- "@rsdk/core": "^3.6.0-next.2",
19
- "@rsdk/kafka.common": "^3.6.0-next.2",
20
- "@rsdk/kafka.producer": "^3.6.0-next.2",
18
+ "@rsdk/core": "^3.6.0-next.4",
19
+ "@rsdk/kafka.common": "^3.6.0-next.4",
20
+ "@rsdk/kafka.producer": "^3.6.0-next.4",
21
21
  "@rsdk/logging": "^3.5.0",
22
22
  "@rsdk/metadata": "^3.6.0-next.0",
23
23
  "kafkajs": "^2.2.4"
@@ -25,5 +25,5 @@
25
25
  "dependencies": {
26
26
  "lodash": "^4.17.21"
27
27
  },
28
- "gitHead": "9852255e942109015c5e47acaf73ae3c00c703cd"
28
+ "gitHead": "d1364b9fd2d8de474e76d1013f7adbcb5bb48878"
29
29
  }
@@ -1,6 +1,10 @@
1
1
  import type { EventType } from '@rsdk/kafka.common';
2
2
  import { ServerKafkaExceptionFactory } from '@rsdk/kafka.common';
3
- import type { KafkaProducer, PublishOptions } from '@rsdk/kafka.producer';
3
+ import type {
4
+ KafkaProducer,
5
+ KafkaProducerConfig,
6
+ PublishOptions,
7
+ } from '@rsdk/kafka.producer';
4
8
  import { BaseProducer } from '@rsdk/kafka.producer';
5
9
  import { LoggerFactory } from '@rsdk/logging';
6
10
  import type { Message, Producer } from 'kafkajs';
@@ -18,8 +22,9 @@ export class DirectProducer<
18
22
  constructor(
19
23
  override readonly eventType: T,
20
24
  private readonly client: Producer,
25
+ override readonly kafkaProducerConfig: KafkaProducerConfig,
21
26
  ) {
22
- super(eventType);
27
+ super(eventType, kafkaProducerConfig);
23
28
  }
24
29
 
25
30
  static getTopicName(eventType: EventType): string {
@@ -50,15 +55,15 @@ export class DirectProducer<
50
55
  headers: {
51
56
  id: randomUUID(),
52
57
  type: this.eventType.$type,
53
- ...(options?.metadata && {
54
- metadata: JSON.stringify(options.metadata),
55
- }),
58
+ metadata: JSON.stringify(
59
+ this.addSerializeFormatToMetadata(options?.metadata ?? {}),
60
+ ),
56
61
  },
57
62
  key: JSON.stringify({
58
63
  schema: { type: 'string', optional: false },
59
64
  payload: this.getPayload(payload, options),
60
65
  }),
61
- value: Buffer.from(this.eventType.encode(payload).finish()),
66
+ value: this.serializePayload(payload),
62
67
  };
63
68
  }
64
69
 
@@ -8,6 +8,7 @@ import {
8
8
  KafkaClientModule,
9
9
  KafkaTopicType,
10
10
  } from '@rsdk/kafka.common';
11
+ import { KafkaProducerConfig } from '@rsdk/kafka.producer';
11
12
  import { RsdkMetadata } from '@rsdk/metadata';
12
13
  import type { Producer } from 'kafkajs';
13
14
  import omit from 'lodash/omit';
@@ -23,10 +24,17 @@ export class KafkaDirectProducer {
23
24
  const eventTypes = Array.isArray(eventType) ? eventType : [eventType];
24
25
 
25
26
  const providers = eventTypes.map((eventType) => ({
26
- inject: [KAFKA_PRODUCER_INJECTION_TOKEN],
27
+ inject: [KAFKA_PRODUCER_INJECTION_TOKEN, KafkaProducerConfig],
27
28
  provide: eventType.$type,
28
- useFactory: (producer: Producer): DirectProducer<EventType> => {
29
- return new DirectProducer(eventType, producer);
29
+ useFactory: (
30
+ producer: Producer,
31
+ kafkaProducerPluginConfig: KafkaProducerConfig,
32
+ ): DirectProducer<EventType> => {
33
+ return new DirectProducer(
34
+ eventType,
35
+ producer,
36
+ kafkaProducerPluginConfig,
37
+ );
30
38
  },
31
39
  }));
32
40