amqp-connection-manager 3.6.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/dist/cjs/AmqpConnectionManager.js +34 -0
- package/dist/cjs/ChannelWrapper.js +148 -33
- package/dist/cjs/index.js +7 -2
- package/dist/esm/AmqpConnectionManager.d.ts +16 -2
- package/dist/esm/AmqpConnectionManager.js +35 -1
- package/dist/esm/AmqpConnectionManager.js.map +1 -1
- package/dist/esm/ChannelWrapper.d.ts +36 -6
- package/dist/esm/ChannelWrapper.js +148 -33
- package/dist/esm/ChannelWrapper.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +5 -6
package/README.md
CHANGED
|
@@ -2,13 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://npmjs.org/package/amqp-connection-manager)
|
|
4
4
|

|
|
5
|
-
[](https://coveralls.io/github/jwalton/node-amqp-connection-manager?branch=master)
|
|
6
5
|
[](https://github.com/semantic-release/semantic-release)
|
|
7
6
|
|
|
8
|
-
[](https://david-dm.org/jwalton/node-amqp-connection-manager)
|
|
9
|
-
[](https://david-dm.org/jwalton/node-amqp-connection-manager#info=devDependencies)
|
|
10
|
-
[](https://david-dm.org/jwalton/node-amqp-connection-manager#info=peerDependencies)
|
|
11
|
-
|
|
12
7
|
Connection management for amqplib. This is a wrapper around [amqplib](http://www.squaremobius.net/amqp.node/) which provides automatic reconnects.
|
|
13
8
|
|
|
14
9
|
## Features
|
|
@@ -137,8 +132,10 @@ Options:
|
|
|
137
132
|
Note that `this` inside the setup function will the returned ChannelWrapper.
|
|
138
133
|
The ChannelWrapper has a special `context` member you can use to store
|
|
139
134
|
arbitrary data in.
|
|
140
|
-
- `options.json` if true, then ChannelWrapper assumes all messages passed to `publish()` and `sendToQueue()`
|
|
135
|
+
- `options.json` - if true, then ChannelWrapper assumes all messages passed to `publish()` and `sendToQueue()`
|
|
141
136
|
are plain JSON objects. These will be encoded automatically before being sent.
|
|
137
|
+
- `options.confirm` - if true (default), the created channel will be a ConfirmChannel
|
|
138
|
+
- `options.publishTimeout` - a default timeout for messages published to this channel.
|
|
142
139
|
|
|
143
140
|
### AmqpConnectionManager#isConnected()
|
|
144
141
|
|
|
@@ -183,6 +180,12 @@ callback) which resolves when the message is confirmed to have been delivered to
|
|
|
183
180
|
either the broker refuses the message, or if `close()` is called on the ChannelWrapper before the message can be
|
|
184
181
|
delivered.
|
|
185
182
|
|
|
183
|
+
Both of these functions take an additional option when passing options:
|
|
184
|
+
|
|
185
|
+
- `timeout` - If specified, if a messages is not acked by the amqp broker within the specified number of milliseconds,
|
|
186
|
+
the message will be rejected. Note that the message _may_ still end up getting delivered after the timeout, as we
|
|
187
|
+
have no way to cancel the in-flight request.
|
|
188
|
+
|
|
186
189
|
### ChannelWrapper#ack and ChannelWrapper#nack
|
|
187
190
|
|
|
188
191
|
These are just aliases for calling `ack()` and `nack()` on the underlying channel. They do nothing if the underlying
|
|
@@ -72,7 +72,41 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
72
72
|
// There will be one listener per channel, and there could be a lot of channels, so disable warnings from node.
|
|
73
73
|
this.setMaxListeners(0);
|
|
74
74
|
this._findServers = options.findServers || (() => Promise.resolve(urls));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Start the connect retries and await the first connect result. Even if the initial connect fails or timeouts, the
|
|
78
|
+
* reconnect attempts will continue in the background.
|
|
79
|
+
* @param [options={}] -
|
|
80
|
+
* @param [options.timeout] - Time to wait for initial connect
|
|
81
|
+
*/
|
|
82
|
+
async connect({ timeout } = {}) {
|
|
75
83
|
this._connect();
|
|
84
|
+
let reject;
|
|
85
|
+
const onDisconnect = ({ err }) => {
|
|
86
|
+
// Ignore disconnects caused by dead servers etc., but throw on operational errors like bad credentials.
|
|
87
|
+
if (err.isOperational) {
|
|
88
|
+
reject(err);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
try {
|
|
92
|
+
await Promise.race([
|
|
93
|
+
(0, events_1.once)(this, 'connect'),
|
|
94
|
+
new Promise((_resolve, innerReject) => {
|
|
95
|
+
reject = innerReject;
|
|
96
|
+
this.on('disconnect', onDisconnect);
|
|
97
|
+
}),
|
|
98
|
+
...(timeout
|
|
99
|
+
? [
|
|
100
|
+
(0, helpers_js_1.wait)(timeout).promise.then(() => {
|
|
101
|
+
throw new Error('amqp-connection-manager: connect timeout');
|
|
102
|
+
}),
|
|
103
|
+
]
|
|
104
|
+
: []),
|
|
105
|
+
]);
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
this.removeListener('disconnect', onDisconnect);
|
|
109
|
+
}
|
|
76
110
|
}
|
|
77
111
|
// `options` here are any options that can be passed to ChannelWrapper.
|
|
78
112
|
createChannel(options = {}) {
|
|
@@ -47,7 +47,7 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
47
47
|
*
|
|
48
48
|
*/
|
|
49
49
|
constructor(connectionManager, options = {}) {
|
|
50
|
-
var _a;
|
|
50
|
+
var _a, _b;
|
|
51
51
|
super();
|
|
52
52
|
/** If we're in the process of creating a channel, this is a Promise which
|
|
53
53
|
* will resolve when the channel is set up. Otherwise, this is `null`.
|
|
@@ -59,6 +59,10 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
59
59
|
this._unconfirmedMessages = [];
|
|
60
60
|
/** Consumers which will be reconnected on channel errors etc. */
|
|
61
61
|
this._consumers = [];
|
|
62
|
+
/**
|
|
63
|
+
* True to create a ConfirmChannel. False to create a regular Channel.
|
|
64
|
+
*/
|
|
65
|
+
this._confirm = true;
|
|
62
66
|
/**
|
|
63
67
|
* True if the "worker" is busy sending messages. False if we need to
|
|
64
68
|
* start the worker to get stuff done.
|
|
@@ -77,8 +81,10 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
77
81
|
this._onConnect = this._onConnect.bind(this);
|
|
78
82
|
this._onDisconnect = this._onDisconnect.bind(this);
|
|
79
83
|
this._connectionManager = connectionManager;
|
|
84
|
+
this._confirm = (_a = options.confirm) !== null && _a !== void 0 ? _a : true;
|
|
80
85
|
this.name = options.name;
|
|
81
|
-
this.
|
|
86
|
+
this._publishTimeout = options.publishTimeout;
|
|
87
|
+
this._json = (_b = options.json) !== null && _b !== void 0 ? _b : false;
|
|
82
88
|
// Array of setup functions to call.
|
|
83
89
|
this._setups = [];
|
|
84
90
|
this._consumers = [];
|
|
@@ -180,15 +186,17 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
180
186
|
*/
|
|
181
187
|
publish(exchange, routingKey, content, options, done) {
|
|
182
188
|
return promise_breaker_1.default.addCallback(done, new Promise((resolve, reject) => {
|
|
183
|
-
|
|
189
|
+
const { timeout, ...opts } = options || {};
|
|
190
|
+
this._enqueueMessage({
|
|
184
191
|
type: 'publish',
|
|
185
192
|
exchange,
|
|
186
193
|
routingKey,
|
|
187
|
-
content,
|
|
188
|
-
options,
|
|
194
|
+
content: this._getEncodedMessage(content),
|
|
189
195
|
resolve,
|
|
190
196
|
reject,
|
|
191
|
-
|
|
197
|
+
options: opts,
|
|
198
|
+
isTimedout: false,
|
|
199
|
+
}, timeout || this._publishTimeout);
|
|
192
200
|
this._startWorker();
|
|
193
201
|
}));
|
|
194
202
|
}
|
|
@@ -202,23 +210,51 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
202
210
|
* `message` here should be a JSON-able object.
|
|
203
211
|
*/
|
|
204
212
|
sendToQueue(queue, content, options, done) {
|
|
213
|
+
const encodedContent = this._getEncodedMessage(content);
|
|
205
214
|
return promise_breaker_1.default.addCallback(done, new Promise((resolve, reject) => {
|
|
206
|
-
|
|
215
|
+
const { timeout, ...opts } = options || {};
|
|
216
|
+
this._enqueueMessage({
|
|
207
217
|
type: 'sendToQueue',
|
|
208
218
|
queue,
|
|
209
|
-
content,
|
|
210
|
-
options,
|
|
219
|
+
content: encodedContent,
|
|
211
220
|
resolve,
|
|
212
221
|
reject,
|
|
213
|
-
|
|
214
|
-
|
|
222
|
+
options: opts,
|
|
223
|
+
isTimedout: false,
|
|
224
|
+
}, timeout || this._publishTimeout);
|
|
225
|
+
this._startWorker();
|
|
215
226
|
}));
|
|
216
227
|
}
|
|
228
|
+
_enqueueMessage(message, timeout) {
|
|
229
|
+
if (timeout) {
|
|
230
|
+
message.timeout = setTimeout(() => {
|
|
231
|
+
let idx = this._messages.indexOf(message);
|
|
232
|
+
if (idx !== -1) {
|
|
233
|
+
this._messages.splice(idx, 1);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
idx = this._unconfirmedMessages.indexOf(message);
|
|
237
|
+
if (idx !== -1) {
|
|
238
|
+
this._unconfirmedMessages.splice(idx, 1);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
message.isTimedout = true;
|
|
242
|
+
message.reject(new Error('timeout'));
|
|
243
|
+
}, timeout);
|
|
244
|
+
}
|
|
245
|
+
this._messages.push(message);
|
|
246
|
+
}
|
|
217
247
|
// Called whenever we connect to the broker.
|
|
218
248
|
async _onConnect({ connection }) {
|
|
219
249
|
this._irrecoverableCode = undefined;
|
|
220
250
|
try {
|
|
221
|
-
|
|
251
|
+
let channel;
|
|
252
|
+
if (this._confirm) {
|
|
253
|
+
channel = await connection.createConfirmChannel();
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
channel = await connection.createChannel();
|
|
257
|
+
}
|
|
222
258
|
this._channel = channel;
|
|
223
259
|
this._channelHasRoom = true;
|
|
224
260
|
channel.on('close', () => this._onChannelClose(channel));
|
|
@@ -287,11 +323,21 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
287
323
|
this._working = false;
|
|
288
324
|
if (this._messages.length !== 0) {
|
|
289
325
|
// Reject any unsent messages.
|
|
290
|
-
this._messages.forEach((message) =>
|
|
326
|
+
this._messages.forEach((message) => {
|
|
327
|
+
if (message.timeout) {
|
|
328
|
+
clearTimeout(message.timeout);
|
|
329
|
+
}
|
|
330
|
+
message.reject(new Error('Channel closed'));
|
|
331
|
+
});
|
|
291
332
|
}
|
|
292
333
|
if (this._unconfirmedMessages.length !== 0) {
|
|
293
334
|
// Reject any unconfirmed messages.
|
|
294
|
-
this._unconfirmedMessages.forEach((message) =>
|
|
335
|
+
this._unconfirmedMessages.forEach((message) => {
|
|
336
|
+
if (message.timeout) {
|
|
337
|
+
clearTimeout(message.timeout);
|
|
338
|
+
}
|
|
339
|
+
message.reject(new Error('Channel closed'));
|
|
340
|
+
});
|
|
295
341
|
}
|
|
296
342
|
this._connectionManager.removeListener('connect', this._onConnect);
|
|
297
343
|
this._connectionManager.removeListener('disconnect', this._onDisconnect);
|
|
@@ -373,31 +419,60 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
373
419
|
if (!message) {
|
|
374
420
|
break;
|
|
375
421
|
}
|
|
376
|
-
|
|
377
|
-
const encodedMessage = this._getEncodedMessage(message.content);
|
|
422
|
+
let thisCanSend = true;
|
|
378
423
|
switch (message.type) {
|
|
379
424
|
case 'publish': {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
425
|
+
if (this._confirm) {
|
|
426
|
+
this._unconfirmedMessages.push(message);
|
|
427
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options, (err) => {
|
|
428
|
+
if (message.isTimedout) {
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
if (message.timeout) {
|
|
432
|
+
clearTimeout(message.timeout);
|
|
433
|
+
}
|
|
434
|
+
if (err) {
|
|
435
|
+
this._messageRejected(message, err);
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
this._messageResolved(message, thisCanSend);
|
|
439
|
+
}
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
if (message.timeout) {
|
|
444
|
+
clearTimeout(message.timeout);
|
|
387
445
|
}
|
|
388
|
-
|
|
446
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options);
|
|
447
|
+
message.resolve(thisCanSend);
|
|
448
|
+
}
|
|
389
449
|
break;
|
|
390
450
|
}
|
|
391
451
|
case 'sendToQueue': {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
452
|
+
if (this._confirm) {
|
|
453
|
+
this._unconfirmedMessages.push(message);
|
|
454
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options, (err) => {
|
|
455
|
+
if (message.isTimedout) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
if (message.timeout) {
|
|
459
|
+
clearTimeout(message.timeout);
|
|
460
|
+
}
|
|
461
|
+
if (err) {
|
|
462
|
+
this._messageRejected(message, err);
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
this._messageResolved(message, thisCanSend);
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
if (message.timeout) {
|
|
471
|
+
clearTimeout(message.timeout);
|
|
396
472
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
});
|
|
473
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options);
|
|
474
|
+
message.resolve(thisCanSend);
|
|
475
|
+
}
|
|
401
476
|
break;
|
|
402
477
|
}
|
|
403
478
|
/* istanbul ignore next */
|
|
@@ -409,7 +484,9 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
409
484
|
if (this._channelHasRoom && this._messages.length > 0) {
|
|
410
485
|
setImmediate(() => this._publishQueuedMessages(workerNumber));
|
|
411
486
|
}
|
|
412
|
-
|
|
487
|
+
else {
|
|
488
|
+
this._working = false;
|
|
489
|
+
}
|
|
413
490
|
/* istanbul ignore next */
|
|
414
491
|
}
|
|
415
492
|
catch (err) {
|
|
@@ -551,6 +628,44 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
551
628
|
return { exchange };
|
|
552
629
|
}
|
|
553
630
|
}
|
|
631
|
+
/** Send a `bindExchange` to the underlying channel. */
|
|
632
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
633
|
+
async bindExchange(destination, source, pattern, args) {
|
|
634
|
+
if (this._channel) {
|
|
635
|
+
return await this._channel.bindExchange(destination, source, pattern, args);
|
|
636
|
+
}
|
|
637
|
+
else {
|
|
638
|
+
throw new Error(`Not connected.`);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
/** Send a `checkExchange` to the underlying channel. */
|
|
642
|
+
async checkExchange(exchange) {
|
|
643
|
+
if (this._channel) {
|
|
644
|
+
return await this._channel.checkExchange(exchange);
|
|
645
|
+
}
|
|
646
|
+
else {
|
|
647
|
+
throw new Error(`Not connected.`);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
/** Send a `deleteExchange` to the underlying channel. */
|
|
651
|
+
async deleteExchange(exchange, options) {
|
|
652
|
+
if (this._channel) {
|
|
653
|
+
return await this._channel.deleteExchange(exchange, options);
|
|
654
|
+
}
|
|
655
|
+
else {
|
|
656
|
+
throw new Error(`Not connected.`);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
/** Send a `unbindExchange` to the underlying channel. */
|
|
660
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
661
|
+
async unbindExchange(destination, source, pattern, args) {
|
|
662
|
+
if (this._channel) {
|
|
663
|
+
return await this._channel.unbindExchange(destination, source, pattern, args);
|
|
664
|
+
}
|
|
665
|
+
else {
|
|
666
|
+
throw new Error(`Not connected.`);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
554
669
|
/** Send a `get` to the underlying channel. */
|
|
555
670
|
async get(queue, options) {
|
|
556
671
|
if (this._channel) {
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,10 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.connect = void 0;
|
|
6
|
+
exports.AmqpConnectionManagerClass = exports.connect = void 0;
|
|
7
7
|
const AmqpConnectionManager_js_1 = __importDefault(require("./AmqpConnectionManager.js"));
|
|
8
|
+
exports.AmqpConnectionManagerClass = AmqpConnectionManager_js_1.default;
|
|
8
9
|
function connect(urls, options) {
|
|
9
|
-
|
|
10
|
+
const conn = new AmqpConnectionManager_js_1.default(urls, options);
|
|
11
|
+
conn.connect().catch(() => {
|
|
12
|
+
/* noop */
|
|
13
|
+
});
|
|
14
|
+
return conn;
|
|
10
15
|
}
|
|
11
16
|
exports.connect = connect;
|
|
12
17
|
const amqp = { connect };
|
|
@@ -59,6 +59,7 @@ export interface IAmqpConnectionManager {
|
|
|
59
59
|
addListener(event: 'disconnect', listener: (arg: {
|
|
60
60
|
err: Error;
|
|
61
61
|
}) => void): this;
|
|
62
|
+
listeners(eventName: string | symbol): Function[];
|
|
62
63
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
63
64
|
on(event: 'connect', listener: ConnectListener): this;
|
|
64
65
|
on(event: 'blocked', listener: (arg: {
|
|
@@ -96,13 +97,17 @@ export interface IAmqpConnectionManager {
|
|
|
96
97
|
err: Error;
|
|
97
98
|
}) => void): this;
|
|
98
99
|
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
100
|
+
connect(options?: {
|
|
101
|
+
timeout?: number;
|
|
102
|
+
}): Promise<void>;
|
|
103
|
+
reconnect(): void;
|
|
99
104
|
createChannel(options?: CreateChannelOpts): ChannelWrapper;
|
|
100
105
|
close(): Promise<void>;
|
|
101
106
|
isConnected(): boolean;
|
|
102
107
|
/** The current connection. */
|
|
103
|
-
|
|
108
|
+
readonly connection: Connection | undefined;
|
|
104
109
|
/** Returns the number of registered channels. */
|
|
105
|
-
|
|
110
|
+
readonly channelCount: number;
|
|
106
111
|
}
|
|
107
112
|
export default class AmqpConnectionManager extends EventEmitter implements IAmqpConnectionManager {
|
|
108
113
|
private _channels;
|
|
@@ -148,6 +153,15 @@ export default class AmqpConnectionManager extends EventEmitter implements IAmqp
|
|
|
148
153
|
* Note that if this is supplied, then `urls` is ignored.
|
|
149
154
|
*/
|
|
150
155
|
constructor(urls: ConnectionUrl | ConnectionUrl[] | undefined | null, options?: AmqpConnectionManagerOptions);
|
|
156
|
+
/**
|
|
157
|
+
* Start the connect retries and await the first connect result. Even if the initial connect fails or timeouts, the
|
|
158
|
+
* reconnect attempts will continue in the background.
|
|
159
|
+
* @param [options={}] -
|
|
160
|
+
* @param [options.timeout] - Time to wait for initial connect
|
|
161
|
+
*/
|
|
162
|
+
connect({ timeout }?: {
|
|
163
|
+
timeout?: number;
|
|
164
|
+
}): Promise<void>;
|
|
151
165
|
createChannel(options?: CreateChannelOpts): ChannelWrapper;
|
|
152
166
|
close(): Promise<void>;
|
|
153
167
|
isConnected(): boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import amqp from 'amqplib';
|
|
2
|
-
import { EventEmitter } from 'events';
|
|
2
|
+
import { EventEmitter, once } from 'events';
|
|
3
3
|
import pb from 'promise-breaker';
|
|
4
4
|
import { URL } from 'url';
|
|
5
5
|
import ChannelWrapper from './ChannelWrapper.js';
|
|
@@ -67,7 +67,41 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
67
67
|
// There will be one listener per channel, and there could be a lot of channels, so disable warnings from node.
|
|
68
68
|
this.setMaxListeners(0);
|
|
69
69
|
this._findServers = options.findServers || (() => Promise.resolve(urls));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Start the connect retries and await the first connect result. Even if the initial connect fails or timeouts, the
|
|
73
|
+
* reconnect attempts will continue in the background.
|
|
74
|
+
* @param [options={}] -
|
|
75
|
+
* @param [options.timeout] - Time to wait for initial connect
|
|
76
|
+
*/
|
|
77
|
+
async connect({ timeout } = {}) {
|
|
70
78
|
this._connect();
|
|
79
|
+
let reject;
|
|
80
|
+
const onDisconnect = ({ err }) => {
|
|
81
|
+
// Ignore disconnects caused by dead servers etc., but throw on operational errors like bad credentials.
|
|
82
|
+
if (err.isOperational) {
|
|
83
|
+
reject(err);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
try {
|
|
87
|
+
await Promise.race([
|
|
88
|
+
once(this, 'connect'),
|
|
89
|
+
new Promise((_resolve, innerReject) => {
|
|
90
|
+
reject = innerReject;
|
|
91
|
+
this.on('disconnect', onDisconnect);
|
|
92
|
+
}),
|
|
93
|
+
...(timeout
|
|
94
|
+
? [
|
|
95
|
+
wait(timeout).promise.then(() => {
|
|
96
|
+
throw new Error('amqp-connection-manager: connect timeout');
|
|
97
|
+
}),
|
|
98
|
+
]
|
|
99
|
+
: []),
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
this.removeListener('disconnect', onDisconnect);
|
|
104
|
+
}
|
|
71
105
|
}
|
|
72
106
|
// `options` here are any options that can be passed to ChannelWrapper.
|
|
73
107
|
createChannel(options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmqpConnectionManager.js","sourceRoot":"","sources":["../../src/AmqpConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAoB,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"AmqpConnectionManager.js","sourceRoot":"","sources":["../../src/AmqpConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import * as amqplib from 'amqplib';
|
|
3
|
-
import {
|
|
2
|
+
import type * as amqplib from 'amqplib';
|
|
3
|
+
import { Options } from 'amqplib';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import pb from 'promise-breaker';
|
|
6
6
|
import { IAmqpConnectionManager } from './AmqpConnectionManager.js';
|
|
7
|
-
export declare type
|
|
7
|
+
export declare type Channel = amqplib.ConfirmChannel | amqplib.Channel;
|
|
8
|
+
export declare type SetupFunc = ((channel: Channel, callback: (error?: Error) => void) => void) | ((channel: Channel) => Promise<void>) | ((channel: amqplib.ConfirmChannel, callback: (error?: Error) => void) => void) | ((channel: amqplib.ConfirmChannel) => Promise<void>);
|
|
8
9
|
export interface CreateChannelOpts {
|
|
9
10
|
/** Name for this channel. Used for debugging. */
|
|
10
11
|
name?: string;
|
|
@@ -13,11 +14,23 @@ export interface CreateChannelOpts {
|
|
|
13
14
|
* This function should either accept a callback, or return a Promise. See addSetup below
|
|
14
15
|
*/
|
|
15
16
|
setup?: SetupFunc;
|
|
17
|
+
/**
|
|
18
|
+
* True to create a ConfirmChannel (default). False to create a regular Channel.
|
|
19
|
+
*/
|
|
20
|
+
confirm?: boolean;
|
|
16
21
|
/**
|
|
17
22
|
* if true, then ChannelWrapper assumes all messages passed to publish() and sendToQueue() are plain JSON objects.
|
|
18
23
|
* These will be encoded automatically before being sent.
|
|
19
24
|
*/
|
|
20
25
|
json?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Default publish timeout in ms. Messages not published within the given time are rejected with a timeout error.
|
|
28
|
+
*/
|
|
29
|
+
publishTimeout?: number;
|
|
30
|
+
}
|
|
31
|
+
interface PublishOptions extends Options.Publish {
|
|
32
|
+
/** Message will be rejected after timeout ms */
|
|
33
|
+
timeout?: number;
|
|
21
34
|
}
|
|
22
35
|
interface ConsumerOptions extends amqplib.Options.Consume {
|
|
23
36
|
prefetch?: number;
|
|
@@ -62,6 +75,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
62
75
|
* resolved.
|
|
63
76
|
*/
|
|
64
77
|
private _channel?;
|
|
78
|
+
/**
|
|
79
|
+
* True to create a ConfirmChannel. False to create a regular Channel.
|
|
80
|
+
*/
|
|
81
|
+
private _confirm;
|
|
65
82
|
/**
|
|
66
83
|
* True if the "worker" is busy sending messages. False if we need to
|
|
67
84
|
* start the worker to get stuff done.
|
|
@@ -77,6 +94,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
77
94
|
* True if the underlying channel has room for more messages.
|
|
78
95
|
*/
|
|
79
96
|
private _channelHasRoom;
|
|
97
|
+
/**
|
|
98
|
+
* Default publish timeout
|
|
99
|
+
*/
|
|
100
|
+
private _publishTimeout?;
|
|
80
101
|
name?: string;
|
|
81
102
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
82
103
|
addListener(event: 'connect', listener: () => void): this;
|
|
@@ -140,7 +161,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
140
161
|
* @param {function} [done] - Optional callback.
|
|
141
162
|
* @returns {void | Promise} - Resolves when complete.
|
|
142
163
|
*/
|
|
143
|
-
removeSetup(setup: SetupFunc, teardown?:
|
|
164
|
+
removeSetup(setup: SetupFunc, teardown?: SetupFunc, done?: pb.Callback<void>): Promise<void>;
|
|
144
165
|
/**
|
|
145
166
|
* Returns a Promise which resolves when this channel next connects.
|
|
146
167
|
* (Mainly here for unit testing...)
|
|
@@ -149,8 +170,9 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
149
170
|
* @returns - Resolves when connected.
|
|
150
171
|
*/
|
|
151
172
|
waitForConnect(done?: pb.Callback<void>): Promise<void>;
|
|
152
|
-
publish(exchange: string, routingKey: string, content: Buffer | string | unknown, options?:
|
|
153
|
-
sendToQueue(queue: string, content: Buffer | string | unknown, options?:
|
|
173
|
+
publish(exchange: string, routingKey: string, content: Buffer | string | unknown, options?: PublishOptions, done?: pb.Callback<boolean>): Promise<boolean>;
|
|
174
|
+
sendToQueue(queue: string, content: Buffer | string | unknown, options?: PublishOptions, done?: pb.Callback<boolean>): Promise<boolean>;
|
|
175
|
+
private _enqueueMessage;
|
|
154
176
|
/**
|
|
155
177
|
* Create a new ChannelWrapper.
|
|
156
178
|
*
|
|
@@ -211,6 +233,14 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
211
233
|
deleteQueue(queue: string, options?: Options.DeleteQueue): Promise<amqplib.Replies.DeleteQueue>;
|
|
212
234
|
/** Send a `assertExchange` to the underlying channel. */
|
|
213
235
|
assertExchange(exchange: string, type: 'direct' | 'topic' | 'headers' | 'fanout' | 'match' | string, options?: Options.AssertExchange): Promise<amqplib.Replies.AssertExchange>;
|
|
236
|
+
/** Send a `bindExchange` to the underlying channel. */
|
|
237
|
+
bindExchange(destination: string, source: string, pattern: string, args?: any): Promise<amqplib.Replies.Empty>;
|
|
238
|
+
/** Send a `checkExchange` to the underlying channel. */
|
|
239
|
+
checkExchange(exchange: string): Promise<amqplib.Replies.Empty>;
|
|
240
|
+
/** Send a `deleteExchange` to the underlying channel. */
|
|
241
|
+
deleteExchange(exchange: string, options?: Options.DeleteExchange): Promise<amqplib.Replies.Empty>;
|
|
242
|
+
/** Send a `unbindExchange` to the underlying channel. */
|
|
243
|
+
unbindExchange(destination: string, source: string, pattern: string, args?: any): Promise<amqplib.Replies.Empty>;
|
|
214
244
|
/** Send a `get` to the underlying channel. */
|
|
215
245
|
get(queue: string, options?: Options.Get): Promise<amqplib.GetMessage | false>;
|
|
216
246
|
}
|
|
@@ -42,7 +42,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
42
42
|
*
|
|
43
43
|
*/
|
|
44
44
|
constructor(connectionManager, options = {}) {
|
|
45
|
-
var _a;
|
|
45
|
+
var _a, _b;
|
|
46
46
|
super();
|
|
47
47
|
/** If we're in the process of creating a channel, this is a Promise which
|
|
48
48
|
* will resolve when the channel is set up. Otherwise, this is `null`.
|
|
@@ -54,6 +54,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
54
54
|
this._unconfirmedMessages = [];
|
|
55
55
|
/** Consumers which will be reconnected on channel errors etc. */
|
|
56
56
|
this._consumers = [];
|
|
57
|
+
/**
|
|
58
|
+
* True to create a ConfirmChannel. False to create a regular Channel.
|
|
59
|
+
*/
|
|
60
|
+
this._confirm = true;
|
|
57
61
|
/**
|
|
58
62
|
* True if the "worker" is busy sending messages. False if we need to
|
|
59
63
|
* start the worker to get stuff done.
|
|
@@ -72,8 +76,10 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
72
76
|
this._onConnect = this._onConnect.bind(this);
|
|
73
77
|
this._onDisconnect = this._onDisconnect.bind(this);
|
|
74
78
|
this._connectionManager = connectionManager;
|
|
79
|
+
this._confirm = (_a = options.confirm) !== null && _a !== void 0 ? _a : true;
|
|
75
80
|
this.name = options.name;
|
|
76
|
-
this.
|
|
81
|
+
this._publishTimeout = options.publishTimeout;
|
|
82
|
+
this._json = (_b = options.json) !== null && _b !== void 0 ? _b : false;
|
|
77
83
|
// Array of setup functions to call.
|
|
78
84
|
this._setups = [];
|
|
79
85
|
this._consumers = [];
|
|
@@ -175,15 +181,17 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
175
181
|
*/
|
|
176
182
|
publish(exchange, routingKey, content, options, done) {
|
|
177
183
|
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
178
|
-
|
|
184
|
+
const { timeout, ...opts } = options || {};
|
|
185
|
+
this._enqueueMessage({
|
|
179
186
|
type: 'publish',
|
|
180
187
|
exchange,
|
|
181
188
|
routingKey,
|
|
182
|
-
content,
|
|
183
|
-
options,
|
|
189
|
+
content: this._getEncodedMessage(content),
|
|
184
190
|
resolve,
|
|
185
191
|
reject,
|
|
186
|
-
|
|
192
|
+
options: opts,
|
|
193
|
+
isTimedout: false,
|
|
194
|
+
}, timeout || this._publishTimeout);
|
|
187
195
|
this._startWorker();
|
|
188
196
|
}));
|
|
189
197
|
}
|
|
@@ -197,23 +205,51 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
197
205
|
* `message` here should be a JSON-able object.
|
|
198
206
|
*/
|
|
199
207
|
sendToQueue(queue, content, options, done) {
|
|
208
|
+
const encodedContent = this._getEncodedMessage(content);
|
|
200
209
|
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
201
|
-
|
|
210
|
+
const { timeout, ...opts } = options || {};
|
|
211
|
+
this._enqueueMessage({
|
|
202
212
|
type: 'sendToQueue',
|
|
203
213
|
queue,
|
|
204
|
-
content,
|
|
205
|
-
options,
|
|
214
|
+
content: encodedContent,
|
|
206
215
|
resolve,
|
|
207
216
|
reject,
|
|
208
|
-
|
|
209
|
-
|
|
217
|
+
options: opts,
|
|
218
|
+
isTimedout: false,
|
|
219
|
+
}, timeout || this._publishTimeout);
|
|
220
|
+
this._startWorker();
|
|
210
221
|
}));
|
|
211
222
|
}
|
|
223
|
+
_enqueueMessage(message, timeout) {
|
|
224
|
+
if (timeout) {
|
|
225
|
+
message.timeout = setTimeout(() => {
|
|
226
|
+
let idx = this._messages.indexOf(message);
|
|
227
|
+
if (idx !== -1) {
|
|
228
|
+
this._messages.splice(idx, 1);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
idx = this._unconfirmedMessages.indexOf(message);
|
|
232
|
+
if (idx !== -1) {
|
|
233
|
+
this._unconfirmedMessages.splice(idx, 1);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
message.isTimedout = true;
|
|
237
|
+
message.reject(new Error('timeout'));
|
|
238
|
+
}, timeout);
|
|
239
|
+
}
|
|
240
|
+
this._messages.push(message);
|
|
241
|
+
}
|
|
212
242
|
// Called whenever we connect to the broker.
|
|
213
243
|
async _onConnect({ connection }) {
|
|
214
244
|
this._irrecoverableCode = undefined;
|
|
215
245
|
try {
|
|
216
|
-
|
|
246
|
+
let channel;
|
|
247
|
+
if (this._confirm) {
|
|
248
|
+
channel = await connection.createConfirmChannel();
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
channel = await connection.createChannel();
|
|
252
|
+
}
|
|
217
253
|
this._channel = channel;
|
|
218
254
|
this._channelHasRoom = true;
|
|
219
255
|
channel.on('close', () => this._onChannelClose(channel));
|
|
@@ -282,11 +318,21 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
282
318
|
this._working = false;
|
|
283
319
|
if (this._messages.length !== 0) {
|
|
284
320
|
// Reject any unsent messages.
|
|
285
|
-
this._messages.forEach((message) =>
|
|
321
|
+
this._messages.forEach((message) => {
|
|
322
|
+
if (message.timeout) {
|
|
323
|
+
clearTimeout(message.timeout);
|
|
324
|
+
}
|
|
325
|
+
message.reject(new Error('Channel closed'));
|
|
326
|
+
});
|
|
286
327
|
}
|
|
287
328
|
if (this._unconfirmedMessages.length !== 0) {
|
|
288
329
|
// Reject any unconfirmed messages.
|
|
289
|
-
this._unconfirmedMessages.forEach((message) =>
|
|
330
|
+
this._unconfirmedMessages.forEach((message) => {
|
|
331
|
+
if (message.timeout) {
|
|
332
|
+
clearTimeout(message.timeout);
|
|
333
|
+
}
|
|
334
|
+
message.reject(new Error('Channel closed'));
|
|
335
|
+
});
|
|
290
336
|
}
|
|
291
337
|
this._connectionManager.removeListener('connect', this._onConnect);
|
|
292
338
|
this._connectionManager.removeListener('disconnect', this._onDisconnect);
|
|
@@ -368,31 +414,60 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
368
414
|
if (!message) {
|
|
369
415
|
break;
|
|
370
416
|
}
|
|
371
|
-
|
|
372
|
-
const encodedMessage = this._getEncodedMessage(message.content);
|
|
417
|
+
let thisCanSend = true;
|
|
373
418
|
switch (message.type) {
|
|
374
419
|
case 'publish': {
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
420
|
+
if (this._confirm) {
|
|
421
|
+
this._unconfirmedMessages.push(message);
|
|
422
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options, (err) => {
|
|
423
|
+
if (message.isTimedout) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
if (message.timeout) {
|
|
427
|
+
clearTimeout(message.timeout);
|
|
428
|
+
}
|
|
429
|
+
if (err) {
|
|
430
|
+
this._messageRejected(message, err);
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
this._messageResolved(message, thisCanSend);
|
|
434
|
+
}
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
if (message.timeout) {
|
|
439
|
+
clearTimeout(message.timeout);
|
|
382
440
|
}
|
|
383
|
-
|
|
441
|
+
thisCanSend = this._channelHasRoom = channel.publish(message.exchange, message.routingKey, message.content, message.options);
|
|
442
|
+
message.resolve(thisCanSend);
|
|
443
|
+
}
|
|
384
444
|
break;
|
|
385
445
|
}
|
|
386
446
|
case 'sendToQueue': {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
447
|
+
if (this._confirm) {
|
|
448
|
+
this._unconfirmedMessages.push(message);
|
|
449
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options, (err) => {
|
|
450
|
+
if (message.isTimedout) {
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
if (message.timeout) {
|
|
454
|
+
clearTimeout(message.timeout);
|
|
455
|
+
}
|
|
456
|
+
if (err) {
|
|
457
|
+
this._messageRejected(message, err);
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
this._messageResolved(message, thisCanSend);
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
465
|
+
if (message.timeout) {
|
|
466
|
+
clearTimeout(message.timeout);
|
|
391
467
|
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
});
|
|
468
|
+
thisCanSend = this._channelHasRoom = channel.sendToQueue(message.queue, message.content, message.options);
|
|
469
|
+
message.resolve(thisCanSend);
|
|
470
|
+
}
|
|
396
471
|
break;
|
|
397
472
|
}
|
|
398
473
|
/* istanbul ignore next */
|
|
@@ -404,7 +479,9 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
404
479
|
if (this._channelHasRoom && this._messages.length > 0) {
|
|
405
480
|
setImmediate(() => this._publishQueuedMessages(workerNumber));
|
|
406
481
|
}
|
|
407
|
-
|
|
482
|
+
else {
|
|
483
|
+
this._working = false;
|
|
484
|
+
}
|
|
408
485
|
/* istanbul ignore next */
|
|
409
486
|
}
|
|
410
487
|
catch (err) {
|
|
@@ -546,6 +623,44 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
546
623
|
return { exchange };
|
|
547
624
|
}
|
|
548
625
|
}
|
|
626
|
+
/** Send a `bindExchange` to the underlying channel. */
|
|
627
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
628
|
+
async bindExchange(destination, source, pattern, args) {
|
|
629
|
+
if (this._channel) {
|
|
630
|
+
return await this._channel.bindExchange(destination, source, pattern, args);
|
|
631
|
+
}
|
|
632
|
+
else {
|
|
633
|
+
throw new Error(`Not connected.`);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
/** Send a `checkExchange` to the underlying channel. */
|
|
637
|
+
async checkExchange(exchange) {
|
|
638
|
+
if (this._channel) {
|
|
639
|
+
return await this._channel.checkExchange(exchange);
|
|
640
|
+
}
|
|
641
|
+
else {
|
|
642
|
+
throw new Error(`Not connected.`);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
/** Send a `deleteExchange` to the underlying channel. */
|
|
646
|
+
async deleteExchange(exchange, options) {
|
|
647
|
+
if (this._channel) {
|
|
648
|
+
return await this._channel.deleteExchange(exchange, options);
|
|
649
|
+
}
|
|
650
|
+
else {
|
|
651
|
+
throw new Error(`Not connected.`);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
/** Send a `unbindExchange` to the underlying channel. */
|
|
655
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
656
|
+
async unbindExchange(destination, source, pattern, args) {
|
|
657
|
+
if (this._channel) {
|
|
658
|
+
return await this._channel.unbindExchange(destination, source, pattern, args);
|
|
659
|
+
}
|
|
660
|
+
else {
|
|
661
|
+
throw new Error(`Not connected.`);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
549
664
|
/** Send a `get` to the underlying channel. */
|
|
550
665
|
async get(queue, options) {
|
|
551
666
|
if (this._channel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelWrapper.js","sourceRoot":"","sources":["../../src/ChannelWrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChannelWrapper.js","sourceRoot":"","sources":["../../src/ChannelWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { AmqpConnectionManagerOptions, ConnectionUrl, IAmqpConnectionManager } from './AmqpConnectionManager.js';
|
|
1
|
+
import AmqpConnectionManager, { AmqpConnectionManagerOptions, ConnectionUrl, IAmqpConnectionManager } from './AmqpConnectionManager.js';
|
|
2
2
|
export type { AmqpConnectionManagerOptions, ConnectionUrl, IAmqpConnectionManager as AmqpConnectionManager, } from './AmqpConnectionManager.js';
|
|
3
|
-
export type { CreateChannelOpts, default as ChannelWrapper, SetupFunc } from './ChannelWrapper.js';
|
|
3
|
+
export type { CreateChannelOpts, default as ChannelWrapper, SetupFunc, Channel, } from './ChannelWrapper.js';
|
|
4
4
|
export declare function connect(urls: ConnectionUrl | ConnectionUrl[] | undefined | null, options?: AmqpConnectionManagerOptions): IAmqpConnectionManager;
|
|
5
|
+
export { AmqpConnectionManager as AmqpConnectionManagerClass };
|
|
5
6
|
declare const amqp: {
|
|
6
7
|
connect: typeof connect;
|
|
7
8
|
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import AmqpConnectionManager from './AmqpConnectionManager.js';
|
|
2
2
|
export function connect(urls, options) {
|
|
3
|
-
|
|
3
|
+
const conn = new AmqpConnectionManager(urls, options);
|
|
4
|
+
conn.connect().catch(() => {
|
|
5
|
+
/* noop */
|
|
6
|
+
});
|
|
7
|
+
return conn;
|
|
4
8
|
}
|
|
9
|
+
export { AmqpConnectionManager as AmqpConnectionManagerClass };
|
|
5
10
|
const amqp = { connect };
|
|
6
11
|
export default amqp;
|
|
7
12
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAIN,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,qBAIN,MAAM,4BAA4B,CAAC;AAcpC,MAAM,UAAU,OAAO,CACnB,IAAwD,EACxD,OAAsC;IAEtC,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACtB,UAAU;IACd,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,qBAAqB,IAAI,0BAA0B,EAAE,CAAC;AAE/D,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;AAEzB,eAAe,IAAI,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "amqp-connection-manager",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Auto-reconnect and round robin support for amqplib.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -16,9 +16,7 @@
|
|
|
16
16
|
"dist/**/*"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"promise-breaker": "^5.0.0"
|
|
20
|
-
"ts-node": "^10.2.1",
|
|
21
|
-
"typescript": "^4.3.5"
|
|
19
|
+
"promise-breaker": "^5.0.0"
|
|
22
20
|
},
|
|
23
21
|
"peerDependencies": {
|
|
24
22
|
"amqplib": "*"
|
|
@@ -44,7 +42,6 @@
|
|
|
44
42
|
"coveralls": "^3.1.0",
|
|
45
43
|
"cross-env": "^7.0.2",
|
|
46
44
|
"eslint": "^7.8.1",
|
|
47
|
-
"eslint-config-benbria": "^4.0.3",
|
|
48
45
|
"eslint-config-prettier": "^8.3.0",
|
|
49
46
|
"eslint-plugin-import": "^2.24.1",
|
|
50
47
|
"eslint-plugin-promise": "^5.0.0",
|
|
@@ -59,7 +56,9 @@
|
|
|
59
56
|
"pretty-quick": "^3.1.1",
|
|
60
57
|
"promise-tools": "^2.1.0",
|
|
61
58
|
"semantic-release": "^17.1.1",
|
|
62
|
-
"ts-jest": "^27.0.5"
|
|
59
|
+
"ts-jest": "^27.0.5",
|
|
60
|
+
"ts-node": "^10.2.1",
|
|
61
|
+
"typescript": "^4.3.5"
|
|
63
62
|
},
|
|
64
63
|
"engines": {
|
|
65
64
|
"node": ">=10.0.0",
|