@mondart/nestjs-common-module-kafka 3.0.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.
Files changed (49) hide show
  1. package/dist/constant/consumer.const.d.ts +13 -0
  2. package/dist/constant/consumer.const.d.ts.map +1 -0
  3. package/dist/constant/consumer.const.js +18 -0
  4. package/dist/constant/consumer.const.js.map +1 -0
  5. package/dist/constant/kafka.const.d.ts +10 -0
  6. package/dist/constant/kafka.const.d.ts.map +1 -0
  7. package/dist/constant/kafka.const.js +14 -0
  8. package/dist/constant/kafka.const.js.map +1 -0
  9. package/dist/index.d.ts +5 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +8 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/kafka-admin.service.d.ts +8 -0
  14. package/dist/kafka-admin.service.d.ts.map +1 -0
  15. package/dist/kafka-admin.service.js +47 -0
  16. package/dist/kafka-admin.service.js.map +1 -0
  17. package/dist/kafka-consumer.service.d.ts +10 -0
  18. package/dist/kafka-consumer.service.d.ts.map +1 -0
  19. package/dist/kafka-consumer.service.js +50 -0
  20. package/dist/kafka-consumer.service.js.map +1 -0
  21. package/dist/kafka-instance.const.d.ts +3 -0
  22. package/dist/kafka-instance.const.d.ts.map +1 -0
  23. package/dist/kafka-instance.const.js +12 -0
  24. package/dist/kafka-instance.const.js.map +1 -0
  25. package/dist/kafka-logger.d.ts +3 -0
  26. package/dist/kafka-logger.d.ts.map +1 -0
  27. package/dist/kafka-logger.js +22 -0
  28. package/dist/kafka-logger.js.map +1 -0
  29. package/dist/kafka-producer.service.d.ts +11 -0
  30. package/dist/kafka-producer.service.d.ts.map +1 -0
  31. package/dist/kafka-producer.service.js +76 -0
  32. package/dist/kafka-producer.service.js.map +1 -0
  33. package/dist/kafka.interface.d.ts +16 -0
  34. package/dist/kafka.interface.d.ts.map +1 -0
  35. package/dist/kafka.interface.js +5 -0
  36. package/dist/kafka.interface.js.map +1 -0
  37. package/dist/kafka.module.d.ts +11 -0
  38. package/dist/kafka.module.d.ts.map +1 -0
  39. package/dist/kafka.module.js +77 -0
  40. package/dist/kafka.module.js.map +1 -0
  41. package/dist/kafka.provider.d.ts +8 -0
  42. package/dist/kafka.provider.d.ts.map +1 -0
  43. package/dist/kafka.provider.js +12 -0
  44. package/dist/kafka.provider.js.map +1 -0
  45. package/dist/kafka.service.d.ts +39 -0
  46. package/dist/kafka.service.d.ts.map +1 -0
  47. package/dist/kafka.service.js +127 -0
  48. package/dist/kafka.service.js.map +1 -0
  49. package/package.json +34 -0
@@ -0,0 +1,13 @@
1
+ export declare enum ConsumerManagerTask {
2
+ Bootstrap = "bootstrap",
3
+ Start = "start",
4
+ Stop = "stop",
5
+ Pause = "pause",
6
+ Resume = "resume",
7
+ Check = "check"
8
+ }
9
+ export declare enum TaskStatus {
10
+ SuccessFull = "SuccessFull",
11
+ Failed = "Failed"
12
+ }
13
+ //# sourceMappingURL=consumer.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.const.d.ts","sourceRoot":"","sources":["../../src/constant/consumer.const.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,UAAU;IACpB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;CAClB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TaskStatus = exports.ConsumerManagerTask = void 0;
4
+ var ConsumerManagerTask;
5
+ (function (ConsumerManagerTask) {
6
+ ConsumerManagerTask["Bootstrap"] = "bootstrap";
7
+ ConsumerManagerTask["Start"] = "start";
8
+ ConsumerManagerTask["Stop"] = "stop";
9
+ ConsumerManagerTask["Pause"] = "pause";
10
+ ConsumerManagerTask["Resume"] = "resume";
11
+ ConsumerManagerTask["Check"] = "check";
12
+ })(ConsumerManagerTask || (exports.ConsumerManagerTask = ConsumerManagerTask = {}));
13
+ var TaskStatus;
14
+ (function (TaskStatus) {
15
+ TaskStatus["SuccessFull"] = "SuccessFull";
16
+ TaskStatus["Failed"] = "Failed";
17
+ })(TaskStatus || (exports.TaskStatus = TaskStatus = {}));
18
+ //# sourceMappingURL=consumer.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer.const.js","sourceRoot":"","sources":["../../src/constant/consumer.const.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAOX;AAPD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,sCAAe,CAAA;IACf,oCAAa,CAAA;IACb,sCAAe,CAAA;IACf,wCAAiB,CAAA;IACjB,sCAAe,CAAA;AACjB,CAAC,EAPW,mBAAmB,mCAAnB,mBAAmB,QAO9B;AAED,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yCAA2B,CAAA;IAC3B,+BAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
@@ -0,0 +1,10 @@
1
+ export declare enum KafkaHealthState {
2
+ Unknown = "Unknown",
3
+ PreparingRebalance = "PreparingRebalance",
4
+ CompletingRebalance = "CompletingRebalance",
5
+ Stable = "Stable",
6
+ Dead = "Dead",
7
+ Empty = "Empty",
8
+ Pause = "Pause"
9
+ }
10
+ //# sourceMappingURL=kafka.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.const.d.ts","sourceRoot":"","sources":["../../src/constant/kafka.const.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAChB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaHealthState = void 0;
4
+ var KafkaHealthState;
5
+ (function (KafkaHealthState) {
6
+ KafkaHealthState["Unknown"] = "Unknown";
7
+ KafkaHealthState["PreparingRebalance"] = "PreparingRebalance";
8
+ KafkaHealthState["CompletingRebalance"] = "CompletingRebalance";
9
+ KafkaHealthState["Stable"] = "Stable";
10
+ KafkaHealthState["Dead"] = "Dead";
11
+ KafkaHealthState["Empty"] = "Empty";
12
+ KafkaHealthState["Pause"] = "Pause";
13
+ })(KafkaHealthState || (exports.KafkaHealthState = KafkaHealthState = {}));
14
+ //# sourceMappingURL=kafka.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.const.js","sourceRoot":"","sources":["../../src/constant/kafka.const.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAQX;AARD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,6DAAyC,CAAA;IACzC,+DAA2C,CAAA;IAC3C,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,mCAAe,CAAA;IACf,mCAAe,CAAA;AACjB,CAAC,EARW,gBAAgB,gCAAhB,gBAAgB,QAQ3B"}
@@ -0,0 +1,5 @@
1
+ import { KafkaModule } from './kafka.module';
2
+ import { KafkaModuleOptions } from './kafka.interface';
3
+ import { KafkaService } from './kafka.service';
4
+ export { KafkaModule, KafkaService, KafkaModuleOptions };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaService = exports.KafkaModule = void 0;
4
+ const kafka_module_1 = require("./kafka.module");
5
+ Object.defineProperty(exports, "KafkaModule", { enumerable: true, get: function () { return kafka_module_1.KafkaModule; } });
6
+ const kafka_service_1 = require("./kafka.service");
7
+ Object.defineProperty(exports, "KafkaService", { enumerable: true, get: function () { return kafka_service_1.KafkaService; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAIpC,4FAJA,0BAAW,OAIA;AAFpB,mDAA+C;AAEzB,6FAFb,4BAAY,OAEa"}
@@ -0,0 +1,8 @@
1
+ export default class KafkaAdminService {
2
+ private kafkaAdmin;
3
+ constructor(clientId: string, brokers: string[]);
4
+ getTopics(): Promise<string[]>;
5
+ private shutdown;
6
+ private createKafkaAdmin;
7
+ }
8
+ //# sourceMappingURL=kafka-admin.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-admin.service.d.ts","sourceRoot":"","sources":["../src/kafka-admin.service.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,UAAU,CAAQ;gBAEP,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IA8BhD,SAAS;YAMD,QAAQ;IAItB,OAAO,CAAC,gBAAgB;CAGzB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@nestjs/common");
4
+ const kafka_instance_const_1 = require("./kafka-instance.const");
5
+ class KafkaAdminService {
6
+ constructor(clientId, brokers) {
7
+ this.kafkaAdmin = this.createKafkaAdmin(clientId, brokers);
8
+ const errorTypes = ['unhandledRejection', 'uncaughtException'];
9
+ const signalTraps = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
10
+ errorTypes.forEach((type) => {
11
+ process.on(type, async (e) => {
12
+ try {
13
+ common_1.Logger.log(`process.on ${type}`);
14
+ common_1.Logger.error(e);
15
+ await this.shutdown();
16
+ process.exit(0);
17
+ }
18
+ catch (_) {
19
+ process.exit(1);
20
+ }
21
+ });
22
+ });
23
+ signalTraps.forEach((type) => {
24
+ process.once(type, async () => {
25
+ try {
26
+ await this.shutdown();
27
+ }
28
+ finally {
29
+ process.kill(process.pid, type);
30
+ }
31
+ });
32
+ });
33
+ }
34
+ async getTopics() {
35
+ let topics = await this.kafkaAdmin.listTopics();
36
+ topics = topics.filter((topic) => topic.slice(0, 1) !== '_');
37
+ return topics;
38
+ }
39
+ async shutdown() {
40
+ await this.kafkaAdmin.disconnect();
41
+ }
42
+ createKafkaAdmin(clientId, brokers) {
43
+ return (0, kafka_instance_const_1.kafka)(clientId, brokers).admin();
44
+ }
45
+ }
46
+ exports.default = KafkaAdminService;
47
+ //# sourceMappingURL=kafka-admin.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-admin.service.js","sourceRoot":"","sources":["../src/kafka-admin.service.ts"],"names":[],"mappings":";;AACA,2CAAwC;AACxC,iEAA+C;AAE/C,MAAqB,iBAAiB;IAGpC,YAAmB,QAAgB,EAAE,OAAiB;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC;oBACH,eAAM,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;oBACjC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAChD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEO,gBAAgB,CAAC,QAAQ,EAAE,OAAO;QACxC,OAAO,IAAA,4BAAK,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1C,CAAC;CACF;AA9CD,oCA8CC"}
@@ -0,0 +1,10 @@
1
+ import { Consumer } from 'kafkajs';
2
+ export default class KafkaConsumerService {
3
+ private kafkaConsumer;
4
+ constructor(clientId: any, brokers: any, groupId: any);
5
+ connectConsumer(): Promise<Consumer>;
6
+ healthCheck(): Promise<import("kafkajs").ConsumerGroupState>;
7
+ shutdown(): Promise<void>;
8
+ private createKafkaConsumer;
9
+ }
10
+ //# sourceMappingURL=kafka-consumer.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-consumer.service.d.ts","sourceRoot":"","sources":["../src/kafka-consumer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,aAAa,CAAW;gBAEb,QAAQ,KAAA,EAAE,OAAO,KAAA,EAAE,OAAO,KAAA;IA8BhC,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;IAKpC,WAAW;IAKX,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,OAAO,CAAC,mBAAmB;CAO5B"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@nestjs/common");
4
+ const kafka_instance_const_1 = require("./kafka-instance.const");
5
+ class KafkaConsumerService {
6
+ constructor(clientId, brokers, groupId) {
7
+ this.kafkaConsumer = this.createKafkaConsumer(clientId, brokers, groupId);
8
+ const errorTypes = ['unhandledRejection', 'uncaughtException'];
9
+ const signalTraps = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
10
+ errorTypes.forEach((type) => {
11
+ process.on(type, async (e) => {
12
+ try {
13
+ common_1.Logger.log(`process.on ${type}`);
14
+ common_1.Logger.error(e);
15
+ await this.shutdown();
16
+ process.exit(0);
17
+ }
18
+ catch (_) {
19
+ process.exit(1);
20
+ }
21
+ });
22
+ });
23
+ signalTraps.forEach((type) => {
24
+ process.once(type, async () => {
25
+ try {
26
+ await this.shutdown();
27
+ }
28
+ finally {
29
+ process.kill(process.pid, type);
30
+ }
31
+ });
32
+ });
33
+ }
34
+ async connectConsumer() {
35
+ await this.kafkaConsumer.connect();
36
+ return this.kafkaConsumer;
37
+ }
38
+ async healthCheck() {
39
+ const describe = await this.kafkaConsumer.describeGroup();
40
+ return describe.state;
41
+ }
42
+ async shutdown() {
43
+ await this.kafkaConsumer.disconnect();
44
+ }
45
+ createKafkaConsumer(clientId, brokers, groupId = 'consumer-group') {
46
+ return (0, kafka_instance_const_1.kafka)(clientId, brokers).consumer({ groupId });
47
+ }
48
+ }
49
+ exports.default = KafkaConsumerService;
50
+ //# sourceMappingURL=kafka-consumer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-consumer.service.js","sourceRoot":"","sources":["../src/kafka-consumer.service.ts"],"names":[],"mappings":";;AACA,2CAAwC;AACxC,iEAA+C;AAE/C,MAAqB,oBAAoB;IAGvC,YAAmB,QAAQ,EAAE,OAAO,EAAE,OAAO;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1E,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC;oBACH,eAAM,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;oBACjC,eAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC5B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAEO,mBAAmB,CACzB,QAAQ,EACR,OAAO,EACP,OAAO,GAAG,gBAAgB;QAE1B,OAAO,IAAA,4BAAK,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;CACF;AAtDD,uCAsDC"}
@@ -0,0 +1,3 @@
1
+ import { Kafka } from 'kafkajs';
2
+ export declare const kafka: (clientId: string, brokers: string[]) => Kafka;
3
+ //# sourceMappingURL=kafka-instance.const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-instance.const.d.ts","sourceRoot":"","sources":["../src/kafka-instance.const.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,eAAO,MAAM,KAAK,GAAI,UAAU,MAAM,EAAE,SAAS,MAAM,EAAE,UAKrD,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kafka = void 0;
4
+ const kafka_logger_1 = require("./kafka-logger");
5
+ const kafkajs_1 = require("kafkajs");
6
+ const kafka = (clientId, brokers) => new kafkajs_1.Kafka({
7
+ clientId,
8
+ brokers,
9
+ logCreator: kafka_logger_1.createKafkaLoggerAdapter,
10
+ });
11
+ exports.kafka = kafka;
12
+ //# sourceMappingURL=kafka-instance.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-instance.const.js","sourceRoot":"","sources":["../src/kafka-instance.const.ts"],"names":[],"mappings":";;;AAAA,iDAA0D;AAC1D,qCAAgC;AAEzB,MAAM,KAAK,GAAG,CAAC,QAAgB,EAAE,OAAiB,EAAE,EAAE,CAC3D,IAAI,eAAK,CAAC;IACR,QAAQ;IACR,OAAO;IACP,UAAU,EAAE,uCAAwB;CACrC,CAAC,CAAC;AALQ,QAAA,KAAK,SAKb"}
@@ -0,0 +1,3 @@
1
+ import { logCreator } from 'kafkajs';
2
+ export declare const createKafkaLoggerAdapter: logCreator;
3
+ //# sourceMappingURL=kafka-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-logger.d.ts","sourceRoot":"","sources":["../src/kafka-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,UAAU,EAAE,MAAM,SAAS,CAAC;AAEzD,eACA,MAAM,wBAAwB,EAAE,UAoB/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createKafkaLoggerAdapter = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const kafkajs_1 = require("kafkajs");
6
+ const createKafkaLoggerAdapter = () => {
7
+ const nestLogger = new common_1.Logger('KafkaJS', { timestamp: true });
8
+ const logMethodMap = {
9
+ [kafkajs_1.logLevel.ERROR]: 'error',
10
+ [kafkajs_1.logLevel.WARN]: 'warn',
11
+ [kafkajs_1.logLevel.INFO]: 'log',
12
+ [kafkajs_1.logLevel.DEBUG]: 'debug',
13
+ [kafkajs_1.logLevel.NOTHING]: 'verbose',
14
+ };
15
+ return ({ namespace, level, label, log }) => {
16
+ const { message, ...extra } = log;
17
+ const method = logMethodMap[level] || 'log';
18
+ nestLogger[method](`${label} [${namespace}] ${message}`, JSON.stringify(extra));
19
+ };
20
+ };
21
+ exports.createKafkaLoggerAdapter = createKafkaLoggerAdapter;
22
+ //# sourceMappingURL=kafka-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-logger.js","sourceRoot":"","sources":["../src/kafka-logger.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,qCAAyD;AAGzD,MAAM,wBAAwB,GAAe,GAAG,EAAE;IAChD,MAAM,UAAU,GAAG,IAAI,eAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9D,MAAM,YAAY,GAAG;QACnB,CAAC,kBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;QACzB,CAAC,kBAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;QACvB,CAAC,kBAAQ,CAAC,IAAI,CAAC,EAAE,KAAK;QACtB,CAAC,kBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;QACzB,CAAC,kBAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;KAC9B,CAAC;IAEF,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAY,EAAE,EAAE;QACpD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC;QAClC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAE5C,UAAU,CAAC,MAAM,CAAC,CAChB,GAAG,KAAK,KAAK,SAAS,KAAK,OAAO,EAAE,EACpC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACtB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AApBI,QAAA,wBAAwB,4BAoB5B"}
@@ -0,0 +1,11 @@
1
+ export default class KafkaProducerService {
2
+ private producer;
3
+ constructor(clientId: string, brokers: string[]);
4
+ private setupGracefulShutdown;
5
+ start(): Promise<this>;
6
+ shutdown(): Promise<void>;
7
+ sendBatch(topic: string, messages: Array<object>): Promise<void>;
8
+ sendEvent(topic: string, message: unknown, partition?: number): Promise<void>;
9
+ private createProducer;
10
+ }
11
+ //# sourceMappingURL=kafka-producer.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-producer.service.d.ts","sourceRoot":"","sources":["../src/kafka-producer.service.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;IAK/C,OAAO,CAAC,qBAAqB;IA4BhB,KAAK;IAKL,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,SAAS,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GACtB,OAAO,CAAC,IAAI,CAAC;IAmBV,SAAS,CACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAkB;IAmB/B,OAAO,CAAC,cAAc;CAGvB"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const common_1 = require("@nestjs/common");
4
+ const kafka_instance_const_1 = require("./kafka-instance.const");
5
+ class KafkaProducerService {
6
+ constructor(clientId, brokers) {
7
+ this.producer = this.createProducer(clientId, brokers);
8
+ this.setupGracefulShutdown();
9
+ }
10
+ setupGracefulShutdown() {
11
+ const errorTypes = ['unhandledRejection', 'uncaughtException'];
12
+ const signalTraps = ['SIGTERM', 'SIGINT', 'SIGUSR2'];
13
+ errorTypes.forEach((type) => {
14
+ process.on(type, async (e) => {
15
+ try {
16
+ common_1.Logger.log(`process.on ${type}`);
17
+ common_1.Logger.error(e);
18
+ await this.shutdown();
19
+ process.exit(0);
20
+ }
21
+ catch (_) {
22
+ process.exit(1);
23
+ }
24
+ });
25
+ });
26
+ signalTraps.forEach((type) => {
27
+ process.once(type, async () => {
28
+ try {
29
+ await this.shutdown();
30
+ }
31
+ finally {
32
+ process.kill(process.pid, type);
33
+ }
34
+ });
35
+ });
36
+ }
37
+ async start() {
38
+ await this.producer.connect();
39
+ return this;
40
+ }
41
+ async shutdown() {
42
+ await this.producer.disconnect();
43
+ }
44
+ async sendBatch(topic, messages) {
45
+ const kafkaMessages = messages.map((message) => {
46
+ return {
47
+ value: JSON.stringify(message),
48
+ };
49
+ });
50
+ const topicMessages = {
51
+ topic,
52
+ messages: kafkaMessages,
53
+ };
54
+ const batch = {
55
+ topicMessages: [topicMessages],
56
+ };
57
+ await this.producer.sendBatch(batch);
58
+ }
59
+ async sendEvent(topic, message, partition = undefined) {
60
+ const producer = this.producer;
61
+ const kafkaMessage = {
62
+ value: typeof message == 'string' ? message : JSON.stringify(message),
63
+ };
64
+ kafkaMessage.partition = partition;
65
+ const sendOptions = {
66
+ topic,
67
+ messages: [kafkaMessage],
68
+ };
69
+ await producer.send(sendOptions);
70
+ }
71
+ createProducer(clientId, brokers) {
72
+ return (0, kafka_instance_const_1.kafka)(clientId, brokers).producer();
73
+ }
74
+ }
75
+ exports.default = KafkaProducerService;
76
+ //# sourceMappingURL=kafka-producer.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka-producer.service.js","sourceRoot":"","sources":["../src/kafka-producer.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ModuleMetadata, Type } from '@nestjs/common';
2
+ export declare const KAFKA_MODULE_OPTIONS = "KAFKA_MODULE_OPTIONS";
3
+ export interface KafkaModuleOptions {
4
+ clientId: string;
5
+ brokers: string[];
6
+ }
7
+ export interface KafkaModuleFactory {
8
+ createModuleOptions: () => Promise<KafkaModuleOptions> | KafkaModuleOptions;
9
+ }
10
+ export interface KafkaModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
11
+ inject?: any[];
12
+ useClass?: Type<KafkaModuleFactory>;
13
+ useExisting?: Type<KafkaModuleFactory>;
14
+ useFactory?: (...args: any[]) => Promise<KafkaModuleOptions> | KafkaModuleOptions;
15
+ }
16
+ //# sourceMappingURL=kafka.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.interface.d.ts","sourceRoot":"","sources":["../src/kafka.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;CAC7E;AAED,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CACX,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;CACvD"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KAFKA_MODULE_OPTIONS = void 0;
4
+ exports.KAFKA_MODULE_OPTIONS = 'KAFKA_MODULE_OPTIONS';
5
+ //# sourceMappingURL=kafka.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.interface.js","sourceRoot":"","sources":["../src/kafka.interface.ts"],"names":[],"mappings":";;;AAEa,QAAA,oBAAoB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { KafkaModuleAsyncOptions, KafkaModuleOptions } from './kafka.interface';
3
+ export declare class KafkaModule {
4
+ static forRoot(options: KafkaModuleOptions): DynamicModule;
5
+ static forRootAsync(options: KafkaModuleAsyncOptions): DynamicModule;
6
+ private static createAsyncProviders;
7
+ private static createProviders;
8
+ private static createAsyncOptionsProvider;
9
+ private static createOptionsProvider;
10
+ }
11
+ //# sourceMappingURL=kafka.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.module.d.ts","sourceRoot":"","sources":["../src/kafka.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAEL,uBAAuB,EAEvB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,qBAEa,WAAW;IACtB,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa;IAc1D,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IASpE,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAenC,OAAO,CAAC,MAAM,CAAC,eAAe;IAG9B,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkBzC,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAOrC"}
@@ -0,0 +1,77 @@
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 KafkaModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.KafkaModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const kafka_interface_1 = require("./kafka.interface");
13
+ const index_1 = require("./index");
14
+ let KafkaModule = KafkaModule_1 = class KafkaModule {
15
+ static forRoot(options) {
16
+ return {
17
+ module: KafkaModule_1,
18
+ providers: [
19
+ {
20
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
21
+ useValue: options,
22
+ },
23
+ index_1.KafkaService,
24
+ ],
25
+ exports: [index_1.KafkaService],
26
+ };
27
+ }
28
+ static forRootAsync(options) {
29
+ return {
30
+ module: KafkaModule_1,
31
+ imports: [...options.imports],
32
+ providers: [...this.createAsyncProviders(options), index_1.KafkaService],
33
+ exports: [...this.createAsyncProviders(options), index_1.KafkaService],
34
+ };
35
+ }
36
+ static createAsyncProviders(options) {
37
+ if (options.useExisting || options.useFactory) {
38
+ return [this.createAsyncOptionsProvider(options)];
39
+ }
40
+ return [
41
+ this.createAsyncOptionsProvider(options),
42
+ {
43
+ provide: options.useClass,
44
+ useClass: options.useClass,
45
+ },
46
+ ];
47
+ }
48
+ static createProviders(options) {
49
+ return [this.createOptionsProvider(options)];
50
+ }
51
+ static createAsyncOptionsProvider(options) {
52
+ if (options.useFactory) {
53
+ return {
54
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
55
+ useFactory: options.useFactory,
56
+ inject: options.inject || [],
57
+ };
58
+ }
59
+ return {
60
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
61
+ useFactory: async (optionsFactory) => await optionsFactory.createModuleOptions(),
62
+ inject: [options.useExisting || options.useClass],
63
+ };
64
+ }
65
+ static createOptionsProvider(options) {
66
+ return {
67
+ provide: kafka_interface_1.KAFKA_MODULE_OPTIONS,
68
+ useFactory: async (optionsFactory) => await optionsFactory.createModuleOptions(),
69
+ };
70
+ }
71
+ };
72
+ exports.KafkaModule = KafkaModule;
73
+ exports.KafkaModule = KafkaModule = KafkaModule_1 = __decorate([
74
+ (0, common_1.Global)(),
75
+ (0, common_1.Module)({})
76
+ ], KafkaModule);
77
+ //# sourceMappingURL=kafka.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.module.js","sourceRoot":"","sources":["../src/kafka.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AAEzE,uDAK2B;AAC3B,mCAAuC;AAIhC,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,sCAAoB;oBAC7B,QAAQ,EAAE,OAAO;iBAClB;gBACD,oBAAY;aACb;YACD,OAAO,EAAE,CAAC,oBAAY,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAY,CAAC;YAChE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,oBAAY,CAAC;SAC/D,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,OAAgC;QAEhC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACL,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACxC;gBACE,OAAO,EAAE,OAAO,CAAC,QAAQ;gBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;SACF,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,OAA2B;QACxD,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IACO,MAAM,CAAC,0BAA0B,CACvC,OAAgC;QAEhC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,sCAAoB;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC7B,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,sCAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,cAAkC,EAAE,EAAE,CACvD,MAAM,cAAc,CAAC,mBAAmB,EAAE;YAC5C,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;SAClD,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,OAA2B;QAC9D,OAAO;YACL,OAAO,EAAE,sCAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,cAAkC,EAAE,EAAE,CACvD,MAAM,cAAc,CAAC,mBAAmB,EAAE;SAC7C,CAAC;IACJ,CAAC;CACF,CAAA;AAnEY,kCAAW;sBAAX,WAAW;IAFvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,WAAW,CAmEvB"}
@@ -0,0 +1,8 @@
1
+ import { KafkaService } from './kafka.service';
2
+ import { KafkaModuleOptions } from './kafka.interface';
3
+ export declare const KafkaProviders: {
4
+ provide: string;
5
+ useFactory: (options: KafkaModuleOptions) => KafkaService;
6
+ inject: string[];
7
+ }[];
8
+ //# sourceMappingURL=kafka.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.provider.d.ts","sourceRoot":"","sources":["../src/kafka.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,cAAc;;0BAGD,kBAAkB;;GAG3C,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaProviders = void 0;
4
+ const kafka_service_1 = require("./kafka.service");
5
+ exports.KafkaProviders = [
6
+ {
7
+ provide: 'KAFKA_MODEL',
8
+ useFactory: (options) => new kafka_service_1.KafkaService(options),
9
+ inject: ['DATABASE_CONNECTION'],
10
+ },
11
+ ];
12
+ //# sourceMappingURL=kafka.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.provider.js","sourceRoot":"","sources":["../src/kafka.provider.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAGlC,QAAA,cAAc,GAAG;IAC5B;QACE,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,CAAC,OAA2B,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,OAAO,CAAC;QACtE,MAAM,EAAE,CAAC,qBAAqB,CAAC;KAChC;CACF,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Consumer } from 'kafkajs';
2
+ import { KafkaModuleOptions } from './kafka.interface';
3
+ import { KafkaHealthState } from './constant/kafka.const';
4
+ export declare class KafkaService {
5
+ private kafkaModuleOptions;
6
+ private static instance;
7
+ private consumers;
8
+ private consumersInstance;
9
+ private producerInstance;
10
+ private adminInstance;
11
+ topics: {
12
+ [groupId: string]: string[];
13
+ };
14
+ groupIds: {
15
+ [item: string]: string;
16
+ };
17
+ constructor(kafkaModuleOptions: KafkaModuleOptions);
18
+ getAvailableTopics(): Promise<string[]>;
19
+ startProducer(): Promise<void>;
20
+ stopProducer(): Promise<void>;
21
+ sendProducerEvent(topic: string, message: unknown, partition?: number): Promise<void>;
22
+ setBulkConsumer(consumersInfo: {
23
+ groupIdKey: string;
24
+ topics: string[];
25
+ groupIdDefaultValue?: string;
26
+ }[]): Promise<void>;
27
+ setConsumer(consumersInfo: {
28
+ groupIdKey: string;
29
+ topics: string[];
30
+ groupIdDefaultValue?: string;
31
+ }): Promise<void>;
32
+ startAllConsumers(): Promise<void>;
33
+ stopAllConsumers(): Promise<void[]>;
34
+ startConsumerByGroupId(groupId: string, fromBeginning?: boolean): Promise<Consumer>;
35
+ stopConsumerByGroupId(groupId: string): Promise<void>;
36
+ healthCheck(groupId: string): Promise<KafkaHealthState>;
37
+ getConsumerInstanceByGroupId(groupId: string): Consumer;
38
+ }
39
+ //# sourceMappingURL=kafka.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.service.d.ts","sourceRoot":"","sources":["../src/kafka.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAwB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK1D,qBACa,YAAY;IAWrB,OAAO,CAAC,kBAAkB;IAV5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,aAAa,CAAoB;IAClC,MAAM,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACxC,QAAQ,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;gBAIlC,kBAAkB,EAAE,kBAAkB;IAa1C,kBAAkB;IASlB,aAAa;IAYb,YAAY;IAWZ,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAkB;IAWzB,eAAe,CACnB,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,EAAE;IA6BC,WAAW,CAAC,aAAa,EAAE;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;IAyBK,iBAAiB;IAkBjB,gBAAgB;IAahB,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,OAAe;IAmB1B,qBAAqB,CAAC,OAAO,EAAE,MAAM;IASrC,WAAW,CAAC,OAAO,EAAE,MAAM;IAgBjC,4BAA4B,CAAC,OAAO,EAAE,MAAM;CAG7C"}
@@ -0,0 +1,127 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.KafkaService = void 0;
19
+ const common_1 = require("@nestjs/common");
20
+ const kafka_consumer_service_1 = __importDefault(require("./kafka-consumer.service"));
21
+ const kafka_interface_1 = require("./kafka.interface");
22
+ const kafka_const_1 = require("./constant/kafka.const");
23
+ const kafka_admin_service_1 = __importDefault(require("./kafka-admin.service"));
24
+ const kafka_producer_service_1 = __importDefault(require("./kafka-producer.service"));
25
+ const nestjs_common_module_core_1 = require("@mondart/nestjs-common-module-core");
26
+ let KafkaService = class KafkaService {
27
+ constructor(kafkaModuleOptions) {
28
+ this.kafkaModuleOptions = kafkaModuleOptions;
29
+ this.adminInstance = new kafka_admin_service_1.default(this.kafkaModuleOptions.clientId, this.kafkaModuleOptions.brokers);
30
+ }
31
+ async getAvailableTopics() {
32
+ return await this.adminInstance.getTopics();
33
+ }
34
+ async startProducer() {
35
+ this.producerInstance = new kafka_producer_service_1.default(this.kafkaModuleOptions.clientId, this.kafkaModuleOptions.brokers);
36
+ await this.producerInstance.start();
37
+ common_1.Logger.log('Producer is Connected', 'KafkaProducer');
38
+ }
39
+ async stopProducer() {
40
+ await this.producerInstance.shutdown();
41
+ common_1.Logger.log('Producer is Disconnected', 'KafkaProducer');
42
+ }
43
+ async sendProducerEvent(topic, message, partition = undefined) {
44
+ await this.producerInstance.sendEvent(topic, message, partition);
45
+ }
46
+ async setBulkConsumer(consumersInfo) {
47
+ await Promise.all(consumersInfo.map((item) => {
48
+ this.groupIds = {
49
+ ...this.groupIds,
50
+ [item.groupIdKey]: (0, nestjs_common_module_core_1.env)(item.groupIdKey, item?.groupIdDefaultValue),
51
+ };
52
+ this.topics = {
53
+ ...this.topics,
54
+ [this.groupIds[item.groupIdKey]]: item?.topics,
55
+ };
56
+ this.consumers = {
57
+ ...this.consumers,
58
+ [this.groupIds[item.groupIdKey]]: new kafka_consumer_service_1.default(this.kafkaModuleOptions.clientId, this.kafkaModuleOptions.brokers, this.groupIds[item.groupIdKey]),
59
+ };
60
+ }));
61
+ }
62
+ async setConsumer(consumersInfo) {
63
+ this.groupIds = {
64
+ ...this.groupIds,
65
+ [consumersInfo.groupIdKey]: (0, nestjs_common_module_core_1.env)(consumersInfo.groupIdKey, consumersInfo?.groupIdDefaultValue),
66
+ };
67
+ this.topics = {
68
+ ...this.topics,
69
+ [this.groupIds[consumersInfo.groupIdKey]]: consumersInfo?.topics,
70
+ };
71
+ this.consumers = {
72
+ ...this.consumers,
73
+ [this.groupIds[consumersInfo.groupIdKey]]: new kafka_consumer_service_1.default(this.kafkaModuleOptions.clientId, this.kafkaModuleOptions.brokers, this.groupIds[consumersInfo.groupIdKey]),
74
+ };
75
+ }
76
+ async startAllConsumers() {
77
+ const consumerKeys = Object.keys(this.consumers);
78
+ for await (const key of consumerKeys) {
79
+ this.consumersInstance = {
80
+ ...this.consumersInstance,
81
+ [key]: await this.consumers[key].connectConsumer(),
82
+ };
83
+ await this.consumersInstance[key].subscribe({ topics: this.topics[key] });
84
+ }
85
+ common_1.Logger.log(`Consumer is Connected. consumer-list: ${consumerKeys.join(', ')}`, 'KafkaConsumer');
86
+ }
87
+ async stopAllConsumers() {
88
+ return await Promise.all(Object.keys(this.consumers).map(async (key) => {
89
+ await this.consumers[key].shutdown();
90
+ }));
91
+ }
92
+ async startConsumerByGroupId(groupId, fromBeginning = false) {
93
+ this.consumersInstance = {
94
+ ...this.consumersInstance,
95
+ [groupId]: await this.consumers[groupId].connectConsumer(),
96
+ };
97
+ await this.consumersInstance[groupId].subscribe({
98
+ fromBeginning,
99
+ topics: this.topics[groupId],
100
+ });
101
+ common_1.Logger.log(`\"${groupId}\" is Connected.`, 'KafkaConsumer');
102
+ return this.consumersInstance[groupId];
103
+ }
104
+ async stopConsumerByGroupId(groupId) {
105
+ return await this.consumers[groupId].shutdown();
106
+ }
107
+ async healthCheck(groupId) {
108
+ const kafkaState = (await this.consumers?.[groupId].healthCheck()) ?? kafka_const_1.KafkaHealthState.Dead;
109
+ if (kafkaState === kafka_const_1.KafkaHealthState.Stable) {
110
+ const paused = this.consumersInstance[groupId].paused();
111
+ const isPaused = paused.filter((item) => item.topic === this.topics[groupId][0]);
112
+ if (isPaused.length !== 0)
113
+ return kafka_const_1.KafkaHealthState.Pause;
114
+ }
115
+ return kafka_const_1.KafkaHealthState[kafkaState];
116
+ }
117
+ getConsumerInstanceByGroupId(groupId) {
118
+ return this.consumersInstance[groupId];
119
+ }
120
+ };
121
+ exports.KafkaService = KafkaService;
122
+ exports.KafkaService = KafkaService = __decorate([
123
+ (0, common_1.Injectable)(),
124
+ __param(0, (0, common_1.Inject)(kafka_interface_1.KAFKA_MODULE_OPTIONS)),
125
+ __metadata("design:paramtypes", [Object])
126
+ ], KafkaService);
127
+ //# sourceMappingURL=kafka.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.service.js","sourceRoot":"","sources":["../src/kafka.service.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@mondart/nestjs-common-module-kafka",
3
+ "version": "3.0.0",
4
+ "description": "Kafka module and services for NestJS.",
5
+ "author": {
6
+ "name": "Mondart"
7
+ },
8
+ "license": "MIT",
9
+ "type": "commonjs",
10
+ "main": "dist/index.js",
11
+ "types": "dist/index.d.ts",
12
+ "files": [
13
+ "dist",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json"
18
+ },
19
+ "dependencies": {
20
+ "@mondart/nestjs-common-module-core": "^3.0.0",
21
+ "kafkajs": "^2.2.4"
22
+ },
23
+ "peerDependencies": {
24
+ "@nestjs/common": "^11.1.10",
25
+ "@nestjs/core": "^11.1.10",
26
+ "@nestjs/config": "^4.0.0",
27
+ "@nestjs/microservices": "^11.1.10",
28
+ "reflect-metadata": "^0.2.0",
29
+ "rxjs": "^7.8.2"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ }
34
+ }