@nsshunt/stsappframework 2.19.280 → 2.19.281

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.
@@ -60,30 +60,61 @@ services:
60
60
  const stsutils_1 = require("@nsshunt/stsutils");
61
61
  const kafkajs_1 = require("kafkajs");
62
62
  const uuid_1 = require("uuid");
63
+ const node_fs_1 = __importDefault(require("node:fs"));
63
64
  const kafkaconsumer_1 = require("./kafkaconsumer");
64
65
  const kafkaproducer_1 = require("./kafkaproducer");
65
66
  const net_1 = __importDefault(require("net"));
66
67
  const tls_1 = __importDefault(require("tls"));
67
- const KEEP_ALIVE_DELAY = 60000; // in ms
68
- //const myCustomSocketFactory = ({ host, port, ssl, onConnect }) => {
69
- const myCustomSocketFactory = (config) => {
70
- const socket = config.ssl
71
- ? tls_1.default.connect(Object.assign({ host: config.host, port: config.port }, !net_1.default.isIP(config.host) ? { servername: config.host } : {}, config.ssl), config.onConnect)
72
- : net_1.default.connect({ host: config.host, port: config.port }, config.onConnect);
73
- socket.setKeepAlive(true, KEEP_ALIVE_DELAY);
74
- return socket;
75
- };
68
+ const KEEP_ALIVE_DELAY = 60000; //@@ in ms
76
69
  class KafkaManager extends stsutils_1.STSOptionsBase {
77
70
  #kafka;
78
71
  constructor(options) {
79
72
  super(options);
80
- this.#kafka = new kafkajs_1.Kafka({
73
+ const kc = {
81
74
  clientId: options.clientId,
82
75
  brokers: options.brokers,
83
- logLevel: kafkajs_1.logLevel.NOTHING,
84
- //brokers: ['localhost:9092', 'kafka2:9092'],
85
- //socketFactory: myCustomSocketFactory,
86
- });
76
+ connectionTimeout: options.connectionTimeout,
77
+ requestTimeout: options.requestTimeout
78
+ };
79
+ // NOTHING, ERROR, WARN, INFO, and DEBUG. INFO is configured by default.
80
+ switch (options.logLevel) {
81
+ case 'NOTHING':
82
+ kc.logLevel = kafkajs_1.logLevel.NOTHING;
83
+ break;
84
+ case 'ERROR':
85
+ kc.logLevel = kafkajs_1.logLevel.ERROR;
86
+ break;
87
+ case 'WARN':
88
+ kc.logLevel = kafkajs_1.logLevel.WARN;
89
+ break;
90
+ case 'INFO':
91
+ kc.logLevel = kafkajs_1.logLevel.INFO;
92
+ break;
93
+ case 'DEBUG':
94
+ kc.logLevel = kafkajs_1.logLevel.DEBUG;
95
+ break;
96
+ default:
97
+ kc.logLevel = kafkajs_1.logLevel.NOTHING;
98
+ }
99
+ if (options.useSSL && options.ssl) {
100
+ kc.ssl = {
101
+ ca: [node_fs_1.default.readFileSync(options.ssl.cafile, { encoding: 'utf8' })],
102
+ key: node_fs_1.default.readFileSync(options.ssl.keyfile, { encoding: 'utf8' }),
103
+ cert: node_fs_1.default.readFileSync(options.ssl.certfileFile, { encoding: 'utf8' }),
104
+ };
105
+ }
106
+ if (options.keepAlive) {
107
+ //const myCustomSocketFactory = ({ host, port, ssl, onConnect }) => {
108
+ const myCustomSocketFactory = (config) => {
109
+ const socket = config.ssl
110
+ ? tls_1.default.connect(Object.assign({ host: config.host, port: config.port }, !net_1.default.isIP(config.host) ? { servername: config.host } : {}, config.ssl), config.onConnect)
111
+ : net_1.default.connect({ host: config.host, port: config.port }, config.onConnect);
112
+ socket.setKeepAlive(true, options.keepAlive);
113
+ return socket;
114
+ };
115
+ kc.socketFactory = myCustomSocketFactory;
116
+ }
117
+ this.#kafka = new kafkajs_1.Kafka(kc);
87
118
  }
88
119
  CreateProducer() {
89
120
  return new kafkaproducer_1.KafkaProducer(this.#kafka, (0, uuid_1.v4)());
@@ -1 +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"}
1
+ {"version":3,"file":"kafkamanager.js","sourceRoot":"","sources":["../../src/kafka/kafkamanager.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,11 @@ async function Sleep(milliseconds = 1000) {
9
9
  const km = new kafkamanager_1.KafkaManager({
10
10
  clientId: config_1.CLIENT_ID + process.env.CLIENT_ID,
11
11
  brokers: config_1.BROKERS,
12
- timeout: config_1.TIMEOUT
12
+ adminTimeout: config_1.TIMEOUT,
13
+ connectionTimeout: config_1.TIMEOUT,
14
+ requestTimeout: config_1.TIMEOUT,
15
+ logLevel: 'NOTHING',
16
+ useSSL: false
13
17
  });
14
18
  const runme = async () => {
15
19
  const fromBeginning = false;
@@ -1 +1 @@
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,aAAa,GAAG,KAAK,CAAC;IAE5B,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,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACpI,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,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACpI,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,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACpI;;;;;;;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"}
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,YAAY,EAAE,gBAAO;IACrB,iBAAiB,EAAE,gBAAO;IAC1B,cAAc,EAAE,gBAAO;IACvB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IAErB,MAAM,aAAa,GAAG,KAAK,CAAC;IAE5B,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,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACpI,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,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACpI,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,EAAE,aAAa,CAAC,CAAC;IAEjD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,SAAiB,EAAE,KAAa,EAAE,OAA+B,EAAE,EAAE;QACpI;;;;;;;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"}
@@ -61,7 +61,11 @@ async function Sleep(milliseconds = 1000) {
61
61
  const km = new kafkamanager_1.KafkaManager({
62
62
  clientId: config_1.CLIENT_ID + process.env.CLIENT_ID,
63
63
  brokers: config_1.BROKERS,
64
- timeout: config_1.TIMEOUT
64
+ adminTimeout: config_1.TIMEOUT,
65
+ connectionTimeout: config_1.TIMEOUT,
66
+ requestTimeout: config_1.TIMEOUT,
67
+ logLevel: 'NOTHING',
68
+ useSSL: false
65
69
  });
66
70
  const runme = async () => {
67
71
  await km.CreateTopic(config_1.TOPIC, config_1.PARTITIONS);
@@ -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.280",
3
+ "version": "2.19.281",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -46,7 +46,7 @@
46
46
  "typescript": "^5.2.2"
47
47
  },
48
48
  "dependencies": {
49
- "@nsshunt/stsconfig": "^1.25.54",
49
+ "@nsshunt/stsconfig": "^1.25.55",
50
50
  "@nsshunt/stsdatamanagement": "^1.17.124",
51
51
  "@nsshunt/stsinstrumentation": "^6.11.94",
52
52
  "@nsshunt/stspublisherserver": "^1.15.105",
@@ -53,9 +53,10 @@ services:
53
53
  */
54
54
  import { STSOptionsBase } from '@nsshunt/stsutils'
55
55
 
56
- import { Kafka, logLevel } from 'kafkajs'
56
+ import { Kafka, KafkaConfig, logLevel } from 'kafkajs'
57
57
 
58
58
  import { v4 as uuidv4 } from 'uuid';
59
+ import fs from 'node:fs'
59
60
 
60
61
  import { KafkaConsumer } from './kafkaconsumer'
61
62
  import { KafkaProducer } from './kafkaproducer'
@@ -63,12 +64,24 @@ import { KafkaProducer } from './kafkaproducer'
63
64
  import net from 'net'
64
65
  import tls from 'tls'
65
66
 
66
- const KEEP_ALIVE_DELAY = 60000 // in ms
67
+ const KEEP_ALIVE_DELAY = 60000 //@@ in ms
67
68
 
69
+ // https://kafka.js.org/docs/configuration
68
70
  export interface IKafkaManagerConfig {
69
- clientId: string
70
- brokers: string[]
71
- timeout: number
71
+ clientId: string // A logical identifier of an application. Can be used by brokers to apply quotas or trace requests to a specific application. Example: booking-events-processor.
72
+ brokers: string[] // List of Kafka brokers
73
+ adminTimeout: number // Time in milliseconds to wait for a successful admin operation. The default value is: 5000.
74
+ connectionTimeout: number // Time in milliseconds to wait for a successful connection. The default value is: 1000.
75
+ requestTimeout: number // Time in milliseconds to wait for a successful request. The default value is: 30000.
76
+ logLevel: string // There are 5 log levels available: NOTHING, ERROR, WARN, INFO, and DEBUG. INFO is configured by default.
77
+ keepAlive?: number // When specified, the number of ms for socket keep alive processing.
78
+ useSSL: boolean // Use SSL
79
+ ssl?: { // Must be specified if useSSL is true
80
+ rejectUnauthorized: boolean
81
+ cafile: string
82
+ keyfile: string
83
+ certfileFile: string
84
+ }
72
85
  }
73
86
 
74
87
  // https://kafka.js.org/docs/configuration
@@ -80,33 +93,62 @@ declare interface ICustomSocketFactory {
80
93
  onConnect: any
81
94
  }
82
95
 
83
- //const myCustomSocketFactory = ({ host, port, ssl, onConnect }) => {
84
- const myCustomSocketFactory = (config: ICustomSocketFactory) => {
85
- const socket = config.ssl
86
- ? tls.connect(
87
- Object.assign({ host: config.host, port: config.port }, !net.isIP(config.host) ? { servername: config.host } : {}, config.ssl),
88
- config.onConnect
89
- )
90
- : net.connect({ host: config.host, port: config.port }, config.onConnect)
91
-
92
- socket.setKeepAlive(true, KEEP_ALIVE_DELAY)
93
-
94
- return socket
95
- }
96
-
97
96
  export class KafkaManager extends STSOptionsBase {
98
97
  #kafka: Kafka
99
98
 
100
99
  constructor(options: IKafkaManagerConfig) {
101
100
  super(options);
102
101
 
103
- this.#kafka = new Kafka({
102
+ const kc: KafkaConfig = {
104
103
  clientId: options.clientId,
105
- brokers: options.brokers,
106
- logLevel: logLevel.NOTHING,
107
- //brokers: ['localhost:9092', 'kafka2:9092'],
108
- //socketFactory: myCustomSocketFactory,
109
- })
104
+ brokers: options.brokers, //brokers: ['localhost:9092', 'kafka2:9092'],
105
+ connectionTimeout: options.connectionTimeout,
106
+ requestTimeout: options.requestTimeout
107
+ }
108
+ // NOTHING, ERROR, WARN, INFO, and DEBUG. INFO is configured by default.
109
+ switch (options.logLevel) {
110
+ case 'NOTHING' :
111
+ kc.logLevel = logLevel.NOTHING;
112
+ break;
113
+ case 'ERROR' :
114
+ kc.logLevel = logLevel.ERROR;
115
+ break;
116
+ case 'WARN' :
117
+ kc.logLevel = logLevel.WARN;
118
+ break;
119
+ case 'INFO' :
120
+ kc.logLevel = logLevel.INFO;
121
+ break;
122
+ case 'DEBUG' :
123
+ kc.logLevel = logLevel.DEBUG;
124
+ break;
125
+ default :
126
+ kc.logLevel = logLevel.NOTHING;
127
+ }
128
+ if (options.useSSL && options.ssl) {
129
+ kc.ssl = {
130
+ ca: [fs.readFileSync(options.ssl.cafile as string, { encoding: 'utf8'})],
131
+ key: fs.readFileSync(options.ssl.keyfile, { encoding: 'utf8'}),
132
+ cert: fs.readFileSync(options.ssl.certfileFile, { encoding: 'utf8'}),
133
+ }
134
+ }
135
+ if (options.keepAlive) {
136
+ //const myCustomSocketFactory = ({ host, port, ssl, onConnect }) => {
137
+ const myCustomSocketFactory = (config: ICustomSocketFactory) => {
138
+ const socket = config.ssl
139
+ ? tls.connect(
140
+ Object.assign({ host: config.host, port: config.port }, !net.isIP(config.host) ? { servername: config.host } : {}, config.ssl),
141
+ config.onConnect
142
+ )
143
+ : net.connect({ host: config.host, port: config.port }, config.onConnect)
144
+
145
+ socket.setKeepAlive(true, options.keepAlive)
146
+ return socket
147
+ }
148
+ kc.socketFactory = myCustomSocketFactory;
149
+ }
150
+
151
+ this.#kafka = new Kafka(kc);
110
152
  }
111
153
 
112
154
  CreateProducer(): KafkaProducer {
@@ -11,7 +11,11 @@ async function Sleep(milliseconds = 1000) {
11
11
  const km = new KafkaManager({
12
12
  clientId: CLIENT_ID + process.env.CLIENT_ID,
13
13
  brokers: BROKERS,
14
- timeout: TIMEOUT
14
+ adminTimeout: TIMEOUT,
15
+ connectionTimeout: TIMEOUT,
16
+ requestTimeout: TIMEOUT,
17
+ logLevel: 'NOTHING',
18
+ useSSL: false
15
19
  });
16
20
 
17
21
  const runme = async () => {
@@ -63,7 +63,11 @@ async function Sleep(milliseconds = 1000) {
63
63
  const km = new KafkaManager({
64
64
  clientId: CLIENT_ID + process.env.CLIENT_ID,
65
65
  brokers: BROKERS,
66
- timeout: TIMEOUT
66
+ adminTimeout: TIMEOUT,
67
+ connectionTimeout: TIMEOUT,
68
+ requestTimeout: TIMEOUT,
69
+ logLevel: 'NOTHING',
70
+ useSSL: false
67
71
  });
68
72
 
69
73
  const runme = async () => {
@@ -4,7 +4,18 @@ import { KafkaProducer } from './kafkaproducer';
4
4
  export interface IKafkaManagerConfig {
5
5
  clientId: string;
6
6
  brokers: string[];
7
- timeout: number;
7
+ adminTimeout: number;
8
+ connectionTimeout: number;
9
+ requestTimeout: number;
10
+ logLevel: string;
11
+ keepAlive?: number;
12
+ useSSL: boolean;
13
+ ssl?: {
14
+ rejectUnauthorized: boolean;
15
+ cafile: string;
16
+ keyfile: string;
17
+ certfileFile: string;
18
+ };
8
19
  }
9
20
  export declare class KafkaManager extends STSOptionsBase {
10
21
  #private;
@@ -1 +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"}
1
+ {"version":3,"file":"kafkamanager.d.ts","sourceRoot":"","sources":["../../src/kafka/kafkamanager.ts"],"names":[],"mappings":"AAqDA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAOlD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAQ/C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE;QACJ,kBAAkB,EAAE,OAAO,CAAA;QAC3B,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,MAAM,CAAA;QACf,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ;AAWD,qBAAa,YAAa,SAAQ,cAAc;;gBAGhC,OAAO,EAAE,mBAAmB;IAuDxC,cAAc,IAAI,aAAa;IAI/B,cAAc,CAAC,OAAO,EAAE,MAAM;IAI9B,WAAW,UAAiB,MAAM,cAAc,MAAM,KAAG,QAAQ,IAAI,CAAC,CAkBrE;CACJ"}