@nsshunt/stsappframework 2.19.274 → 2.19.277

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/index.js CHANGED
@@ -26,5 +26,7 @@ __exportStar(require("./workerprocessbase"), exports);
26
26
  __exportStar(require("./socketIoServerHelper"), exports);
27
27
  __exportStar(require("./stslatencycontroller"), exports);
28
28
  __exportStar(require("./stslatencyroute"), exports);
29
- __exportStar(require("./kafkamanager"), exports);
29
+ __exportStar(require("./kafka/kafkamanager"), exports);
30
+ __exportStar(require("./kafka/kafkaproducer"), exports);
31
+ __exportStar(require("./kafka/kafkaconsumer"), exports);
30
32
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,mDAAgC;AAChC,6CAA0B;AAC1B,kDAA+B;AAC/B,kDAA+B;AAC/B,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,yDAAsC;AACtC,yDAAsC;AACtC,oDAAiC;AACjC,iDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,mDAAgC;AAChC,6CAA0B;AAC1B,kDAA+B;AAC/B,kDAA+B;AAC/B,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,sDAAmC;AACnC,yDAAsC;AACtC,yDAAsC;AACtC,oDAAiC;AACjC,uDAAoC;AACpC,wDAAqC;AACrC,wDAAqC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaConsumer = void 0;
4
+ class KafkaConsumer {
5
+ #id;
6
+ #groupId;
7
+ #consumer;
8
+ #kafka;
9
+ #connected = false;
10
+ constructor(kafka, id, groupId) {
11
+ this.#id = id;
12
+ this.#groupId = groupId;
13
+ this.#kafka = kafka;
14
+ this.#consumer = this.#kafka.consumer({ groupId: this.#groupId });
15
+ }
16
+ get id() {
17
+ return this.#id;
18
+ }
19
+ async Connect() {
20
+ if (!this.#connected) {
21
+ await this.#consumer.connect();
22
+ this.#connected = true;
23
+ }
24
+ }
25
+ async Disconnect() {
26
+ if (this.#connected) {
27
+ await this.#consumer.disconnect();
28
+ this.#connected = false;
29
+ }
30
+ }
31
+ Subscribe = async (topics) => {
32
+ if (this.#connected) {
33
+ await this.#consumer.subscribe({ topics, fromBeginning: true });
34
+ }
35
+ else {
36
+ throw new Error(`[Subscribe] Consumer not connected.`);
37
+ }
38
+ };
39
+ Stop = async () => {
40
+ if (this.#connected) {
41
+ await this.#consumer.stop();
42
+ }
43
+ else {
44
+ throw new Error(`[Stop] Consumer not connected.`);
45
+ }
46
+ };
47
+ StartConsumingMessages = async (cb) => {
48
+ if (this.#connected) {
49
+ await this.#consumer.run({
50
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
51
+ eachMessage: async ({ topic, partition, message, heartbeat, pause }) => {
52
+ try {
53
+ if (message.key) {
54
+ if (message.value) {
55
+ cb(message.key.toString(), partition, message.value.toString(), message.headers);
56
+ }
57
+ else {
58
+ cb(message.key.toString(), partition, "", message.headers);
59
+ }
60
+ }
61
+ else {
62
+ if (message.value) {
63
+ cb("", partition, message.value?.toString(), message.headers);
64
+ }
65
+ else {
66
+ cb("", partition, "", message.headers);
67
+ }
68
+ }
69
+ }
70
+ catch (err) {
71
+ console.log(err);
72
+ }
73
+ }
74
+ });
75
+ }
76
+ else {
77
+ throw new Error(`[StartConsumingMessages] Consumer not connected.`);
78
+ }
79
+ };
80
+ }
81
+ exports.KafkaConsumer = KafkaConsumer;
82
+ //# sourceMappingURL=kafkaconsumer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafkaconsumer.js","sourceRoot":"","sources":["../../src/kafka/kafkaconsumer.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,9 @@ services:
59
59
  */
60
60
  const stsutils_1 = require("@nsshunt/stsutils");
61
61
  const kafkajs_1 = require("kafkajs");
62
+ const uuid_1 = require("uuid");
63
+ const kafkaconsumer_1 = require("./kafkaconsumer");
64
+ const kafkaproducer_1 = require("./kafkaproducer");
62
65
  const net_1 = __importDefault(require("net"));
63
66
  const tls_1 = __importDefault(require("tls"));
64
67
  const KEEP_ALIVE_DELAY = 60000; // in ms
@@ -72,8 +75,6 @@ const myCustomSocketFactory = (config) => {
72
75
  };
73
76
  class KafkaManager extends stsutils_1.STSOptionsBase {
74
77
  #kafka;
75
- #producer;
76
- #consumer;
77
78
  constructor(options) {
78
79
  super(options);
79
80
  this.#kafka = new kafkajs_1.Kafka({
@@ -84,23 +85,12 @@ class KafkaManager extends stsutils_1.STSOptionsBase {
84
85
  //socketFactory: myCustomSocketFactory,
85
86
  });
86
87
  }
87
- get kafka() {
88
- return this.#kafka;
88
+ CreateProducer() {
89
+ return new kafkaproducer_1.KafkaProducer(this.#kafka, (0, uuid_1.v4)());
90
+ }
91
+ CreateConsumer(groupId) {
92
+ return new kafkaconsumer_1.KafkaConsumer(this.#kafka, (0, uuid_1.v4)(), groupId);
89
93
  }
90
- ProducerConnect = async () => {
91
- this.#producer = this.#kafka.producer();
92
- return this.#producer.connect();
93
- };
94
- ProducerDisconnect = async () => {
95
- await this.#producer?.disconnect();
96
- };
97
- ConsumerConnect = async (groupId) => {
98
- this.#consumer = this.#kafka.consumer({ groupId });
99
- return this.#consumer.connect();
100
- };
101
- ConsumerDisconnect = async () => {
102
- return this.#consumer?.disconnect();
103
- };
104
94
  CreateTopic = async (topic, partitions) => {
105
95
  const admin = this.#kafka.admin();
106
96
  await admin.connect();
@@ -118,63 +108,7 @@ class KafkaManager extends stsutils_1.STSOptionsBase {
118
108
  }
119
109
  ]
120
110
  });
121
- await admin.disconnect();
122
- };
123
- SendMessage = async (topic, message) => {
124
- if (this.#producer) {
125
- return this.#producer.send({
126
- topic,
127
- messages: [message]
128
- });
129
- }
130
- else {
131
- return null;
132
- }
133
- };
134
- SendMessages = async (topic, messages) => {
135
- if (this.#producer) {
136
- return this.#producer.send({
137
- topic,
138
- messages
139
- });
140
- }
141
- else {
142
- return null;
143
- }
144
- };
145
- StartConsumingMessages = async (cb) => {
146
- await this.#consumer?.run({
147
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
148
- eachMessage: async ({ topic, partition, message, heartbeat, pause }) => {
149
- try {
150
- if (message.key) {
151
- if (message.value) {
152
- cb(message.key.toString(), partition, message.value.toString(), message.headers);
153
- }
154
- else {
155
- cb(message.key.toString(), partition, "", message.headers);
156
- }
157
- }
158
- else {
159
- if (message.value) {
160
- cb("", partition, message.value?.toString(), message.headers);
161
- }
162
- else {
163
- cb("", partition, "", message.headers);
164
- }
165
- }
166
- }
167
- catch (err) {
168
- console.log(err);
169
- }
170
- }
171
- });
172
- };
173
- Subscribe = async (topics) => {
174
- await this.#consumer?.subscribe({ topics, fromBeginning: true });
175
- };
176
- Stop = async () => {
177
- await this.#consumer?.stop();
111
+ return admin.disconnect();
178
112
  };
179
113
  }
180
114
  exports.KafkaManager = KafkaManager;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafkamanager.js","sourceRoot":"","sources":["../../src/kafka/kafkamanager.ts"],"names":[],"mappings":";;;;;;AAAA,wFAAwF,CAAE,UAAU;AACpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDE;AACF,gDAAkD;AAElD,qCAAyC;AAEzC,+BAAoC;AAEpC,mDAA+C;AAC/C,mDAA+C;AAE/C,8CAAqB;AACrB,8CAAqB;AAErB,MAAM,gBAAgB,GAAG,KAAK,CAAA,CAAC,QAAQ;AAiBvC,qEAAqE;AACrE,MAAM,qBAAqB,GAAG,CAAC,MAA4B,EAAE,EAAE;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG;QACrB,CAAC,CAAC,aAAG,CAAC,OAAO,CACT,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,aAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAC9H,MAAM,CAAC,SAAS,CACnB;QACD,CAAC,CAAC,aAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;IAE7E,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAE3C,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAED,MAAa,YAAa,SAAQ,yBAAc;IAC5C,MAAM,CAAO;IAEb,YAAY,OAA4B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,MAAM,GAAG,IAAI,eAAK,CAAC;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,kBAAQ,CAAC,OAAO;YAC1B,6CAA6C;YAC7C,uCAAuC;SAC1C,CAAC,CAAA;IACN,CAAC;IAED,cAAc;QACV,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAA,SAAM,GAAE,CAAC,CAAC;IACpD,CAAC;IAED,cAAc,CAAC,OAAe;QAC1B,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAA,SAAM,GAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,GAAG,KAAK,EAAE,KAAa,EAAE,UAAkB,EAAiB,EAAE;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACjC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAA;QACrB,MAAM,KAAK,CAAC,YAAY,CAAC;YACrB,YAAY,EAAE,KAAK;YACnB,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO;YAC9B,MAAM,EAAE;gBACJ;oBACI,KAAK,EAAE,KAAK;oBACZ,aAAa,EAAE,UAAU,EAAM,2DAA2D;oBAC1F,sGAAsG;oBACtG,8FAA8F;oBAC9F,uGAAuG;iBAC1G;aACJ;SACJ,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,UAAU,EAAE,CAAA;IAC7B,CAAC,CAAA;CACJ;AA1CD,oCA0CC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KafkaProducer = void 0;
4
+ class KafkaProducer {
5
+ #id;
6
+ #producer;
7
+ #kafka;
8
+ #connected = false;
9
+ constructor(kafka, id) {
10
+ this.#id = id;
11
+ this.#kafka = kafka;
12
+ this.#producer = this.#kafka.producer();
13
+ }
14
+ get id() {
15
+ return this.#id;
16
+ }
17
+ async Connect() {
18
+ if (!this.#connected) {
19
+ await this.#producer.connect();
20
+ this.#connected = true;
21
+ }
22
+ }
23
+ async Disconnect() {
24
+ if (this.#connected) {
25
+ await this.#producer.disconnect();
26
+ this.#connected = false;
27
+ }
28
+ }
29
+ SendMessage = async (topic, message) => {
30
+ if (this.#connected) {
31
+ return this.#producer.send({
32
+ topic,
33
+ messages: [message]
34
+ });
35
+ }
36
+ else {
37
+ throw new Error(`[SendMessage] Producer not connected.`);
38
+ }
39
+ };
40
+ SendMessages = async (topic, messages) => {
41
+ if (this.#connected) {
42
+ return this.#producer.send({
43
+ topic,
44
+ messages
45
+ });
46
+ }
47
+ else {
48
+ throw new Error(`[SendMessages] Producer not connected.`);
49
+ }
50
+ };
51
+ }
52
+ exports.KafkaProducer = KafkaProducer;
53
+ //# sourceMappingURL=kafkaproducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafkaproducer.js","sourceRoot":"","sources":["../../src/kafka/kafkaproducer.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACtB,GAAG,CAAQ;IACX,SAAS,CAAW;IACpB,MAAM,CAAQ;IACd,UAAU,GAAY,KAAK,CAAC;IAE5B,YAAY,KAAY,EAAE,EAAU;QAChC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC3C,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAA;YACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SAC3B;IACL,CAAC;IAED,WAAW,GAAG,KAAK,EAAC,KAAa,EAAE,OAAsC,EAA8B,EAAE;QACrG,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACvB,KAAK;gBACL,QAAQ,EAAE,CAAE,OAAO,CAAE;aACxB,CAAC,CAAA;SACL;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SAC5D;IACL,CAAC,CAAA;IAED,YAAY,GAAG,KAAK,EAAC,KAAa,EAAE,QAAyC,EAA8B,EAAE;QACzG,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACvB,KAAK;gBACL,QAAQ;aACX,CAAC,CAAA;SACL;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC7D;IACL,CAAC,CAAA;CACJ;AAnDD,sCAmDC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF
4
4
  const config_1 = require("./config");
5
- const kafkamanager_1 = require("./../kafkamanager");
5
+ const kafkamanager_1 = require("./../kafka/kafkamanager");
6
6
  async function Sleep(milliseconds = 1000) {
7
7
  return new Promise(resolve => setTimeout(resolve, milliseconds));
8
8
  }
@@ -12,9 +12,10 @@ const km = new kafkamanager_1.KafkaManager({
12
12
  timeout: config_1.TIMEOUT
13
13
  });
14
14
  const runme = async () => {
15
- await km.ConsumerConnect(config_1.GROUP_ID + process.env.GROUP_ID);
16
- await km.Subscribe([config_1.TOPIC]);
17
- await km.StartConsumingMessages((key, partition, value, headers) => {
15
+ const consumer = km.CreateConsumer(config_1.GROUP_ID + process.env.GROUP_ID);
16
+ await consumer.Connect();
17
+ await consumer.Subscribe([config_1.TOPIC]);
18
+ await consumer.StartConsumingMessages((key, partition, value, headers) => {
18
19
  console.log({
19
20
  key,
20
21
  partition,
@@ -22,9 +23,9 @@ const runme = async () => {
22
23
  headers
23
24
  });
24
25
  });
25
- await km.Stop();
26
- await km.Subscribe(['zzz']);
27
- await km.StartConsumingMessages((key, partition, value, headers) => {
26
+ await consumer.Stop();
27
+ await consumer.Subscribe(['zzz']);
28
+ await consumer.StartConsumingMessages((key, partition, value, headers) => {
28
29
  console.log({
29
30
  key,
30
31
  partition,
@@ -32,9 +33,9 @@ const runme = async () => {
32
33
  headers
33
34
  });
34
35
  });
35
- await km.Stop();
36
- await km.Subscribe(['yyy']);
37
- await km.StartConsumingMessages((key, partition, value, headers) => {
36
+ await consumer.Stop();
37
+ await consumer.Subscribe(['yyy']);
38
+ await consumer.StartConsumingMessages((key, partition, value, headers) => {
38
39
  /*
39
40
  console.log({
40
41
  key,
@@ -48,7 +49,7 @@ const runme = async () => {
48
49
  //await km.Subscribe(['zzz'], cb);
49
50
  process.on("SIGINT", async () => {
50
51
  console.log('=========SIGTERM START =======================');
51
- await km.ConsumerDisconnect();
52
+ await consumer.Disconnect();
52
53
  console.log('=========SIGTERM END =======================');
53
54
  process.exit();
54
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"consume.js","sourceRoot":"","sources":["../../src/kafkatesting/consume.ts"],"names":[],"mappings":";;AAAA,iDAAiD,CAAE,UAAU;AAC7D,qCAAuE;AAEvE,oDAAgD;AAGhD,KAAK,UAAU,KAAK,CAAC,YAAY,GAAG,IAAI;IACpC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,EAAE,GAAG,IAAI,2BAAY,CAAC;IACxB,QAAQ,EAAE,kBAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS;IAC3C,OAAO,EAAE,gBAAO;IAChB,OAAO,EAAE,gBAAO;CACnB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IAErB,MAAM,EAAE,CAAC,eAAe,CAAC,iBAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE1D,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,cAAK,CAAC,CAAC,CAAC;IAE5B,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QAC/G,OAAO,CAAC,GAAG,CAAC;YACR,GAAG;YACH,SAAS;YACT,KAAK;YACL,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QAC/G,OAAO,CAAC,GAAG,CAAC;YACR,GAAG;YACH,SAAS;YACT,KAAK;YACL,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QAC/G;;;;;;;UAOE;QACF,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,eAAe,KAAK,mBAAmB,SAAS,gBAAgB,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAElC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;QAC7D,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;QAC3D,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,SAAS;QACL,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;KACrB;AACL,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BE;AAEF,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"consume.js","sourceRoot":"","sources":["../../src/kafkatesting/consume.ts"],"names":[],"mappings":";;AAAA,iDAAiD,CAAE,UAAU;AAC7D,qCAAuE;AAEvE,0DAAsD;AAGtD,KAAK,UAAU,KAAK,CAAC,YAAY,GAAG,IAAI;IACpC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAA;AACpE,CAAC;AAED,MAAM,EAAE,GAAG,IAAI,2BAAY,CAAC;IACxB,QAAQ,EAAE,kBAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS;IAC3C,OAAO,EAAE,gBAAO;IAChB,OAAO,EAAE,gBAAO;CACnB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IAErB,MAAM,QAAQ,GAAG,EAAE,CAAC,cAAc,CAAC,iBAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;IAEzB,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,cAAK,CAAC,CAAC,CAAC;IAElC,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACrH,OAAO,CAAC,GAAG,CAAC;YACR,GAAG;YACH,SAAS;YACT,KAAK;YACL,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEtB,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAElC,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACrH,OAAO,CAAC,GAAG,CAAC;YACR,GAAG;YACH,SAAS;YACT,KAAK;YACL,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEtB,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAElC,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACrH;;;;;;;UAOE;QACF,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,eAAe,KAAK,mBAAmB,SAAS,gBAAgB,OAAO,GAAG,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,kCAAkC;IAElC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;QAC7D,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;QAC3D,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,SAAS;QACL,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;KACrB;AACL,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BE;AAEF,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA"}
@@ -53,7 +53,7 @@ services:
53
53
 
54
54
  */
55
55
  const config_1 = require("./config");
56
- const kafkamanager_1 = require("./../kafkamanager");
56
+ const kafkamanager_1 = require("./../kafka/kafkamanager");
57
57
  require("colors");
58
58
  async function Sleep(milliseconds = 1000) {
59
59
  return new Promise(resolve => setTimeout(resolve, milliseconds));
@@ -67,29 +67,30 @@ const runme = async () => {
67
67
  await km.CreateTopic(config_1.TOPIC, config_1.PARTITIONS);
68
68
  await km.CreateTopic('zzz', 1);
69
69
  await km.CreateTopic('yyy', 1);
70
- await km.ProducerConnect();
70
+ const producer = km.CreateProducer();
71
+ await producer.Connect();
71
72
  const count = 100000;
72
73
  const sleepTime = 1000;
73
74
  process.on("SIGINT", async () => {
74
75
  console.log('=========SIGTERM START =======================');
75
- await km.ProducerDisconnect();
76
+ await producer.Disconnect();
76
77
  console.log('=========SIGTERM END =======================');
77
78
  process.exit();
78
79
  });
79
80
  for (let i = 0; i < count; i++) {
80
81
  if (i % 100 === 0)
81
82
  console.log(i);
82
- const retVal = await km.SendMessages(config_1.TOPIC, [
83
+ const retVal = await producer.SendMessages(config_1.TOPIC, [
83
84
  { key: 'key1', value: `hello world - ${i}`.green },
84
85
  { key: 'key2', value: 'hey hey! -2' },
85
86
  { key: 'key3', value: 'hey hey! -3' },
86
87
  { key: 'key4', value: 'hey hey! -4' },
87
88
  { key: 'key5', value: 'hey hey! -5' }
88
89
  ]);
89
- await km.SendMessages('zzz', [
90
+ await producer.SendMessages('zzz', [
90
91
  { key: 'key-zzz', value: `hello world - ${i}`.yellow }
91
92
  ]);
92
- await km.SendMessages('yyy', [
93
+ await producer.SendMessages('yyy', [
93
94
  { key: 'key-yyy', value: `hello world - ${i}`.cyan }
94
95
  ]);
95
96
  if (i % 100 === 0) {
@@ -100,7 +101,7 @@ const runme = async () => {
100
101
  await Sleep(sleepTime);
101
102
  }
102
103
  }
103
- await km.ProducerDisconnect();
104
+ await producer.Disconnect();
104
105
  };
105
106
  /*
106
107
  const errorTypes = ['unhandledRejection', 'uncaughtException']
@@ -1 +1 @@
1
- {"version":3,"file":"produce.js","sourceRoot":"","sources":["../../src/kafkatesting/produce.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"produce.js","sourceRoot":"","sources":["../../src/kafkatesting/produce.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "2.19.274",
3
+ "version": "2.19.277",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
package/src/index.ts CHANGED
@@ -10,4 +10,6 @@ export * from './workerprocessbase'
10
10
  export * from './socketIoServerHelper'
11
11
  export * from './stslatencycontroller'
12
12
  export * from './stslatencyroute'
13
- export * from './kafkamanager'
13
+ export * from './kafka/kafkamanager'
14
+ export * from './kafka/kafkaproducer'
15
+ export * from './kafka/kafkaconsumer'
@@ -0,0 +1,79 @@
1
+ import { Kafka, Consumer, IHeaders } from 'kafkajs'
2
+
3
+ export class KafkaConsumer {
4
+ #id: string
5
+ #groupId: string
6
+ #consumer: Consumer;
7
+ #kafka: Kafka;
8
+ #connected: boolean = false;
9
+
10
+ constructor(kafka: Kafka, id: string, groupId: string) {
11
+ this.#id = id;
12
+ this.#groupId = groupId;
13
+ this.#kafka = kafka;
14
+ this.#consumer = this.#kafka.consumer({ groupId: this.#groupId })
15
+ }
16
+
17
+ get id(): string {
18
+ return this.#id;
19
+ }
20
+
21
+ async Connect(): Promise<void> {
22
+ if (!this.#connected) {
23
+ await this.#consumer.connect()
24
+ this.#connected = true;
25
+ }
26
+ }
27
+
28
+ async Disconnect(): Promise<void> {
29
+ if (this.#connected) {
30
+ await this.#consumer.disconnect()
31
+ this.#connected = false;
32
+ }
33
+ }
34
+
35
+ Subscribe = async(topics: string[]): Promise<void> => {
36
+ if (this.#connected) {
37
+ await this.#consumer.subscribe({ topics, fromBeginning: true })
38
+ } else {
39
+ throw new Error(`[Subscribe] Consumer not connected.`);
40
+ }
41
+ }
42
+
43
+ Stop = async(): Promise<void> => {
44
+ if (this.#connected) {
45
+ await this.#consumer.stop();
46
+ } else {
47
+ throw new Error(`[Stop] Consumer not connected.`);
48
+ }
49
+ }
50
+
51
+ StartConsumingMessages = async (cb: (key: string, partition: number, value: string, headers: IHeaders | undefined) => void): Promise<void> => {
52
+ if (this.#connected) {
53
+ await this.#consumer.run({
54
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
+ eachMessage: async ({ topic, partition, message, heartbeat, pause }) => {
56
+ try {
57
+ if (message.key) {
58
+ if (message.value) {
59
+ cb(message.key.toString(), partition, message.value.toString(), message.headers)
60
+ } else {
61
+ cb(message.key.toString(), partition, "", message.headers)
62
+ }
63
+ } else {
64
+ if (message.value) {
65
+ cb("", partition, message.value?.toString(), message.headers)
66
+ } else {
67
+ cb("", partition, "", message.headers)
68
+ }
69
+ }
70
+ } catch (err) {
71
+ console.log(err);
72
+ }
73
+ }
74
+ })
75
+ } else {
76
+ throw new Error(`[StartConsumingMessages] Consumer not connected.`);
77
+ }
78
+ }
79
+ }
@@ -53,7 +53,12 @@ services:
53
53
  */
54
54
  import { STSOptionsBase } from '@nsshunt/stsutils'
55
55
 
56
- import { Kafka, Producer, RecordMetadata, Consumer, IHeaders, logLevel } from 'kafkajs'
56
+ import { Kafka, logLevel } from 'kafkajs'
57
+
58
+ import { v4 as uuidv4 } from 'uuid';
59
+
60
+ import { KafkaConsumer } from './kafkaconsumer'
61
+ import { KafkaProducer } from './kafkaproducer'
57
62
 
58
63
  import net from 'net'
59
64
  import tls from 'tls'
@@ -91,8 +96,6 @@ const myCustomSocketFactory = (config: ICustomSocketFactory) => {
91
96
 
92
97
  export class KafkaManager extends STSOptionsBase {
93
98
  #kafka: Kafka
94
- #producer: Producer | undefined;
95
- #consumer: Consumer | undefined;
96
99
 
97
100
  constructor(options: IKafkaManagerConfig) {
98
101
  super(options);
@@ -106,29 +109,15 @@ export class KafkaManager extends STSOptionsBase {
106
109
  })
107
110
  }
108
111
 
109
- get kafka(): Kafka {
110
- return this.#kafka;
111
- }
112
-
113
- ProducerConnect = async (): Promise<void> => {
114
- this.#producer = this.#kafka.producer()
115
- return this.#producer.connect()
116
- }
117
-
118
- ProducerDisconnect = async () => {
119
- await this.#producer?.disconnect()
120
- }
121
-
122
- ConsumerConnect = async (groupId: string): Promise<void> => {
123
- this.#consumer = this.#kafka.consumer({ groupId })
124
- return this.#consumer.connect()
112
+ CreateProducer(): KafkaProducer {
113
+ return new KafkaProducer(this.#kafka, uuidv4());
125
114
  }
126
115
 
127
- ConsumerDisconnect = async (): Promise<void> => {
128
- return this.#consumer?.disconnect();
116
+ CreateConsumer(groupId: string) {
117
+ return new KafkaConsumer(this.#kafka, uuidv4(), groupId);
129
118
  }
130
119
 
131
- CreateTopic = async (topic: string, partitions: number) => {
120
+ CreateTopic = async (topic: string, partitions: number): Promise<void> => {
132
121
  const admin = this.#kafka.admin()
133
122
  await admin.connect()
134
123
  await admin.createTopics({
@@ -145,61 +134,6 @@ export class KafkaManager extends STSOptionsBase {
145
134
  }
146
135
  ]
147
136
  })
148
- await admin.disconnect()
149
- }
150
-
151
- SendMessage = async(topic: string, message: { key: string, value: string} ): Promise<RecordMetadata[] | null> => {
152
- if (this.#producer) {
153
- return this.#producer.send({
154
- topic,
155
- messages: [ message ]
156
- })
157
- } else {
158
- return null;
159
- }
160
- }
161
-
162
- SendMessages = async(topic: string, messages: { key: string, value: string}[] ): Promise<RecordMetadata[] | null> => {
163
- if (this.#producer) {
164
- return this.#producer.send({
165
- topic,
166
- messages
167
- })
168
- } else {
169
- return null;
170
- }
171
- }
172
-
173
- StartConsumingMessages = async (cb: (key: string, partition: number, value: string, headers: IHeaders | undefined) => void) => {
174
- await this.#consumer?.run({
175
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
176
- eachMessage: async ({ topic, partition, message, heartbeat, pause }) => {
177
- try {
178
- if (message.key) {
179
- if (message.value) {
180
- cb(message.key.toString(), partition, message.value.toString(), message.headers)
181
- } else {
182
- cb(message.key.toString(), partition, "", message.headers)
183
- }
184
- } else {
185
- if (message.value) {
186
- cb("", partition, message.value?.toString(), message.headers)
187
- } else {
188
- cb("", partition, "", message.headers)
189
- }
190
- }
191
- } catch (err) {
192
- console.log(err);
193
- }
194
- }
195
- })
196
- }
197
-
198
- Subscribe = async(topics: string[]) => {
199
- await this.#consumer?.subscribe({ topics, fromBeginning: true })
200
- }
201
-
202
- Stop = async() => {
203
- await this.#consumer?.stop();
137
+ return admin.disconnect()
204
138
  }
205
139
  }
@@ -0,0 +1,54 @@
1
+ import { Kafka, Producer, RecordMetadata } from 'kafkajs'
2
+
3
+ export class KafkaProducer {
4
+ #id: string
5
+ #producer: Producer;
6
+ #kafka: Kafka;
7
+ #connected: boolean = false;
8
+
9
+ constructor(kafka: Kafka, id: string) {
10
+ this.#id = id;
11
+ this.#kafka = kafka;
12
+ this.#producer = this.#kafka.producer()
13
+ }
14
+
15
+ get id(): string {
16
+ return this.#id;
17
+ }
18
+
19
+ async Connect(): Promise<void> {
20
+ if (!this.#connected) {
21
+ await this.#producer.connect();
22
+ this.#connected = true;
23
+ }
24
+ }
25
+
26
+ async Disconnect(): Promise<void> {
27
+ if (this.#connected) {
28
+ await this.#producer.disconnect()
29
+ this.#connected = false;
30
+ }
31
+ }
32
+
33
+ SendMessage = async(topic: string, message: { key: string, value: string} ): Promise<RecordMetadata[]> => {
34
+ if (this.#connected) {
35
+ return this.#producer.send({
36
+ topic,
37
+ messages: [ message ]
38
+ })
39
+ } else {
40
+ throw new Error(`[SendMessage] Producer not connected.`);
41
+ }
42
+ }
43
+
44
+ SendMessages = async(topic: string, messages: { key: string, value: string}[] ): Promise<RecordMetadata[]> => {
45
+ if (this.#connected) {
46
+ return this.#producer.send({
47
+ topic,
48
+ messages
49
+ })
50
+ } else {
51
+ throw new Error(`[SendMessages] Producer not connected.`);
52
+ }
53
+ }
54
+ }
@@ -1,7 +1,7 @@
1
1
  /* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF
2
2
  import { TOPIC, GROUP_ID, CLIENT_ID, BROKERS, TIMEOUT } from './config'
3
3
 
4
- import { KafkaManager } from './../kafkamanager'
4
+ import { KafkaManager } from './../kafka/kafkamanager'
5
5
  import { JSONObject } from '@nsshunt/stsutils';
6
6
 
7
7
  async function Sleep(milliseconds = 1000) {
@@ -16,11 +16,13 @@ const km = new KafkaManager({
16
16
 
17
17
  const runme = async () => {
18
18
 
19
- await km.ConsumerConnect(GROUP_ID + process.env.GROUP_ID);
19
+ const consumer = km.CreateConsumer(GROUP_ID + process.env.GROUP_ID);
20
20
 
21
- await km.Subscribe([TOPIC]);
21
+ await consumer.Connect();
22
22
 
23
- await km.StartConsumingMessages((key: string, partition: number, value: string, headers: JSONObject | undefined) => {
23
+ await consumer.Subscribe([TOPIC]);
24
+
25
+ await consumer.StartConsumingMessages((key: string, partition: number, value: string, headers: JSONObject | undefined) => {
24
26
  console.log({
25
27
  key,
26
28
  partition,
@@ -29,11 +31,11 @@ const runme = async () => {
29
31
  });
30
32
  });
31
33
 
32
- await km.Stop();
34
+ await consumer.Stop();
33
35
 
34
- await km.Subscribe(['zzz']);
36
+ await consumer.Subscribe(['zzz']);
35
37
 
36
- await km.StartConsumingMessages((key: string, partition: number, value: string, headers: JSONObject | undefined) => {
38
+ await consumer.StartConsumingMessages((key: string, partition: number, value: string, headers: JSONObject | undefined) => {
37
39
  console.log({
38
40
  key,
39
41
  partition,
@@ -42,11 +44,11 @@ const runme = async () => {
42
44
  });
43
45
  });
44
46
 
45
- await km.Stop();
47
+ await consumer.Stop();
46
48
 
47
- await km.Subscribe(['yyy']);
49
+ await consumer.Subscribe(['yyy']);
48
50
 
49
- await km.StartConsumingMessages((key: string, partition: number, value: string, headers: JSONObject | undefined) => {
51
+ await consumer.StartConsumingMessages((key: string, partition: number, value: string, headers: JSONObject | undefined) => {
50
52
  /*
51
53
  console.log({
52
54
  key,
@@ -62,7 +64,7 @@ const runme = async () => {
62
64
 
63
65
  process.on("SIGINT", async () => {
64
66
  console.log('=========SIGTERM START =======================')
65
- await km.ConsumerDisconnect();
67
+ await consumer.Disconnect();
66
68
  console.log('=========SIGTERM END =======================')
67
69
  process.exit();
68
70
  });
@@ -52,7 +52,7 @@ services:
52
52
  */
53
53
  import { TOPIC, CLIENT_ID, BROKERS, PARTITIONS, TIMEOUT } from './config'
54
54
 
55
- import { KafkaManager } from './../kafkamanager'
55
+ import { KafkaManager } from './../kafka/kafkamanager'
56
56
 
57
57
  import 'colors'
58
58
 
@@ -71,21 +71,23 @@ const runme = async () => {
71
71
  await km.CreateTopic('zzz', 1);
72
72
  await km.CreateTopic('yyy', 1);
73
73
 
74
- await km.ProducerConnect();
74
+ const producer = km.CreateProducer();
75
+
76
+ await producer.Connect();
75
77
 
76
78
  const count = 100000;
77
79
  const sleepTime = 1000;
78
80
 
79
81
  process.on("SIGINT", async () => {
80
82
  console.log('=========SIGTERM START =======================')
81
- await km.ProducerDisconnect();
83
+ await producer.Disconnect();
82
84
  console.log('=========SIGTERM END =======================')
83
85
  process.exit();
84
86
  });
85
87
 
86
88
  for (let i=0; i < count; i++) {
87
89
  if (i % 100 === 0) console.log(i);
88
- const retVal = await km.SendMessages(TOPIC, [
90
+ const retVal = await producer.SendMessages(TOPIC, [
89
91
  { key: 'key1', value: `hello world - ${i}`.green },
90
92
  { key: 'key2', value: 'hey hey! -2' },
91
93
  { key: 'key3', value: 'hey hey! -3' },
@@ -94,12 +96,12 @@ const runme = async () => {
94
96
  ]
95
97
  );
96
98
 
97
- await km.SendMessages('zzz', [
99
+ await producer.SendMessages('zzz', [
98
100
  { key: 'key-zzz', value: `hello world - ${i}`.yellow }
99
101
  ]
100
102
  );
101
103
 
102
- await km.SendMessages('yyy', [
104
+ await producer.SendMessages('yyy', [
103
105
  { key: 'key-yyy', value: `hello world - ${i}`.cyan }
104
106
  ]
105
107
  );
@@ -113,7 +115,7 @@ const runme = async () => {
113
115
  }
114
116
  }
115
117
 
116
- await km.ProducerDisconnect();
118
+ await producer.Disconnect();
117
119
  }
118
120
 
119
121
  /*
package/types/index.d.ts CHANGED
@@ -10,5 +10,7 @@ export * from './workerprocessbase';
10
10
  export * from './socketIoServerHelper';
11
11
  export * from './stslatencycontroller';
12
12
  export * from './stslatencyroute';
13
- export * from './kafkamanager';
13
+ export * from './kafka/kafkamanager';
14
+ export * from './kafka/kafkaproducer';
15
+ export * from './kafka/kafkaconsumer';
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Kafka, IHeaders } from 'kafkajs';
2
+ export declare class KafkaConsumer {
3
+ #private;
4
+ constructor(kafka: Kafka, id: string, groupId: string);
5
+ get id(): string;
6
+ Connect(): Promise<void>;
7
+ Disconnect(): Promise<void>;
8
+ Subscribe: (topics: string[]) => Promise<void>;
9
+ Stop: () => Promise<void>;
10
+ StartConsumingMessages: (cb: (key: string, partition: number, value: string, headers: IHeaders | undefined) => void) => Promise<void>;
11
+ }
12
+ //# sourceMappingURL=kafkaconsumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafkaconsumer.d.ts","sourceRoot":"","sources":["../../src/kafka/kafkaconsumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEnD,qBAAa,aAAa;;gBAOV,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAOrD,IAAI,EAAE,IAAI,MAAM,CAEf;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,SAAS,WAAiB,MAAM,EAAE,KAAG,QAAQ,IAAI,CAAC,CAMjD;IAED,IAAI,QAAY,QAAQ,IAAI,CAAC,CAM5B;IAED,sBAAsB,aAAoB,MAAM,aAAa,MAAM,SAAS,MAAM,WAAW,QAAQ,GAAG,SAAS,KAAK,IAAI,KAAG,QAAQ,IAAI,CAAC,CA2BzI;CACJ"}
@@ -0,0 +1,16 @@
1
+ import { STSOptionsBase } from '@nsshunt/stsutils';
2
+ import { KafkaConsumer } from './kafkaconsumer';
3
+ import { KafkaProducer } from './kafkaproducer';
4
+ export interface IKafkaManagerConfig {
5
+ clientId: string;
6
+ brokers: string[];
7
+ timeout: number;
8
+ }
9
+ export declare class KafkaManager extends STSOptionsBase {
10
+ #private;
11
+ constructor(options: IKafkaManagerConfig);
12
+ CreateProducer(): KafkaProducer;
13
+ CreateConsumer(groupId: string): KafkaConsumer;
14
+ CreateTopic: (topic: string, partitions: number) => Promise<void>;
15
+ }
16
+ //# sourceMappingURL=kafkamanager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafkamanager.d.ts","sourceRoot":"","sources":["../../src/kafka/kafkamanager.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMlD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAO/C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAClB;AAyBD,qBAAa,YAAa,SAAQ,cAAc;;gBAGhC,OAAO,EAAE,mBAAmB;IAYxC,cAAc,IAAI,aAAa;IAI/B,cAAc,CAAC,OAAO,EAAE,MAAM;IAI9B,WAAW,UAAiB,MAAM,cAAc,MAAM,KAAG,QAAQ,IAAI,CAAC,CAkBrE;CACJ"}
@@ -0,0 +1,17 @@
1
+ import { Kafka, RecordMetadata } from 'kafkajs';
2
+ export declare class KafkaProducer {
3
+ #private;
4
+ constructor(kafka: Kafka, id: string);
5
+ get id(): string;
6
+ Connect(): Promise<void>;
7
+ Disconnect(): Promise<void>;
8
+ SendMessage: (topic: string, message: {
9
+ key: string;
10
+ value: string;
11
+ }) => Promise<RecordMetadata[]>;
12
+ SendMessages: (topic: string, messages: {
13
+ key: string;
14
+ value: string;
15
+ }[]) => Promise<RecordMetadata[]>;
16
+ }
17
+ //# sourceMappingURL=kafkaproducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafkaproducer.d.ts","sourceRoot":"","sources":["../../src/kafka/kafkaproducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,cAAc,EAAE,MAAM,SAAS,CAAA;AAEzD,qBAAa,aAAa;;gBAMV,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM;IAMpC,IAAI,EAAE,IAAI,MAAM,CAEf;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,UAAgB,MAAM,WAAW;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAI,QAAQ,cAAc,EAAE,CAAC,CASrG;IAED,YAAY,UAAgB,MAAM,YAAY;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,KAAI,QAAQ,cAAc,EAAE,CAAC,CASzG;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafkamanager.js","sourceRoot":"","sources":["../src/kafkamanager.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { STSOptionsBase } from '@nsshunt/stsutils';
2
- import { Kafka, RecordMetadata, IHeaders } from 'kafkajs';
3
- export interface IKafkaManagerConfig {
4
- clientId: string;
5
- brokers: string[];
6
- timeout: number;
7
- }
8
- export declare class KafkaManager extends STSOptionsBase {
9
- #private;
10
- constructor(options: IKafkaManagerConfig);
11
- get kafka(): Kafka;
12
- ProducerConnect: () => Promise<void>;
13
- ProducerDisconnect: () => Promise<void>;
14
- ConsumerConnect: (groupId: string) => Promise<void>;
15
- ConsumerDisconnect: () => Promise<void>;
16
- CreateTopic: (topic: string, partitions: number) => Promise<void>;
17
- SendMessage: (topic: string, message: {
18
- key: string;
19
- value: string;
20
- }) => Promise<RecordMetadata[] | null>;
21
- SendMessages: (topic: string, messages: {
22
- key: string;
23
- value: string;
24
- }[]) => Promise<RecordMetadata[] | null>;
25
- StartConsumingMessages: (cb: (key: string, partition: number, value: string, headers: IHeaders | undefined) => void) => Promise<void>;
26
- Subscribe: (topics: string[]) => Promise<void>;
27
- Stop: () => Promise<void>;
28
- }
29
- //# sourceMappingURL=kafkamanager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafkamanager.d.ts","sourceRoot":"","sources":["../src/kafkamanager.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,KAAK,EAAY,cAAc,EAAY,QAAQ,EAAY,MAAM,SAAS,CAAA;AAOvF,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAClB;AAyBD,qBAAa,YAAa,SAAQ,cAAc;;gBAKhC,OAAO,EAAE,mBAAmB;IAYxC,IAAI,KAAK,IAAI,KAAK,CAEjB;IAED,eAAe,QAAa,QAAQ,IAAI,CAAC,CAGxC;IAED,kBAAkB,sBAEjB;IAED,eAAe,YAAmB,MAAM,KAAG,QAAQ,IAAI,CAAC,CAGvD;IAED,kBAAkB,QAAa,QAAQ,IAAI,CAAC,CAE3C;IAED,WAAW,UAAiB,MAAM,cAAc,MAAM,mBAkBrD;IAED,WAAW,UAAgB,MAAM,WAAW;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAI,QAAQ,cAAc,EAAE,GAAG,IAAI,CAAC,CAS5G;IAED,YAAY,UAAgB,MAAM,YAAY;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,KAAI,QAAQ,cAAc,EAAE,GAAG,IAAI,CAAC,CAShH;IAED,sBAAsB,aAAoB,MAAM,aAAa,MAAM,SAAS,MAAM,WAAW,QAAQ,GAAG,SAAS,KAAK,IAAI,mBAuBzH;IAED,SAAS,WAAiB,MAAM,EAAE,mBAEjC;IAED,IAAI,sBAEH;CACJ"}