@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.
- package/dist/constant/consumer.const.d.ts +13 -0
- package/dist/constant/consumer.const.d.ts.map +1 -0
- package/dist/constant/consumer.const.js +18 -0
- package/dist/constant/consumer.const.js.map +1 -0
- package/dist/constant/kafka.const.d.ts +10 -0
- package/dist/constant/kafka.const.d.ts.map +1 -0
- package/dist/constant/kafka.const.js +14 -0
- package/dist/constant/kafka.const.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/kafka-admin.service.d.ts +8 -0
- package/dist/kafka-admin.service.d.ts.map +1 -0
- package/dist/kafka-admin.service.js +47 -0
- package/dist/kafka-admin.service.js.map +1 -0
- package/dist/kafka-consumer.service.d.ts +10 -0
- package/dist/kafka-consumer.service.d.ts.map +1 -0
- package/dist/kafka-consumer.service.js +50 -0
- package/dist/kafka-consumer.service.js.map +1 -0
- package/dist/kafka-instance.const.d.ts +3 -0
- package/dist/kafka-instance.const.d.ts.map +1 -0
- package/dist/kafka-instance.const.js +12 -0
- package/dist/kafka-instance.const.js.map +1 -0
- package/dist/kafka-logger.d.ts +3 -0
- package/dist/kafka-logger.d.ts.map +1 -0
- package/dist/kafka-logger.js +22 -0
- package/dist/kafka-logger.js.map +1 -0
- package/dist/kafka-producer.service.d.ts +11 -0
- package/dist/kafka-producer.service.d.ts.map +1 -0
- package/dist/kafka-producer.service.js +76 -0
- package/dist/kafka-producer.service.js.map +1 -0
- package/dist/kafka.interface.d.ts +16 -0
- package/dist/kafka.interface.d.ts.map +1 -0
- package/dist/kafka.interface.js +5 -0
- package/dist/kafka.interface.js.map +1 -0
- package/dist/kafka.module.d.ts +11 -0
- package/dist/kafka.module.d.ts.map +1 -0
- package/dist/kafka.module.js +77 -0
- package/dist/kafka.module.js.map +1 -0
- package/dist/kafka.provider.d.ts +8 -0
- package/dist/kafka.provider.d.ts.map +1 -0
- package/dist/kafka.provider.js +12 -0
- package/dist/kafka.provider.js.map +1 -0
- package/dist/kafka.service.d.ts +39 -0
- package/dist/kafka.service.d.ts.map +1 -0
- package/dist/kafka.service.js +127 -0
- package/dist/kafka.service.js.map +1 -0
- 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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|