@6thbridge/utils 0.3.9-0 → 1.0.1
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/lib/data/rabbitmq/index.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/logger/logger.js.map +1 -1
- package/lib/middlewares/common.d.ts +17 -0
- package/lib/middlewares/common.js +142 -5
- package/lib/middlewares/common.js.map +1 -1
- package/lib/middlewares/express.js +4 -3
- package/lib/middlewares/express.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/authentication.entity.d.ts +30 -0
- package/lib/types/authentication.entity.js +10 -0
- package/lib/types/authentication.entity.js.map +1 -0
- package/lib/types/context.entity.d.ts +8 -14
- package/lib/types/context.entity.js +38 -36
- package/lib/types/context.entity.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +347 -47
- package/lib/brokers/index.d.ts +0 -5
- package/lib/brokers/index.js +0 -6
- package/lib/brokers/index.js.map +0 -1
- package/lib/brokers/rabbitmq.d.ts +0 -205
- package/lib/brokers/rabbitmq.js +0 -393
- package/lib/brokers/rabbitmq.js.map +0 -1
package/lib/brokers/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/brokers/index.ts"],"names":[],"mappings":";;;AAAA,yCAAkD;AAM3B,yFANf,mBAAQ,OAMe"}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { BrokerDeadLetterPayloadEntity, BrokerRetryEntity } from '../types';
|
|
2
|
-
import { IAmqpConnectionManager } from 'amqp-connection-manager/dist/types/AmqpConnectionManager';
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated
|
|
5
|
-
*/
|
|
6
|
-
export type RabbitMQInit = {
|
|
7
|
-
url?: string;
|
|
8
|
-
heartbeat?: number;
|
|
9
|
-
retryCountBeforeExit?: number;
|
|
10
|
-
[x: string]: any;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* @deprecated
|
|
14
|
-
*/
|
|
15
|
-
export declare class RabbitMQ {
|
|
16
|
-
private static instance;
|
|
17
|
-
private channel;
|
|
18
|
-
private connection;
|
|
19
|
-
private retryCountBeforeExit;
|
|
20
|
-
private constructor();
|
|
21
|
-
/**
|
|
22
|
-
* Get the singleton instance of RabbitMQ
|
|
23
|
-
* @returns {RabbitMQ} The singleton instance
|
|
24
|
-
*/
|
|
25
|
-
static getInstance(): RabbitMQ;
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
* @param {Object} options
|
|
29
|
-
* @param {string} options.url
|
|
30
|
-
* @param {number} options.retryCountBeforeExit
|
|
31
|
-
* @param {number} options.heartbeat
|
|
32
|
-
* @return {Promise<null|*|undefined>}
|
|
33
|
-
*/
|
|
34
|
-
static init(options?: RabbitMQInit): Promise<IAmqpConnectionManager>;
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
* @param {Object} options
|
|
38
|
-
* @param {string} options.url
|
|
39
|
-
* @param {number} options.retryCountBeforeExit
|
|
40
|
-
* @param {number} options.heartbeat
|
|
41
|
-
* @return {Promise<null|*|undefined>}
|
|
42
|
-
*/
|
|
43
|
-
init(options?: RabbitMQInit): Promise<IAmqpConnectionManager>;
|
|
44
|
-
/**
|
|
45
|
-
* Static version of createChannel
|
|
46
|
-
*/
|
|
47
|
-
static createChannel(callback: any): Promise<{
|
|
48
|
-
data: any;
|
|
49
|
-
error?: undefined;
|
|
50
|
-
} | {
|
|
51
|
-
error: any;
|
|
52
|
-
data?: undefined;
|
|
53
|
-
}>;
|
|
54
|
-
createChannel(callback: any): Promise<{
|
|
55
|
-
data: any;
|
|
56
|
-
error?: undefined;
|
|
57
|
-
} | {
|
|
58
|
-
error: any;
|
|
59
|
-
data?: undefined;
|
|
60
|
-
}>;
|
|
61
|
-
/**
|
|
62
|
-
* Static version of createQueue
|
|
63
|
-
*/
|
|
64
|
-
static createQueue(queueName: string | string[], options?: any): Promise<{
|
|
65
|
-
data: boolean;
|
|
66
|
-
error?: undefined;
|
|
67
|
-
} | {
|
|
68
|
-
error: any;
|
|
69
|
-
data?: undefined;
|
|
70
|
-
}>;
|
|
71
|
-
createQueue(queueName: string | string[], options?: any): Promise<{
|
|
72
|
-
data: boolean;
|
|
73
|
-
error?: undefined;
|
|
74
|
-
} | {
|
|
75
|
-
error: any;
|
|
76
|
-
data?: undefined;
|
|
77
|
-
}>;
|
|
78
|
-
/**
|
|
79
|
-
* Static version of sendToQueue
|
|
80
|
-
*/
|
|
81
|
-
static sendToQueue(channelName: string, payload: any, options?: {
|
|
82
|
-
persistent: boolean;
|
|
83
|
-
}): Promise<{
|
|
84
|
-
data: any;
|
|
85
|
-
error?: undefined;
|
|
86
|
-
} | {
|
|
87
|
-
error: any;
|
|
88
|
-
data?: undefined;
|
|
89
|
-
}>;
|
|
90
|
-
sendToQueue(channelName: string, payload: any, options?: {
|
|
91
|
-
persistent: boolean;
|
|
92
|
-
}): Promise<{
|
|
93
|
-
data: any;
|
|
94
|
-
error?: undefined;
|
|
95
|
-
} | {
|
|
96
|
-
error: any;
|
|
97
|
-
data?: undefined;
|
|
98
|
-
}>;
|
|
99
|
-
/**
|
|
100
|
-
* Static version of assertExchange
|
|
101
|
-
*/
|
|
102
|
-
static assertExchange(exchangeName: string, exchangeType?: string, option?: any): Promise<{
|
|
103
|
-
data: any;
|
|
104
|
-
error?: undefined;
|
|
105
|
-
} | {
|
|
106
|
-
error: any;
|
|
107
|
-
data?: undefined;
|
|
108
|
-
}>;
|
|
109
|
-
/**
|
|
110
|
-
*
|
|
111
|
-
* @param {string} exchangeName
|
|
112
|
-
* @param {string} exchangeType (fanout, direct, topic)
|
|
113
|
-
* @param {Object} option
|
|
114
|
-
* @return {Promise<{error: *}|{data: ({data}|{error: *})}>}
|
|
115
|
-
*/
|
|
116
|
-
assertExchange(exchangeName: string, exchangeType?: string, option?: any): Promise<{
|
|
117
|
-
data: any;
|
|
118
|
-
error?: undefined;
|
|
119
|
-
} | {
|
|
120
|
-
error: any;
|
|
121
|
-
data?: undefined;
|
|
122
|
-
}>;
|
|
123
|
-
/**
|
|
124
|
-
* Static version of assertQueue
|
|
125
|
-
*/
|
|
126
|
-
static assertQueue(exchangeName: string, queueName?: string, bindKey?: string, queueOption?: any): Promise<{
|
|
127
|
-
data: any;
|
|
128
|
-
error?: undefined;
|
|
129
|
-
} | {
|
|
130
|
-
error: any;
|
|
131
|
-
data?: undefined;
|
|
132
|
-
}>;
|
|
133
|
-
/***
|
|
134
|
-
*
|
|
135
|
-
* @param {string} exchangeName
|
|
136
|
-
* @param {string} queueName
|
|
137
|
-
* @param {Object} queueOption
|
|
138
|
-
* @param {string} bindKey
|
|
139
|
-
* @return {Promise<{data: *}|{error: *}>}
|
|
140
|
-
*/
|
|
141
|
-
assertQueue(exchangeName: string, queueName?: string, bindKey?: string, queueOption?: any): Promise<{
|
|
142
|
-
data: any;
|
|
143
|
-
error?: undefined;
|
|
144
|
-
} | {
|
|
145
|
-
error: any;
|
|
146
|
-
data?: undefined;
|
|
147
|
-
}>;
|
|
148
|
-
/**
|
|
149
|
-
* Static version of publishToExchange
|
|
150
|
-
*/
|
|
151
|
-
static publishToExchange(exchangeName: string, routeKey: string | undefined, payload: any): Promise<{
|
|
152
|
-
data: any;
|
|
153
|
-
error?: undefined;
|
|
154
|
-
} | {
|
|
155
|
-
error: any;
|
|
156
|
-
data?: undefined;
|
|
157
|
-
}>;
|
|
158
|
-
/**
|
|
159
|
-
*
|
|
160
|
-
* @param {string} exchangeName
|
|
161
|
-
* @param {string} routeKey
|
|
162
|
-
* @param {string} payload
|
|
163
|
-
* @return Promise<*>
|
|
164
|
-
*/
|
|
165
|
-
publishToExchange(exchangeName: string, routeKey: string | undefined, payload: any): Promise<{
|
|
166
|
-
data: any;
|
|
167
|
-
error?: undefined;
|
|
168
|
-
} | {
|
|
169
|
-
error: any;
|
|
170
|
-
data?: undefined;
|
|
171
|
-
}>;
|
|
172
|
-
/**
|
|
173
|
-
* Static version of listen
|
|
174
|
-
*/
|
|
175
|
-
static listen(channelName: string, options: any, callback: any): Promise<void>;
|
|
176
|
-
/**
|
|
177
|
-
*
|
|
178
|
-
* @param {string} channelName
|
|
179
|
-
* @param {Object} options
|
|
180
|
-
* @param {function} callback
|
|
181
|
-
* @param {number} prefetch
|
|
182
|
-
* @return {null}
|
|
183
|
-
*/
|
|
184
|
-
listen(channelName: string, options: any, callback: any): Promise<void>;
|
|
185
|
-
/**
|
|
186
|
-
* Static version of sendToDeadLetter
|
|
187
|
-
*/
|
|
188
|
-
static sendToDeadLetter(deadLetterEntity: BrokerDeadLetterPayloadEntity): Promise<void>;
|
|
189
|
-
sendToDeadLetter(deadLetterEntity: BrokerDeadLetterPayloadEntity): Promise<void>;
|
|
190
|
-
/**
|
|
191
|
-
* Static version of sendToRetry
|
|
192
|
-
*/
|
|
193
|
-
static sendToRetry(retryEntity: BrokerRetryEntity): Promise<void>;
|
|
194
|
-
sendToRetry(retryEntity: BrokerRetryEntity): Promise<void>;
|
|
195
|
-
/**
|
|
196
|
-
* Static version of requeueDeadLetter
|
|
197
|
-
*/
|
|
198
|
-
static requeueDeadLetter(deadLetterQueueName: string, queueOptions?: any): Promise<void>;
|
|
199
|
-
requeueDeadLetter(deadLetterQueueName: string, queueOptions?: any): Promise<void>;
|
|
200
|
-
/**
|
|
201
|
-
* Static version of close
|
|
202
|
-
*/
|
|
203
|
-
static close(): void;
|
|
204
|
-
close(): void;
|
|
205
|
-
}
|
package/lib/brokers/rabbitmq.js
DELETED
|
@@ -1,393 +0,0 @@
|
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.RabbitMQ = void 0;
|
|
16
|
-
const amqp_connection_manager_1 = __importDefault(require("amqp-connection-manager"));
|
|
17
|
-
const logger_1 = require("../logger/logger");
|
|
18
|
-
const types_1 = require("../types");
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated
|
|
21
|
-
*/
|
|
22
|
-
class RabbitMQ {
|
|
23
|
-
constructor() {
|
|
24
|
-
this.channel = null;
|
|
25
|
-
this.retryCountBeforeExit = 10;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Get the singleton instance of RabbitMQ
|
|
29
|
-
* @returns {RabbitMQ} The singleton instance
|
|
30
|
-
*/
|
|
31
|
-
static getInstance() {
|
|
32
|
-
if (!RabbitMQ.instance) {
|
|
33
|
-
RabbitMQ.instance = new RabbitMQ();
|
|
34
|
-
}
|
|
35
|
-
return RabbitMQ.instance;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
* @param {Object} options
|
|
40
|
-
* @param {string} options.url
|
|
41
|
-
* @param {number} options.retryCountBeforeExit
|
|
42
|
-
* @param {number} options.heartbeat
|
|
43
|
-
* @return {Promise<null|*|undefined>}
|
|
44
|
-
*/
|
|
45
|
-
static init(options) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
return RabbitMQ.getInstance().init(options);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
*
|
|
52
|
-
* @param {Object} options
|
|
53
|
-
* @param {string} options.url
|
|
54
|
-
* @param {number} options.retryCountBeforeExit
|
|
55
|
-
* @param {number} options.heartbeat
|
|
56
|
-
* @return {Promise<null|*|undefined>}
|
|
57
|
-
*/
|
|
58
|
-
init(options) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
try {
|
|
61
|
-
if (!options)
|
|
62
|
-
options = {};
|
|
63
|
-
options.url = options.url || process.env.RABBITMQ_CLUSTER_URL || process.env.RABBITMQ_URL;
|
|
64
|
-
options.heartbeat = options.heartbeat || 5;
|
|
65
|
-
if (!options.url)
|
|
66
|
-
throw Error('RabbitMQ URL is required');
|
|
67
|
-
//We are splitting the URL because of clusters
|
|
68
|
-
const urlArray = options.url.split(',');
|
|
69
|
-
this.connection = amqp_connection_manager_1.default.connect(urlArray, {
|
|
70
|
-
heartbeatIntervalInSeconds: options.heartbeat,
|
|
71
|
-
});
|
|
72
|
-
return this.connection;
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
76
|
-
if (!this.retryCountBeforeExit) {
|
|
77
|
-
console.log('Exiting....');
|
|
78
|
-
process.exit(1);
|
|
79
|
-
}
|
|
80
|
-
this.retryCountBeforeExit -= 1;
|
|
81
|
-
console.log('retryCountBeforeExit', this.retryCountBeforeExit);
|
|
82
|
-
console.log('Reconnecting RabbitMQ', e);
|
|
83
|
-
return this.init(options);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Static version of createChannel
|
|
89
|
-
*/
|
|
90
|
-
static createChannel(callback) {
|
|
91
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
return RabbitMQ.getInstance().createChannel(callback);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
createChannel(callback) {
|
|
96
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
-
if (!this.connection)
|
|
98
|
-
throw Error('Connection has not been made. Call the init function first');
|
|
99
|
-
try {
|
|
100
|
-
const options = {
|
|
101
|
-
json: true,
|
|
102
|
-
};
|
|
103
|
-
if (typeof callback == 'function')
|
|
104
|
-
options.setup = callback;
|
|
105
|
-
this.channel = this.connection.createChannel(options);
|
|
106
|
-
return { data: this.channel };
|
|
107
|
-
}
|
|
108
|
-
catch (e) {
|
|
109
|
-
console.error(e);
|
|
110
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
111
|
-
return { error: e.message };
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Static version of createQueue
|
|
117
|
-
*/
|
|
118
|
-
static createQueue(queueName_1) {
|
|
119
|
-
return __awaiter(this, arguments, void 0, function* (queueName, options = {}) {
|
|
120
|
-
return RabbitMQ.getInstance().createQueue(queueName, options);
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
createQueue(queueName_1) {
|
|
124
|
-
return __awaiter(this, arguments, void 0, function* (queueName, options = {}) {
|
|
125
|
-
if (!this.connection)
|
|
126
|
-
throw Error('Connection has not been initialized. Call the init function first');
|
|
127
|
-
try {
|
|
128
|
-
if (!Array.isArray(queueName)) {
|
|
129
|
-
queueName = [queueName];
|
|
130
|
-
}
|
|
131
|
-
for (let name of queueName) {
|
|
132
|
-
if (!name || name.trim() == '')
|
|
133
|
-
return { error: 'Queue Name Cannot Be Empty' };
|
|
134
|
-
yield this.channel.assertQueue(name, options);
|
|
135
|
-
}
|
|
136
|
-
return { data: true };
|
|
137
|
-
}
|
|
138
|
-
catch (e) {
|
|
139
|
-
console.error(e);
|
|
140
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
141
|
-
return { error: e.message };
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Static version of sendToQueue
|
|
147
|
-
*/
|
|
148
|
-
static sendToQueue(channelName_1, payload_1) {
|
|
149
|
-
return __awaiter(this, arguments, void 0, function* (channelName, payload, options = { persistent: true }) {
|
|
150
|
-
return RabbitMQ.getInstance().sendToQueue(channelName, payload, options);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
sendToQueue(channelName_1, payload_1) {
|
|
154
|
-
return __awaiter(this, arguments, void 0, function* (channelName, payload, options = { persistent: true }) {
|
|
155
|
-
try {
|
|
156
|
-
if (!payload)
|
|
157
|
-
throw new Error('RabbitMQ: Empty Payload');
|
|
158
|
-
return { data: yield this.channel.sendToQueue(channelName, payload, options) };
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
console.error(e);
|
|
162
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
163
|
-
return { error: e.message };
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Static version of assertExchange
|
|
169
|
-
*/
|
|
170
|
-
static assertExchange(exchangeName_1) {
|
|
171
|
-
return __awaiter(this, arguments, void 0, function* (exchangeName, exchangeType = 'fanout', option = {}) {
|
|
172
|
-
return RabbitMQ.getInstance().assertExchange(exchangeName, exchangeType, option);
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
*
|
|
177
|
-
* @param {string} exchangeName
|
|
178
|
-
* @param {string} exchangeType (fanout, direct, topic)
|
|
179
|
-
* @param {Object} option
|
|
180
|
-
* @return {Promise<{error: *}|{data: ({data}|{error: *})}>}
|
|
181
|
-
*/
|
|
182
|
-
assertExchange(exchangeName_1) {
|
|
183
|
-
return __awaiter(this, arguments, void 0, function* (exchangeName, exchangeType = 'fanout', option = {}) {
|
|
184
|
-
try {
|
|
185
|
-
return { data: yield this.channel.assertExchange(exchangeName, exchangeType, option) };
|
|
186
|
-
}
|
|
187
|
-
catch (e) {
|
|
188
|
-
console.error(e);
|
|
189
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
190
|
-
return { error: e.message };
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Static version of assertQueue
|
|
196
|
-
*/
|
|
197
|
-
static assertQueue(exchangeName_1) {
|
|
198
|
-
return __awaiter(this, arguments, void 0, function* (exchangeName, queueName = '', bindKey = '', queueOption = {}) {
|
|
199
|
-
return RabbitMQ.getInstance().assertQueue(exchangeName, queueName, bindKey, queueOption);
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
/***
|
|
203
|
-
*
|
|
204
|
-
* @param {string} exchangeName
|
|
205
|
-
* @param {string} queueName
|
|
206
|
-
* @param {Object} queueOption
|
|
207
|
-
* @param {string} bindKey
|
|
208
|
-
* @return {Promise<{data: *}|{error: *}>}
|
|
209
|
-
*/
|
|
210
|
-
assertQueue(exchangeName_1) {
|
|
211
|
-
return __awaiter(this, arguments, void 0, function* (exchangeName, queueName = '', bindKey = '', queueOption = {}) {
|
|
212
|
-
try {
|
|
213
|
-
let queue = yield this.channel.assertQueue(queueName, queueOption);
|
|
214
|
-
return { data: yield this.channel.bindQueue(queue.queue, exchangeName, bindKey) };
|
|
215
|
-
}
|
|
216
|
-
catch (e) {
|
|
217
|
-
console.error(e);
|
|
218
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
219
|
-
return { error: e.message };
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Static version of publishToExchange
|
|
225
|
-
*/
|
|
226
|
-
static publishToExchange(exchangeName_1) {
|
|
227
|
-
return __awaiter(this, arguments, void 0, function* (exchangeName, routeKey = '', payload) {
|
|
228
|
-
return RabbitMQ.getInstance().publishToExchange(exchangeName, routeKey, payload);
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
*
|
|
233
|
-
* @param {string} exchangeName
|
|
234
|
-
* @param {string} routeKey
|
|
235
|
-
* @param {string} payload
|
|
236
|
-
* @return Promise<*>
|
|
237
|
-
*/
|
|
238
|
-
publishToExchange(exchangeName_1) {
|
|
239
|
-
return __awaiter(this, arguments, void 0, function* (exchangeName, routeKey = '', payload) {
|
|
240
|
-
try {
|
|
241
|
-
return { data: yield this.channel.publish(exchangeName, routeKey, payload) };
|
|
242
|
-
}
|
|
243
|
-
catch (e) {
|
|
244
|
-
console.error(e);
|
|
245
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
246
|
-
return { error: e.message };
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Static version of listen
|
|
252
|
-
*/
|
|
253
|
-
static listen(channelName_1) {
|
|
254
|
-
return __awaiter(this, arguments, void 0, function* (channelName, options = {}, callback) {
|
|
255
|
-
return RabbitMQ.getInstance().listen(channelName, options, callback);
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
*
|
|
260
|
-
* @param {string} channelName
|
|
261
|
-
* @param {Object} options
|
|
262
|
-
* @param {function} callback
|
|
263
|
-
* @param {number} prefetch
|
|
264
|
-
* @return {null}
|
|
265
|
-
*/
|
|
266
|
-
listen(channelName_1) {
|
|
267
|
-
return __awaiter(this, arguments, void 0, function* (channelName, options = {}, callback) {
|
|
268
|
-
try {
|
|
269
|
-
options.prefetch = options.prefetch || 1;
|
|
270
|
-
if (typeof callback != 'function')
|
|
271
|
-
throw new Error('Callback must be a function');
|
|
272
|
-
const channel = yield this.connection.createChannel({
|
|
273
|
-
setup: (channel) => {
|
|
274
|
-
return channel.prefetch(options.prefetch);
|
|
275
|
-
},
|
|
276
|
-
});
|
|
277
|
-
const context = new types_1.ContextEntity();
|
|
278
|
-
context.broker = this;
|
|
279
|
-
channel.consume(channelName, (payload) => {
|
|
280
|
-
logger_1.logger.out({
|
|
281
|
-
message: payload.content.toString(),
|
|
282
|
-
queue: channelName,
|
|
283
|
-
value: payload,
|
|
284
|
-
});
|
|
285
|
-
return callback(null, payload.content.toString(), {
|
|
286
|
-
queue: channelName,
|
|
287
|
-
value: payload,
|
|
288
|
-
channel,
|
|
289
|
-
ack: () => {
|
|
290
|
-
channel.ack(payload);
|
|
291
|
-
},
|
|
292
|
-
});
|
|
293
|
-
}, options);
|
|
294
|
-
}
|
|
295
|
-
catch (e) {
|
|
296
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
297
|
-
callback(e.message);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Static version of sendToDeadLetter
|
|
303
|
-
*/
|
|
304
|
-
static sendToDeadLetter(deadLetterEntity) {
|
|
305
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
306
|
-
return RabbitMQ.getInstance().sendToDeadLetter(deadLetterEntity);
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
sendToDeadLetter(deadLetterEntity) {
|
|
310
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
311
|
-
var _a;
|
|
312
|
-
deadLetterEntity.deadLetterQueue = deadLetterEntity.deadLetterQueue || 'dead.letter';
|
|
313
|
-
yield this.sendToQueue(deadLetterEntity.deadLetterQueue, {
|
|
314
|
-
queue: deadLetterEntity.queueName,
|
|
315
|
-
reason: ((_a = deadLetterEntity.error) === null || _a === void 0 ? void 0 : _a.message) || deadLetterEntity.error,
|
|
316
|
-
payload: deadLetterEntity.payload,
|
|
317
|
-
stack: deadLetterEntity.stack || new Error().stack,
|
|
318
|
-
});
|
|
319
|
-
logger_1.logger.out(`================ Pushed to Dead Letter Queue - ${deadLetterEntity.deadLetterQueue}===============`);
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Static version of sendToRetry
|
|
324
|
-
*/
|
|
325
|
-
static sendToRetry(retryEntity) {
|
|
326
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
327
|
-
return RabbitMQ.getInstance().sendToRetry(retryEntity);
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
sendToRetry(retryEntity) {
|
|
331
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
332
|
-
retryEntity.retryQueueName = retryEntity.retryQueueName || 'retry';
|
|
333
|
-
yield this.sendToQueue(retryEntity.retryQueueName, retryEntity);
|
|
334
|
-
logger_1.logger.out(`================ Pushed to Retry Queue - ${retryEntity.retryQueueName} ===============`);
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Static version of requeueDeadLetter
|
|
339
|
-
*/
|
|
340
|
-
static requeueDeadLetter(deadLetterQueueName_1) {
|
|
341
|
-
return __awaiter(this, arguments, void 0, function* (deadLetterQueueName, queueOptions = {}) {
|
|
342
|
-
return RabbitMQ.getInstance().requeueDeadLetter(deadLetterQueueName, queueOptions);
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
requeueDeadLetter(deadLetterQueueName_1) {
|
|
346
|
-
return __awaiter(this, arguments, void 0, function* (deadLetterQueueName, queueOptions = {}) {
|
|
347
|
-
yield this.listen(deadLetterQueueName, queueOptions, (error, message, args) => __awaiter(this, void 0, void 0, function* () {
|
|
348
|
-
if (error) {
|
|
349
|
-
console.log(`=================== Error from ${deadLetterQueueName} ==================`);
|
|
350
|
-
throw Error(error);
|
|
351
|
-
// return;
|
|
352
|
-
}
|
|
353
|
-
try {
|
|
354
|
-
console.log('================== Listening =====================');
|
|
355
|
-
let { queue, reason, payload } = JSON.parse(message);
|
|
356
|
-
console.log('Queue', queue, reason);
|
|
357
|
-
if (!queue)
|
|
358
|
-
return args.channel.ack(args.raw);
|
|
359
|
-
yield this.sendToQueue(queue, payload, { persistent: true });
|
|
360
|
-
return args.channel.ack(args.value);
|
|
361
|
-
}
|
|
362
|
-
catch (e) {
|
|
363
|
-
console.log(e, JSON.stringify(e));
|
|
364
|
-
logger_1.logger.exception(e, { tag: 'rabbitmq' });
|
|
365
|
-
yield this.sendToQueue(deadLetterQueueName, JSON.parse(message), { persistent: true });
|
|
366
|
-
return args.channel.ack(args.raw);
|
|
367
|
-
}
|
|
368
|
-
}));
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
/**
|
|
372
|
-
* Static version of close
|
|
373
|
-
*/
|
|
374
|
-
static close() {
|
|
375
|
-
return RabbitMQ.getInstance().close();
|
|
376
|
-
}
|
|
377
|
-
close() {
|
|
378
|
-
setTimeout(() => {
|
|
379
|
-
if (this.connection) {
|
|
380
|
-
console.log('Closing AMPQ Connection');
|
|
381
|
-
try {
|
|
382
|
-
return this.connection.close();
|
|
383
|
-
}
|
|
384
|
-
catch (alreadyClosed) {
|
|
385
|
-
console.log(alreadyClosed.stackAtStateChange);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
return null;
|
|
389
|
-
}, 5000);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
exports.RabbitMQ = RabbitMQ;
|
|
393
|
-
//# sourceMappingURL=rabbitmq.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rabbitmq.js","sourceRoot":"","sources":["../../src/brokers/rabbitmq.ts"],"names":[],"mappings":"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"}
|