@6thbridge/utils 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/lib/actions/charge.action.d.ts +9 -0
  2. package/lib/actions/charge.action.js +74 -0
  3. package/lib/actions/charge.action.js.map +1 -0
  4. package/lib/actions/currency.action.d.ts +15 -0
  5. package/lib/actions/currency.action.js +57 -0
  6. package/lib/actions/currency.action.js.map +1 -0
  7. package/lib/actions/index.d.ts +9 -0
  8. package/lib/actions/index.js +33 -0
  9. package/lib/actions/index.js.map +1 -0
  10. package/lib/actions/phone-number.action.d.ts +23 -0
  11. package/lib/actions/phone-number.action.js +77 -0
  12. package/lib/actions/phone-number.action.js.map +1 -0
  13. package/lib/brokers/index.d.ts +6 -0
  14. package/lib/brokers/index.js +8 -0
  15. package/lib/brokers/index.js.map +1 -0
  16. package/lib/brokers/kafka.d.ts +84 -0
  17. package/lib/brokers/kafka.js +265 -0
  18. package/lib/brokers/kafka.js.map +1 -0
  19. package/lib/brokers/kafka.test.d.ts +1 -0
  20. package/lib/brokers/kafka.test.js +118 -0
  21. package/lib/brokers/kafka.test.js.map +1 -0
  22. package/lib/brokers/rabbitmq.d.ts +108 -0
  23. package/lib/brokers/rabbitmq.js +290 -0
  24. package/lib/brokers/rabbitmq.js.map +1 -0
  25. package/lib/cache/in-memory.d.ts +0 -0
  26. package/lib/cache/in-memory.js +2 -0
  27. package/lib/cache/in-memory.js.map +1 -0
  28. package/lib/cache/redis.d.ts +18 -0
  29. package/lib/cache/redis.js +58 -0
  30. package/lib/cache/redis.js.map +1 -0
  31. package/lib/database/MongoDBRepository.d.ts +23 -0
  32. package/lib/database/MongoDBRepository.js +90 -0
  33. package/lib/database/MongoDBRepository.js.map +1 -0
  34. package/lib/database/MongoDBTypeRepository.d.ts +26 -0
  35. package/lib/database/MongoDBTypeRepository.js +90 -0
  36. package/lib/database/MongoDBTypeRepository.js.map +1 -0
  37. package/lib/database/index.d.ts +4 -0
  38. package/lib/database/index.js +36 -0
  39. package/lib/database/index.js.map +1 -0
  40. package/lib/database/query.d.ts +16 -0
  41. package/lib/database/query.js +82 -0
  42. package/lib/database/query.js.map +1 -0
  43. package/lib/exceptions/custom.exception.d.ts +14 -0
  44. package/lib/exceptions/custom.exception.js +16 -0
  45. package/lib/exceptions/custom.exception.js.map +1 -0
  46. package/lib/helpers/errors.d.ts +2 -0
  47. package/lib/helpers/errors.js +46 -0
  48. package/lib/helpers/errors.js.map +1 -0
  49. package/lib/helpers/index.d.ts +51 -0
  50. package/lib/helpers/index.js +198 -0
  51. package/lib/helpers/index.js.map +1 -0
  52. package/lib/helpers/utils.d.ts +9 -0
  53. package/lib/helpers/utils.js +18 -0
  54. package/lib/helpers/utils.js.map +1 -0
  55. package/lib/http/axios.d.ts +0 -0
  56. package/lib/http/axios.js +2 -0
  57. package/lib/http/axios.js.map +1 -0
  58. package/lib/index.d.ts +17 -0
  59. package/lib/index.js +104 -0
  60. package/lib/index.js.map +1 -0
  61. package/lib/logger/index.d.ts +20 -0
  62. package/lib/logger/index.js +12 -0
  63. package/lib/logger/index.js.map +1 -0
  64. package/lib/logger/logger-test.d.ts +1 -0
  65. package/lib/logger/logger-test.js +40 -0
  66. package/lib/logger/logger-test.js.map +1 -0
  67. package/lib/logger/logger.d.ts +31 -0
  68. package/lib/logger/logger.js +106 -0
  69. package/lib/logger/logger.js.map +1 -0
  70. package/lib/logger/null-logger.d.ts +14 -0
  71. package/lib/logger/null-logger.js +29 -0
  72. package/lib/logger/null-logger.js.map +1 -0
  73. package/lib/logger/test.d.ts +1 -0
  74. package/lib/logger/test.js +45 -0
  75. package/lib/logger/test.js.map +1 -0
  76. package/lib/middlewares/common.d.ts +22 -0
  77. package/lib/middlewares/common.js +141 -0
  78. package/lib/middlewares/common.js.map +1 -0
  79. package/lib/middlewares/express.d.ts +4 -0
  80. package/lib/middlewares/express.js +99 -0
  81. package/lib/middlewares/express.js.map +1 -0
  82. package/lib/middlewares/fastify.d.ts +4 -0
  83. package/lib/middlewares/fastify.js +73 -0
  84. package/lib/middlewares/fastify.js.map +1 -0
  85. package/lib/middlewares/index.d.ts +4 -0
  86. package/lib/middlewares/index.js +34 -0
  87. package/lib/middlewares/index.js.map +1 -0
  88. package/lib/monitoring/index.d.ts +12 -0
  89. package/lib/monitoring/index.js +75 -0
  90. package/lib/monitoring/index.js.map +1 -0
  91. package/lib/responses/express.d.ts +26 -0
  92. package/lib/responses/express.js +98 -0
  93. package/lib/responses/express.js.map +1 -0
  94. package/lib/responses/fastify.d.ts +4 -0
  95. package/lib/responses/fastify.js +25 -0
  96. package/lib/responses/fastify.js.map +1 -0
  97. package/lib/responses/index.d.ts +3 -0
  98. package/lib/responses/index.js +31 -0
  99. package/lib/responses/index.js.map +1 -0
  100. package/lib/secrets/aws-secret.d.ts +4 -0
  101. package/lib/secrets/aws-secret.js +55 -0
  102. package/lib/secrets/aws-secret.js.map +1 -0
  103. package/lib/secrets/aws.d.ts +0 -0
  104. package/lib/secrets/aws.js +2 -0
  105. package/lib/secrets/aws.js.map +1 -0
  106. package/lib/secrets/index.d.ts +8 -0
  107. package/lib/secrets/index.js +18 -0
  108. package/lib/secrets/index.js.map +1 -0
  109. package/lib/test/actions/charge.action.test.d.ts +1 -0
  110. package/lib/test/actions/charge.action.test.js +86 -0
  111. package/lib/test/actions/charge.action.test.js.map +1 -0
  112. package/lib/test/database/test.spec.d.ts +1 -0
  113. package/lib/test/database/test.spec.js +74 -0
  114. package/lib/test/database/test.spec.js.map +1 -0
  115. package/lib/test/helpers/PhoneNumber.spec.d.ts +1 -0
  116. package/lib/test/helpers/PhoneNumber.spec.js +82 -0
  117. package/lib/test/helpers/PhoneNumber.spec.js.map +1 -0
  118. package/lib/test/logger/test.spec.d.ts +1 -0
  119. package/lib/test/logger/test.spec.js +37 -0
  120. package/lib/test/logger/test.spec.js.map +1 -0
  121. package/lib/test/types/context.entity.test.d.ts +1 -0
  122. package/lib/test/types/context.entity.test.js +29 -0
  123. package/lib/test/types/context.entity.test.js.map +1 -0
  124. package/lib/translations/index.d.ts +7 -0
  125. package/lib/translations/index.js +52 -0
  126. package/lib/translations/index.js.map +1 -0
  127. package/lib/tsconfig.tsbuildinfo +1 -0
  128. package/lib/types/broker.entity.d.ts +15 -0
  129. package/lib/types/broker.entity.js +13 -0
  130. package/lib/types/broker.entity.js.map +1 -0
  131. package/lib/types/client.entity.d.ts +42 -0
  132. package/lib/types/client.entity.js +16 -0
  133. package/lib/types/client.entity.js.map +1 -0
  134. package/lib/types/context.entity.d.ts +43 -0
  135. package/lib/types/context.entity.js +105 -0
  136. package/lib/types/context.entity.js.map +1 -0
  137. package/lib/types/index.d.ts +82 -0
  138. package/lib/types/index.js +38 -0
  139. package/lib/types/index.js.map +1 -0
  140. package/lib/types/user.entity.d.ts +28 -0
  141. package/lib/types/user.entity.js +18 -0
  142. package/lib/types/user.entity.js.map +1 -0
  143. package/package.json +52 -0
  144. package/readme.md +66 -0
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KafkaJS = void 0;
13
+ const kafkajs_1 = require("kafkajs");
14
+ const logger_1 = require("../logger/logger");
15
+ class KafkaJS {
16
+ constructor(options) {
17
+ this.connection = null;
18
+ this.retryCountBeforeExit = 10;
19
+ this.admin = null;
20
+ this.connection = null;
21
+ this.init(options || {});
22
+ }
23
+ /**
24
+ *
25
+ * @param {Object} options
26
+ * @param {string} options.url
27
+ * @param {number} options.retryCountBeforeExit
28
+ * @param {number} options.heartbeat
29
+ * @return {Promise<null|*|undefined>}
30
+ */
31
+ init(options) {
32
+ options.url = options.url || process.env.KAFKA_CLUSTER_URL;
33
+ options.name = options.name || process.env.APP_NAME;
34
+ options.connectionTimeout = options.connectionTimeout || parseInt(process.env.KAFKA_CONNECTION_TIMEOUT) || 3000;
35
+ options.requestTimeout = options.requestTimeout || parseInt(process.env.KAFKA_REQUEST_TIMEOUT) || 25000;
36
+ options.logLevel = options.logLevel === 0 ? options.logLevel : parseInt(process.env.KAFKA_LOG_LEVEL) || kafkajs_1.logLevel.ERROR;
37
+ options.saslUsername = options.saslUsername || process.env.KAFKA_SASL_USERNAME;
38
+ options.saslPassword = options.saslPassword || process.env.KAFKA_SASL_PASSWORD;
39
+ options.saslMechanism = options.saslMechanism || "plain";
40
+ try {
41
+ if (!options.url)
42
+ throw Error("KAFKA URL is required");
43
+ //We are splitting the URL because of clusters
44
+ const kafkaConfig = {
45
+ clientId: options.name,
46
+ brokers: options.url.split(","),
47
+ connectionTimeout: options.connectionTimeout,
48
+ requestTimeout: options.requestTimeout,
49
+ logLevel: options.logLevel,
50
+ retry: {
51
+ initialRetryTime: options.initialRetryTime || 100,
52
+ retries: options.retries || 10,
53
+ }
54
+ };
55
+ if (options.saslMechanism && options.saslPassword) {
56
+ kafkaConfig.ssl = true;
57
+ kafkaConfig.sasl = {
58
+ mechanism: options.saslMechanism, // scram-sha-256 or scram-sha-512
59
+ username: options.saslUsername,
60
+ password: options.saslPassword
61
+ };
62
+ }
63
+ this.connection = new kafkajs_1.Kafka(kafkaConfig);
64
+ return this.connection;
65
+ }
66
+ catch (e) {
67
+ if (!this.retryCountBeforeExit) {
68
+ console.log("Exiting....");
69
+ process.exit(1);
70
+ }
71
+ this.retryCountBeforeExit -= 1;
72
+ console.log("retryCountBeforeExit", this.retryCountBeforeExit);
73
+ console.log("Reconnecting Kafka", e);
74
+ return this.init(options);
75
+ }
76
+ }
77
+ /**
78
+ * @typedef {object} Topic
79
+ * @property {string} name
80
+ * @property {number} numberOfPartitions
81
+ * @property {number} replicationFactor
82
+ * @property {string} retentionPolicy
83
+ * @property {string} cleanUpPolicy
84
+ *
85
+ */
86
+ /**
87
+ *
88
+ * @param {Topic[]} topics
89
+ * @return {Promise<{error: string}|{data: boolean}|{error}>}
90
+ */
91
+ createTopics(topics) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ if (!this.connection)
94
+ throw Error("Connection has not been initialized. Call the init function first");
95
+ try {
96
+ const admin = this.connection.admin();
97
+ yield admin.connect();
98
+ if (!Array.isArray(topics)) {
99
+ topics = [topics];
100
+ }
101
+ const kafkaTopics = [];
102
+ for (let topic of topics) {
103
+ if (!topic.name || topic.name.trim() === "")
104
+ return { error: "KafkaJS: Topic Name Cannot Be Empty" };
105
+ kafkaTopics.push({
106
+ topic: topic.name,
107
+ numPartitions: topic.numberOfPartitions || 1,
108
+ replicationFactor: topic.replicationFactor || 1,
109
+ configEntries: [{
110
+ name: 'cleanup.policy',
111
+ value: topic.cleanUpPolicy || 'compact'
112
+ }, {
113
+ name: "retention.ms",
114
+ value: topic.retentionPolicy || "-1"
115
+ }]
116
+ });
117
+ }
118
+ const response = yield admin.createTopics({
119
+ topics: kafkaTopics,
120
+ });
121
+ console.log("Kafka: Topics Created", response);
122
+ return { data: true };
123
+ }
124
+ catch (e) {
125
+ console.error(e);
126
+ return { error: e.message };
127
+ }
128
+ });
129
+ }
130
+ createProducer() {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ if (!this.connection)
133
+ throw Error("Connection has not been made. Call the init function first");
134
+ try {
135
+ this.producer = this.connection.producer();
136
+ yield this.producer.connect();
137
+ return { data: this.producer };
138
+ }
139
+ catch (e) {
140
+ console.error(e);
141
+ return { error: e.message };
142
+ }
143
+ });
144
+ }
145
+ /**
146
+ *
147
+ * @param {string} topic
148
+ * @param {string} key
149
+ * @param {any} payload
150
+ * @return Promise<*>
151
+ */
152
+ publish(topic, key, payload) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ try {
155
+ key = key || topic;
156
+ return {
157
+ data: yield this.producer.send({
158
+ topic,
159
+ messages: [{ value: JSON.stringify(payload), key }]
160
+ })
161
+ };
162
+ }
163
+ catch (e) {
164
+ console.error(e);
165
+ return { error: e.message };
166
+ }
167
+ });
168
+ }
169
+ /**
170
+ *
171
+ * @param {string[]} topics
172
+ * @param {string} groupId
173
+ * @param {function} callback
174
+ * @param fromBeginning
175
+ * @param {number} prefetch
176
+ * @return {null}
177
+ */
178
+ listen(topics_1, groupId_1, callback_1) {
179
+ return __awaiter(this, arguments, void 0, function* (topics, groupId, callback, fromBeginning = false, prefetch = 1) {
180
+ try {
181
+ if (typeof callback != "function")
182
+ throw new Error("Callback must be a function");
183
+ this.consumer = this.connection.consumer({ groupId });
184
+ yield this.consumer.connect();
185
+ for (let topic of topics) {
186
+ yield this.consumer.subscribe({ topic, fromBeginning });
187
+ }
188
+ yield this.consumer.run({
189
+ partitionsConsumedConcurrently: prefetch,
190
+ eachMessage: (_a) => __awaiter(this, [_a], void 0, function* ({ topic, partition, message }) {
191
+ var _b, _c;
192
+ try {
193
+ logger_1.logger.out({
194
+ topic,
195
+ partition,
196
+ key: (_b = message === null || message === void 0 ? void 0 : message.key) === null || _b === void 0 ? void 0 : _b.toString(),
197
+ value: message.value.toString(),
198
+ headers: message.headers,
199
+ });
200
+ return callback(null, message.value.toString(), {
201
+ topic,
202
+ partition,
203
+ key: (_c = message === null || message === void 0 ? void 0 : message.key) === null || _c === void 0 ? void 0 : _c.toString(),
204
+ value: message.value.toString(),
205
+ headers: message.headers,
206
+ });
207
+ }
208
+ catch (e) {
209
+ console.log("Kafka consumer error", e);
210
+ this.consumer.pause([{ topic }]);
211
+ setTimeout(() => this.consumer.resume([{ topic }]), (e.retryAfter || 50) * 1000);
212
+ return callback(e.message);
213
+ }
214
+ }),
215
+ });
216
+ }
217
+ catch (e) {
218
+ callback(e.message);
219
+ }
220
+ });
221
+ }
222
+ listenInBatch(topics_1, groupId_1, callback_1) {
223
+ return __awaiter(this, arguments, void 0, function* (topics, groupId, callback, options = {
224
+ fromBeginning: false,
225
+ prefetch: 1
226
+ }) {
227
+ try {
228
+ if (typeof callback != "function")
229
+ throw new Error("Callback must be a function");
230
+ this.consumer = this.connection.consumer({ groupId });
231
+ yield this.consumer.connect();
232
+ for (let topic of topics) {
233
+ yield this.consumer.subscribe({ topic, fromBeginning: options.fromBeginning });
234
+ }
235
+ yield this.consumer.run({
236
+ eachBatchAutoResolve: options.eachBatchAutoResolve || true,
237
+ partitionsConsumedConcurrently: options.prefetch,
238
+ eachBatch: (batchPayload) => __awaiter(this, void 0, void 0, function* () {
239
+ yield callback(null, batchPayload.batch.messages.map(message => { var _a; return (_a = message === null || message === void 0 ? void 0 : message.value) === null || _a === void 0 ? void 0 : _a.toString(); }).filter(Boolean), batchPayload);
240
+ yield batchPayload.heartbeat();
241
+ }),
242
+ });
243
+ }
244
+ catch (e) {
245
+ callback(e.message);
246
+ }
247
+ });
248
+ }
249
+ close() {
250
+ setTimeout(() => {
251
+ if (this.connection) {
252
+ console.log("Closing Kafka Connection");
253
+ try {
254
+ return this.connection.close();
255
+ }
256
+ catch (alreadyClosed) {
257
+ console.log(alreadyClosed.stackAtStateChange);
258
+ }
259
+ }
260
+ return null;
261
+ }, 5000);
262
+ }
263
+ }
264
+ exports.KafkaJS = KafkaJS;
265
+ //# sourceMappingURL=kafka.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../src/brokers/kafka.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const kafka_1 = require("./kafka");
13
+ const kafkajs_1 = require("kafkajs");
14
+ try {
15
+ const kafkaInit = {
16
+ url: "pkc-6ojv2.us-west4.gcp.confluent.cloud:9092",
17
+ name: "my-app",
18
+ logLevel: kafkajs_1.logLevel.DEBUG,
19
+ saslUsername: "RFYODITNTCAMOUHA",
20
+ saslPassword: "+2RHsqskk/7iEQEi93b5J3o8pJbCPQE0/NO73ePDN6IYZdYQI24O4qSOKtRfETqn",
21
+ saslMechanism: "plain"
22
+ };
23
+ const kafka = new kafka_1.KafkaJS(kafkaInit);
24
+ // async function produce() {
25
+ // const admin = kafka.admin()
26
+ // await admin.connect();
27
+ // // const topics =
28
+ // await admin.createTopics({
29
+ // waitForLeaders: true,
30
+ // topics: [
31
+ // {
32
+ // topic: 'user.created.test.1',
33
+ // numPartitions: 1,
34
+ // replicationFactor:3,
35
+ // configEntries: [{
36
+ // name: 'cleanup.policy',
37
+ // value: 'delete'
38
+ // }, {
39
+ // name: "retention.ms",
40
+ // value: "10000"
41
+ // }]
42
+ // },
43
+ // ],
44
+ // })
45
+ // const producer = kafka.producer()
46
+ //
47
+ // await producer.connect()
48
+ //
49
+ // for (let i = 0; i < 10; i++) {
50
+ // const res = await producer.send({
51
+ // topic: 'user.created',
52
+ // messages: [
53
+ // {value: 'Hello KafkaJS user! ' + (i + 10), key: "users"},
54
+ // ],
55
+ // });
56
+ //
57
+ // console.log(res, i)
58
+ //
59
+ // }
60
+ //
61
+ // await producer.disconnect()
62
+ // }
63
+ function consume() {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ try {
66
+ console.log("init kafka");
67
+ yield kafka.init(kafkaInit);
68
+ console.log("init kafka listener");
69
+ yield kafka.listen(["request.logs"], "my-app", (...args) => {
70
+ console.log("Incoming Arg", JSON.stringify(args));
71
+ }, true);
72
+ }
73
+ catch (e) {
74
+ }
75
+ // const consumer = kafka.consumer({groupId: 'my-group-2'})
76
+ // await consumer.connect()
77
+ //
78
+ // await consumer.subscribe({topic: 'user.created', fromBeginning: true})
79
+ //
80
+ // await consumer.run({
81
+ // eachMessage: async ({topic, partition, message}) => {
82
+ // console.log({
83
+ // h: "here",
84
+ // topic,
85
+ // partition,
86
+ // key: message.key.toString(),
87
+ // value: message.value.toString(),
88
+ // headers: message.headers,
89
+ // })
90
+ // },
91
+ // })
92
+ });
93
+ }
94
+ function consumeBatch() {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ try {
97
+ console.log("init kafka listener");
98
+ yield kafka.listenInBatch(["request.logs"], "test-my-app", (error, messages, batchPayload) => {
99
+ console.log("Incoming Arg", error, messages.length, batchPayload.batch.topic);
100
+ console.log("Incoming Arg len", batchPayload.batch.messages.length);
101
+ }, {
102
+ fromBeginning: false,
103
+ prefetch: 100
104
+ });
105
+ }
106
+ catch (e) {
107
+ console.log("Error", e);
108
+ }
109
+ });
110
+ }
111
+ // produce();
112
+ consume();
113
+ // consumeBatch();
114
+ }
115
+ catch (e) {
116
+ console.log("e", e);
117
+ }
118
+ //# sourceMappingURL=kafka.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kafka.test.js","sourceRoot":"","sources":["../../src/brokers/kafka.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { BrokerDeadLetterPayloadEntity, BrokerRetryEntity } from "../types";
2
+ import { IAmqpConnectionManager } from "amqp-connection-manager/dist/types/AmqpConnectionManager";
3
+ export type RabbitMQInit = {
4
+ url?: string;
5
+ heartbeat?: number;
6
+ retryCountBeforeExit?: number;
7
+ [x: string]: any;
8
+ };
9
+ export declare class RabbitMQ {
10
+ private channel;
11
+ private connection;
12
+ private retryCountBeforeExit;
13
+ constructor(options?: RabbitMQInit);
14
+ /**
15
+ *
16
+ * @param {Object} options
17
+ * @param {string} options.url
18
+ * @param {number} options.retryCountBeforeExit
19
+ * @param {number} options.heartbeat
20
+ * @return {Promise<null|*|undefined>}
21
+ */
22
+ init(options?: RabbitMQInit): Promise<IAmqpConnectionManager>;
23
+ createChannel(callback: any): Promise<{
24
+ data: any;
25
+ error?: undefined;
26
+ } | {
27
+ error: any;
28
+ data?: undefined;
29
+ }>;
30
+ /**
31
+ *
32
+ * @param {string} queueName
33
+ * @param {Object} options
34
+ * @return {Promise<null|{data: (Promise<*>|{durable: (boolean|*), ticket: number, autoDelete, exclusive, arguments: any, passive: boolean, queue: *, nowait: boolean})}|{error: *}>}
35
+ */
36
+ createQueue(queueName: string | string[], options?: any): Promise<{
37
+ data: boolean;
38
+ error?: undefined;
39
+ } | {
40
+ error: any;
41
+ data?: undefined;
42
+ }>;
43
+ sendToQueue(channelName: string, payload: any, options?: {
44
+ persistent: boolean;
45
+ }): Promise<{
46
+ data: any;
47
+ error?: undefined;
48
+ } | {
49
+ error: any;
50
+ data?: undefined;
51
+ }>;
52
+ /**
53
+ *
54
+ * @param {string} exchangeName
55
+ * @param {string} exchangeType (fanout, direct, topic)
56
+ * @param {Object} option
57
+ * @return {Promise<{error: *}|{data: ({data}|{error: *})}>}
58
+ */
59
+ assertExchange(exchangeName: string, exchangeType?: string, option?: any): Promise<{
60
+ data: any;
61
+ error?: undefined;
62
+ } | {
63
+ error: any;
64
+ data?: undefined;
65
+ }>;
66
+ /***
67
+ *
68
+ * @param {string} exchangeName
69
+ * @param {string} queueName
70
+ * @param {Object} queueOption
71
+ * @param {string} bindKey
72
+ * @return {Promise<{data: *}|{error: *}>}
73
+ */
74
+ assertQueue(exchangeName: string, queueName?: string, bindKey?: string, queueOption?: any): Promise<{
75
+ data: any;
76
+ error?: undefined;
77
+ } | {
78
+ error: any;
79
+ data?: undefined;
80
+ }>;
81
+ /**
82
+ *
83
+ * @param {string} exchangeName
84
+ * @param {string} routeKey
85
+ * @param {string} payload
86
+ * @return Promise<*>
87
+ */
88
+ publishToExchange(exchangeName: string, routeKey: string | undefined, payload: any): Promise<{
89
+ data: any;
90
+ error?: undefined;
91
+ } | {
92
+ error: any;
93
+ data?: undefined;
94
+ }>;
95
+ /**
96
+ *
97
+ * @param {string} channelName
98
+ * @param {Object} options
99
+ * @param {function} callback
100
+ * @param {number} prefetch
101
+ * @return {null}
102
+ */
103
+ listen(channelName: string, options: any, callback: any): Promise<void>;
104
+ sendToDeadLetter(deadLetterEntity: BrokerDeadLetterPayloadEntity): Promise<void>;
105
+ sendToRetry(retryEntity: BrokerRetryEntity): Promise<void>;
106
+ requeueDeadLetter(deadLetterQueueName: string, queueOptions?: any): Promise<void>;
107
+ close(): void;
108
+ }