@rsdk/kafka.producer.direct 3.0.2 → 3.1.0-next.1

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.1.0-next.1](https://github.com/R-Vision/rsdk/compare/v3.1.0-next.0...v3.1.0-next.1) (2023-08-08)
7
+
8
+ **Note:** Version bump only for package @rsdk/kafka.producer.direct
9
+
10
+ ## [3.1.0-next.0](https://github.com/R-Vision/rsdk/compare/v3.0.2...v3.1.0-next.0) (2023-08-08)
11
+
12
+ ### Features
13
+
14
+ * **kafka:** added option to consume by topic name ([#93](https://github.com/R-Vision/rsdk/issues/93)) ([09b4c1b](https://github.com/R-Vision/rsdk/commit/09b4c1bd515c1c2c3ccda17851fbe79e64ea8ac5))
15
+
6
16
  ## [3.0.2](https://github.com/R-Vision/rsdk/compare/v3.0.1...v3.0.2) (2023-08-07)
7
17
 
8
18
  **Note:** Version bump only for package @rsdk/kafka.producer.direct
@@ -2,13 +2,13 @@ import type { EventType } from '@rsdk/kafka.common';
2
2
  import type { KafkaProducer, PublishOptions } from '@rsdk/kafka.producer';
3
3
  import { BaseProducer } from '@rsdk/kafka.producer';
4
4
  import type { Producer } from 'kafkajs';
5
- export declare class DirectProducer<T extends EventType> extends BaseProducer<T> implements KafkaProducer<T> {
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
8
  static logger: import("@rsdk/logging").ILogger;
9
9
  constructor(eventType: T, client: Producer);
10
10
  static getTopicName(eventType: EventType): string;
11
- publish(payload: T, options?: PublishOptions): Promise<void>;
11
+ publish(payload: P, options?: PublishOptions): Promise<void>;
12
12
  private getMessage;
13
13
  private getPayload;
14
14
  }
@@ -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,cACX,SAAQ,6BAAe;IAMH;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;;AAzDH,wCA0DC"}
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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.kafkaProducerDirectAutodocResolver = exports.KafkaProducerDirectAutodocResolver = void 0;
4
4
  const autodoc_protocol_1 = require("@rsdk/autodoc.protocol");
5
+ const kafka_common_1 = require("@rsdk/kafka.common");
5
6
  const constants_1 = require("../constants");
6
7
  class KafkaProducerDirectAutodocResolver {
7
8
  getNode(rsdkMetadataProvider) {
@@ -9,11 +10,13 @@ class KafkaProducerDirectAutodocResolver {
9
10
  if (!resources) {
10
11
  return null;
11
12
  }
12
- return new autodoc_protocol_1.Composite(new autodoc_protocol_1.Table(resources.map((resource) => {
13
+ return new autodoc_protocol_1.Composite(new autodoc_protocol_1.Table(resources
14
+ .filter((resource) => resource.value.type === kafka_common_1.KafkaTopicType.Produce)
15
+ .map((resource) => {
13
16
  const { topicName, group: group, partitionKeyField, eventType, } = resource.value;
14
17
  return {
15
18
  TopicName: topicName,
16
- Group: group,
19
+ Group: group ?? '-',
17
20
  PartitionKeyField: partitionKeyField ?? '-',
18
21
  EventType: eventType?.$type ?? '-',
19
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"autodoc.resolver.js","sourceRoot":"","sources":["../../src/metadata/autodoc.resolver.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAI1D,4CAAkE;AAElE,MAAa,kCAAkC;IAC7C,OAAO,CAAC,oBAA0C;QAChD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CACxC,8CAAkC,CACnC,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,4BAAS,CAClB,IAAI,wBAAK,CACP,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzB,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,KAAK,EACZ,iBAAiB,EACjB,SAAS,GACV,GAAG,QAAQ,CAAC,KAAK,CAAC;YAEnB,OAAO;gBACL,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,KAAK;gBACZ,iBAAiB,EAAE,iBAAiB,IAAI,GAAG;gBAC3C,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,GAAG;aACnC,CAAC;QACJ,CAAC,CAAC,CACH,EACD,uBAAuB,CACxB,CAAC;IACJ,CAAC;CACF;AA/BD,gFA+BC;AAEY,QAAA,kCAAkC,GAC7C,IAAI,kCAAkC,EAAE,CAAC"}
1
+ {"version":3,"file":"autodoc.resolver.js","sourceRoot":"","sources":["../../src/metadata/autodoc.resolver.ts"],"names":[],"mappings":";;;AACA,6DAA0D;AAE1D,qDAAoD;AAIpD,4CAAkE;AAElE,MAAa,kCAAkC;IAC7C,OAAO,CAAC,oBAA0C;QAChD,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CACxC,8CAAkC,CACnC,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,4BAAS,CAClB,IAAI,wBAAK,CACP,SAAS;aACN,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,6BAAc,CAAC,OAAO,CAAC;aACpE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,MAAM,EACJ,SAAS,EACT,KAAK,EAAE,KAAK,EACZ,iBAAiB,EACjB,SAAS,GACV,GAAkC,QAAQ,CAAC,KAAK,CAAC;YAElD,OAAO;gBACL,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE,KAAK,IAAI,GAAG;gBACnB,iBAAiB,EAAE,iBAAiB,IAAI,GAAG;gBAC3C,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,GAAG;aACnC,CAAC;QACJ,CAAC,CAAC,CACL,EACD,uBAAuB,CACxB,CAAC;IACJ,CAAC;CACF;AAjCD,gFAiCC;AAEY,QAAA,kCAAkC,GAC7C,IAAI,kCAAkC,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdk/kafka.producer.direct",
3
- "version": "3.0.2",
3
+ "version": "3.1.0-next.1",
4
4
  "description": "Publishing messages directly to kafka",
5
5
  "license": "Apache License 2.0",
6
6
  "publishConfig": {
@@ -13,17 +13,17 @@
13
13
  "peerDependencies": {
14
14
  "@nestjs/common": "^10.1.3",
15
15
  "@nestjs/microservices": "^10.1.3",
16
- "@rsdk/autodoc.protocol": "^3.0.2",
17
- "@rsdk/common": "^3.0.2",
18
- "@rsdk/core": "^3.0.2",
19
- "@rsdk/kafka.common": "^3.0.2",
20
- "@rsdk/kafka.producer": "^3.0.2",
21
- "@rsdk/logging": "^3.0.2",
22
- "@rsdk/metadata": "^3.0.2",
16
+ "@rsdk/autodoc.protocol": "^3.1.0-next.0",
17
+ "@rsdk/common": "^3.1.0-next.0",
18
+ "@rsdk/core": "^3.1.0-next.1",
19
+ "@rsdk/kafka.common": "^3.1.0-next.1",
20
+ "@rsdk/kafka.producer": "^3.1.0-next.1",
21
+ "@rsdk/logging": "^3.1.0-next.0",
22
+ "@rsdk/metadata": "^3.1.0-next.0",
23
23
  "kafkajs": "^2.2.4"
24
24
  },
25
25
  "dependencies": {
26
26
  "lodash": "^4.17.21"
27
27
  },
28
- "gitHead": "3ee33710bf18bfadf87a6da92b060e6a17481110"
28
+ "gitHead": "e9002b175fb3d24b9bae5169df59bd250091672c"
29
29
  }
@@ -6,9 +6,12 @@ import { LoggerFactory } from '@rsdk/logging';
6
6
  import type { Message, Producer } from 'kafkajs';
7
7
  import { randomUUID } from 'node:crypto';
8
8
 
9
- export class DirectProducer<T extends EventType>
10
- extends BaseProducer<T>
11
- implements KafkaProducer<T>
9
+ export class DirectProducer<
10
+ T extends EventType,
11
+ P = T extends EventType<infer P> ? P : never,
12
+ >
13
+ extends BaseProducer<T, P>
14
+ implements KafkaProducer<P>
12
15
  {
13
16
  static logger = LoggerFactory.create(DirectProducer);
14
17
 
@@ -23,7 +26,7 @@ export class DirectProducer<T extends EventType>
23
26
  return `events.${eventType.$group}`;
24
27
  }
25
28
 
26
- async publish(payload: T, options?: PublishOptions): Promise<void> {
29
+ async publish(payload: P, options?: PublishOptions): Promise<void> {
27
30
  const topicName = DirectProducer.getTopicName(this.eventType);
28
31
 
29
32
  try {
@@ -42,7 +45,7 @@ export class DirectProducer<T extends EventType>
42
45
  }
43
46
  }
44
47
 
45
- private getMessage(payload: T, options?: PublishOptions): Message {
48
+ private getMessage(payload: P, options?: PublishOptions): Message {
46
49
  return {
47
50
  headers: {
48
51
  id: randomUUID(),
@@ -59,7 +62,7 @@ export class DirectProducer<T extends EventType>
59
62
  };
60
63
  }
61
64
 
62
- private getPayload(payload: T, options?: PublishOptions): string {
65
+ private getPayload(payload: P, options?: PublishOptions): string {
63
66
  return options?.partitionKey
64
67
  ? String(options.partitionKey)
65
68
  : this.getPartitionKey(payload, this.eventType.$partitionKeyField);
@@ -1,6 +1,8 @@
1
1
  import type { DocumentResolver } from '@rsdk/autodoc.protocol';
2
2
  import { Composite, Table } from '@rsdk/autodoc.protocol';
3
3
  import type { KafkaTopicMetadata } from '@rsdk/kafka.common';
4
+ import { KafkaTopicType } from '@rsdk/kafka.common';
5
+ import type { KafkaTopicMetadataByEventType } from '@rsdk/kafka.common/dist/metadata/kafka.metadata';
4
6
  import type { RsdkMetadataProvider } from '@rsdk/metadata';
5
7
 
6
8
  import { KAFKA_PRODUCED_RSDK_METADATA_SCOPE } from '../constants';
@@ -17,21 +19,23 @@ export class KafkaProducerDirectAutodocResolver implements DocumentResolver {
17
19
 
18
20
  return new Composite(
19
21
  new Table(
20
- resources.map((resource) => {
21
- const {
22
- topicName,
23
- group: group,
24
- partitionKeyField,
25
- eventType,
26
- } = resource.value;
22
+ resources
23
+ .filter((resource) => resource.value.type === KafkaTopicType.Produce)
24
+ .map((resource) => {
25
+ const {
26
+ topicName,
27
+ group: group,
28
+ partitionKeyField,
29
+ eventType,
30
+ } = <KafkaTopicMetadataByEventType>resource.value;
27
31
 
28
- return {
29
- TopicName: topicName,
30
- Group: group,
31
- PartitionKeyField: partitionKeyField ?? '-',
32
- EventType: eventType?.$type ?? '-',
33
- };
34
- }),
32
+ return {
33
+ TopicName: topicName,
34
+ Group: group ?? '-',
35
+ PartitionKeyField: partitionKeyField ?? '-',
36
+ EventType: eventType?.$type ?? '-',
37
+ };
38
+ }),
35
39
  ),
36
40
  'Kafka producer direct',
37
41
  );
@@ -1,6 +0,0 @@
1
- import { RsdkMetadataProvider } from '@rsdk/metadata';
2
- export declare class ProducedTopicsProvider {
3
- private readonly rsdkMetadataProvider;
4
- constructor(rsdkMetadataProvider: RsdkMetadataProvider);
5
- getTopics(): string[];
6
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ProducedTopicsProvider = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const kafka_common_1 = require("@rsdk/kafka.common");
15
- const metadata_1 = require("@rsdk/metadata");
16
- const constants_1 = require("./constants");
17
- let ProducedTopicsProvider = class ProducedTopicsProvider {
18
- rsdkMetadataProvider;
19
- constructor(rsdkMetadataProvider) {
20
- this.rsdkMetadataProvider = rsdkMetadataProvider;
21
- }
22
- getTopics() {
23
- const resources = this.rsdkMetadataProvider.get(constants_1.KAFKA_PRODUCED_RSDK_META_KEY);
24
- return resources.map((value) => {
25
- return (0, kafka_common_1.getTopicName)(value.value.eventType);
26
- });
27
- }
28
- };
29
- ProducedTopicsProvider = __decorate([
30
- (0, common_1.Injectable)(),
31
- __metadata("design:paramtypes", [metadata_1.RsdkMetadataProvider])
32
- ], ProducedTopicsProvider);
33
- exports.ProducedTopicsProvider = ProducedTopicsProvider;
34
- //# sourceMappingURL=consume-topic-provider.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"consume-topic-provider.service.js","sourceRoot":"","sources":["../src/consume-topic-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,qDAAkD;AAElD,6CAAsD;AAEtD,2CAA2D;AAE3D,IACa,sBAAsB,GADnC,MACa,sBAAsB;IACJ;IAA7B,YAA6B,oBAA0C;QAA1C,yBAAoB,GAApB,oBAAoB,CAAsB;IAAG,CAAC;IAE3E,SAAS;QACP,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAE5C,wCAA4B,CAAC,CAAC;QAEjC,OAAO,SAAS,CAAC,GAAG,CAClB,CAAC,KAAyC,EAAU,EAAE;YACpD,OAAO,IAAA,2BAAY,EAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AAdY,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAEwC,+BAAoB;GAD5D,sBAAsB,CAclC;AAdY,wDAAsB"}
@@ -1,9 +0,0 @@
1
- import type { CheckResult, HealthIndicator } from '@rsdk/core';
2
- import { Kafka } from 'kafkajs';
3
- import { ProducedTopicsProvider } from './consume-topic-provider.service';
4
- export declare class KafkaProducerDirectHealthIndicator implements HealthIndicator {
5
- private readonly kafkaClient;
6
- private readonly topicStorage;
7
- constructor(kafkaClient: Kafka, topicStorage: ProducedTopicsProvider);
8
- check(): Promise<CheckResult>;
9
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.KafkaProducerDirectHealthIndicator = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const core_1 = require("@rsdk/core");
18
- const kafka_common_1 = require("@rsdk/kafka.common");
19
- const kafkajs_1 = require("kafkajs");
20
- const consume_topic_provider_service_1 = require("./consume-topic-provider.service");
21
- const kafka_client_1 = require("./kafka.client");
22
- let KafkaProducerDirectHealthIndicator = class KafkaProducerDirectHealthIndicator {
23
- kafkaClient;
24
- topicStorage;
25
- constructor(kafkaClient, topicStorage) {
26
- this.kafkaClient = kafkaClient;
27
- this.topicStorage = topicStorage;
28
- }
29
- async check() {
30
- return new kafka_common_1.KafkaHealthcheck(this.kafkaClient, this.topicStorage.getTopics()).check();
31
- }
32
- };
33
- KafkaProducerDirectHealthIndicator = __decorate([
34
- (0, core_1.Indicator)('kafka-producer-direct', {
35
- description: 'Check kafka connection',
36
- }),
37
- __param(0, (0, common_1.Inject)(kafka_client_1.KAFKA_INJECTION_TOKEN)),
38
- __metadata("design:paramtypes", [kafkajs_1.Kafka,
39
- consume_topic_provider_service_1.ProducedTopicsProvider])
40
- ], KafkaProducerDirectHealthIndicator);
41
- exports.KafkaProducerDirectHealthIndicator = KafkaProducerDirectHealthIndicator;
42
- //# sourceMappingURL=direct.healthcheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"direct.healthcheck.js","sourceRoot":"","sources":["../src/direct.healthcheck.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwC;AAExC,qCAAuC;AACvC,qDAAsD;AACtD,qCAAgC;AAEhC,qFAA0E;AAC1E,iDAAuD;AAKhD,IAAM,kCAAkC,GAAxC,MAAM,kCAAkC;IAEK;IAC/B;IAFnB,YACkD,WAAkB,EACjD,YAAoC;QADL,gBAAW,GAAX,WAAW,CAAO;QACjD,iBAAY,GAAZ,YAAY,CAAwB;IACpD,CAAC;IAEJ,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,+BAAgB,CACzB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAC9B,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;CACF,CAAA;AAZY,kCAAkC;IAH9C,IAAA,gBAAS,EAAC,uBAAuB,EAAE;QAClC,WAAW,EAAE,wBAAwB;KACtC,CAAC;IAGG,WAAA,IAAA,eAAM,EAAC,oCAAqB,CAAC,CAAA;qCAA+B,eAAK;QACnC,uDAAsB;GAH5C,kCAAkC,CAY9C;AAZY,gFAAkC"}
@@ -1,18 +0,0 @@
1
- import { InternalException } from '@rsdk/core';
2
- import type { EventType } from '@rsdk/kafka.common';
3
- export declare class DirectProducerException extends InternalException {
4
- readonly topicName: string;
5
- readonly eventType: EventType;
6
- readonly message: string;
7
- constructor(topicName: string, eventType: EventType, message: string, cause?: unknown);
8
- }
9
- export declare class NotHostPartition extends DirectProducerException {
10
- readonly eventType: EventType;
11
- readonly topicName: string;
12
- constructor(eventType: EventType, topicName: string, cause: unknown);
13
- }
14
- export declare class UnknownKafkaClientException extends DirectProducerException {
15
- readonly eventType: EventType;
16
- readonly topicName: string;
17
- constructor(eventType: EventType, topicName: string, cause?: unknown);
18
- }
package/dist/exception.js DELETED
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnknownKafkaClientException = exports.NotHostPartition = exports.DirectProducerException = void 0;
4
- const core_1 = require("@rsdk/core");
5
- class DirectProducerException extends core_1.InternalException {
6
- topicName;
7
- eventType;
8
- message;
9
- constructor(topicName, eventType, message, cause) {
10
- super(message, {
11
- details: {
12
- eventType,
13
- topicName,
14
- cause,
15
- },
16
- });
17
- this.topicName = topicName;
18
- this.eventType = eventType;
19
- this.message = message;
20
- }
21
- }
22
- exports.DirectProducerException = DirectProducerException;
23
- class NotHostPartition extends DirectProducerException {
24
- eventType;
25
- topicName;
26
- constructor(eventType, topicName, cause) {
27
- super(topicName, eventType, `Not host this topic-partition ${eventType.$type}`, cause);
28
- this.eventType = eventType;
29
- this.topicName = topicName;
30
- }
31
- }
32
- exports.NotHostPartition = NotHostPartition;
33
- class UnknownKafkaClientException extends DirectProducerException {
34
- eventType;
35
- topicName;
36
- constructor(eventType, topicName, cause) {
37
- super(topicName, eventType, `Unknown kafkajs producer error`, cause);
38
- this.eventType = eventType;
39
- this.topicName = topicName;
40
- }
41
- }
42
- exports.UnknownKafkaClientException = UnknownKafkaClientException;
43
- //# sourceMappingURL=exception.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exception.js","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAG/C,MAAa,uBAAwB,SAAQ,wBAAiB;IAEjD;IACA;IACA;IAHX,YACW,SAAiB,EACjB,SAAoB,EACpB,OAAe,EACxB,KAAe;QAEf,KAAK,CAAC,OAAO,EAAE;YACb,OAAO,EAAE;gBACP,SAAS;gBACT,SAAS;gBACT,KAAK;aACN;SACF,CAAC,CAAC;QAXM,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAQ;IAU1B,CAAC;CACF;AAfD,0DAeC;AAED,MAAa,gBAAiB,SAAQ,uBAAuB;IAEhD;IACA;IAFX,YACW,SAAoB,EACpB,SAAiB,EAC1B,KAAc;QAEd,KAAK,CACH,SAAS,EACT,SAAS,EACT,iCAAiC,SAAS,CAAC,KAAK,EAAE,EAClD,KAAK,CACN,CAAC;QATO,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAQ;IAS5B,CAAC;CACF;AAbD,4CAaC;AAED,MAAa,2BAA4B,SAAQ,uBAAuB;IAE3D;IACA;IAFX,YACW,SAAoB,EACpB,SAAiB,EAC1B,KAAe;QAEf,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAJ5D,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAQ;IAI5B,CAAC;CACF;AARD,kEAQC"}
@@ -1,7 +0,0 @@
1
- import { type FactoryProvider } from '@nestjs/common';
2
- export declare const KAFKA_INJECTION_TOKEN: unique symbol;
3
- export declare const KAFKA_PRODUCER_INJECTION_TOKEN: unique symbol;
4
- export declare const InjectKafka: () => ParameterDecorator;
5
- export declare const InjectKafkaProducer: () => ParameterDecorator;
6
- export declare const KafkaClient: FactoryProvider;
7
- export declare const KafkaProducer: FactoryProvider;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KafkaProducer = exports.KafkaClient = exports.InjectKafkaProducer = exports.InjectKafka = exports.KAFKA_PRODUCER_INJECTION_TOKEN = exports.KAFKA_INJECTION_TOKEN = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const core_1 = require("@rsdk/core");
6
- const kafka_common_1 = require("@rsdk/kafka.common");
7
- const logging_1 = require("@rsdk/logging");
8
- const kafkajs_1 = require("kafkajs");
9
- const kafka_config_1 = require("./kafka.config");
10
- exports.KAFKA_INJECTION_TOKEN = Symbol('Kafka');
11
- exports.KAFKA_PRODUCER_INJECTION_TOKEN = Symbol('KafkaProducer');
12
- const InjectKafka = () => (0, common_1.Inject)(exports.KAFKA_INJECTION_TOKEN);
13
- exports.InjectKafka = InjectKafka;
14
- const InjectKafkaProducer = () => (0, common_1.Inject)(exports.KAFKA_PRODUCER_INJECTION_TOKEN);
15
- exports.InjectKafkaProducer = InjectKafkaProducer;
16
- exports.KafkaClient = {
17
- inject: [kafka_config_1.KafkaConfig, core_1.APP_NAME],
18
- provide: exports.KAFKA_INJECTION_TOKEN,
19
- useFactory(config, name) {
20
- const logger = logging_1.LoggerFactory.create('NativeKafkaProducer');
21
- return new kafkajs_1.Kafka({
22
- clientId: `${name}-${process.pid}`,
23
- brokers: config.brokers,
24
- logCreator: (0, kafka_common_1.createLoggerAdapter)(logger),
25
- });
26
- },
27
- };
28
- exports.KafkaProducer = {
29
- inject: [exports.KAFKA_INJECTION_TOKEN],
30
- provide: exports.KAFKA_PRODUCER_INJECTION_TOKEN,
31
- useFactory(kafka) {
32
- return kafka.producer({
33
- allowAutoTopicCreation: false,
34
- createPartitioner: kafkajs_1.Partitioners.DefaultPartitioner,
35
- retry: { retries: 0 },
36
- });
37
- },
38
- };
39
- //# sourceMappingURL=kafka.client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafka.client.js","sourceRoot":"","sources":["../src/kafka.client.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAC9D,qCAAsC;AACtC,qDAAyD;AACzD,2CAA8C;AAE9C,qCAA8C;AAE9C,iDAA6C;AAEhC,QAAA,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,QAAA,8BAA8B,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAE/D,MAAM,WAAW,GAAG,GAAuB,EAAE,CAClD,IAAA,eAAM,EAAC,6BAAqB,CAAC,CAAC;AADnB,QAAA,WAAW,eACQ;AACzB,MAAM,mBAAmB,GAAG,GAAuB,EAAE,CAC1D,IAAA,eAAM,EAAC,sCAA8B,CAAC,CAAC;AAD5B,QAAA,mBAAmB,uBACS;AAE5B,QAAA,WAAW,GAAoB;IAC1C,MAAM,EAAE,CAAC,0BAAW,EAAE,eAAQ,CAAC;IAC/B,OAAO,EAAE,6BAAqB;IAC9B,UAAU,CAAC,MAAmB,EAAE,IAAY;QAC1C,MAAM,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAE3D,OAAO,IAAI,eAAK,CAAC;YACf,QAAQ,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,IAAA,kCAAmB,EAAC,MAAM,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAoB;IAC5C,MAAM,EAAE,CAAC,6BAAqB,CAAC;IAC/B,OAAO,EAAE,sCAA8B;IACvC,UAAU,CAAC,KAAY;QACrB,OAAO,KAAK,CAAC,QAAQ,CAAC;YACpB,sBAAsB,EAAE,KAAK;YAC7B,iBAAiB,EAAE,sBAAY,CAAC,kBAAkB;YAClD,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Config } from '@rsdk/core';
2
- export declare class KafkaConfig extends Config {
3
- readonly brokers: string[];
4
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.KafkaConfig = void 0;
13
- const core_1 = require("@rsdk/core");
14
- let KafkaConfig = class KafkaConfig extends core_1.Config {
15
- brokers;
16
- };
17
- __decorate([
18
- (0, core_1.Property)('KAFKA_BROKERS', new core_1.ArrayParser(new core_1.StringParser()), {
19
- description: 'List of Kafka brokers',
20
- }),
21
- __metadata("design:type", Array)
22
- ], KafkaConfig.prototype, "brokers", void 0);
23
- KafkaConfig = __decorate([
24
- (0, core_1.ConfigSection)()
25
- ], KafkaConfig);
26
- exports.KafkaConfig = KafkaConfig;
27
- //# sourceMappingURL=kafka.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafka.config.js","sourceRoot":"","sources":["../src/kafka.config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAMoB;AAGb,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,aAAM;IAI5B,OAAO,CAAW;CAC5B,CAAA;AAJC;IAAC,IAAA,eAAQ,EAAC,eAAe,EAAE,IAAI,kBAAW,CAAC,IAAI,mBAAY,EAAE,CAAC,EAAE;QAC9D,WAAW,EAAE,uBAAuB;KACrC,CAAC;;4CACyB;AAJhB,WAAW;IADvB,IAAA,oBAAa,GAAE;GACH,WAAW,CAKvB;AALY,kCAAW"}
@@ -1,8 +0,0 @@
1
- import type { OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
2
- import { Producer } from 'kafkajs';
3
- export declare class KafkaModule implements OnApplicationShutdown, OnApplicationBootstrap {
4
- private readonly kafka;
5
- constructor(kafka: Producer);
6
- onApplicationBootstrap(): Promise<void>;
7
- onApplicationShutdown(): Promise<void>;
8
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.KafkaModule = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const core_1 = require("@rsdk/core");
18
- const consume_topic_provider_service_1 = require("./consume-topic-provider.service");
19
- const direct_healthcheck_1 = require("./direct.healthcheck");
20
- const kafka_client_1 = require("./kafka.client");
21
- const kafka_config_1 = require("./kafka.config");
22
- let KafkaModule = class KafkaModule {
23
- kafka;
24
- constructor(kafka) {
25
- this.kafka = kafka;
26
- }
27
- async onApplicationBootstrap() {
28
- await this.kafka.connect();
29
- }
30
- async onApplicationShutdown() {
31
- await this.kafka.disconnect();
32
- }
33
- };
34
- KafkaModule = __decorate([
35
- (0, common_1.Global)(),
36
- (0, common_1.Module)({
37
- imports: [core_1.PlatformConfigModule.forFeature(kafka_config_1.KafkaConfig)],
38
- providers: [
39
- kafka_client_1.KafkaClient,
40
- kafka_client_1.KafkaProducer,
41
- direct_healthcheck_1.KafkaProducerDirectHealthIndicator,
42
- consume_topic_provider_service_1.ProducedTopicsProvider,
43
- ],
44
- exports: [kafka_client_1.KafkaProducer, consume_topic_provider_service_1.ProducedTopicsProvider],
45
- }),
46
- __param(0, (0, kafka_client_1.InjectKafkaProducer)()),
47
- __metadata("design:paramtypes", [Object])
48
- ], KafkaModule);
49
- exports.KafkaModule = KafkaModule;
50
- //# sourceMappingURL=kafka.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafka.module.js","sourceRoot":"","sources":["../src/kafka.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,2CAAgD;AAChD,qCAAkD;AAGlD,qFAA0E;AAC1E,6DAA0E;AAC1E,iDAKwB;AACxB,iDAA6C;AAatC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAG8B;IAApD,YAAoD,KAAe;QAAf,UAAK,GAAL,KAAK,CAAU;IAAG,CAAC;IAEvE,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;CACF,CAAA;AAZY,WAAW;IAXvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,2BAAoB,CAAC,UAAU,CAAC,0BAAW,CAAC,CAAC;QACvD,SAAS,EAAE;YACT,0BAAW;YACX,4BAAa;YACb,uDAAkC;YAClC,uDAAsB;SACvB;QACD,OAAO,EAAE,CAAC,4BAAa,EAAE,uDAAsB,CAAC;KACjD,CAAC;IAIa,WAAA,IAAA,kCAAmB,GAAE,CAAA;;GAHvB,WAAW,CAYvB;AAZY,kCAAW"}