amqp-connection-manager 5.0.0 → 5.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/README.md +0 -1
- package/dist/cjs/AmqpConnectionManager.js +7 -3
- package/dist/cjs/ChannelWrapper.js +38 -99
- package/dist/esm/AmqpConnectionManager.js +7 -3
- package/dist/esm/AmqpConnectionManager.js.map +1 -1
- package/dist/esm/ChannelWrapper.js +34 -92
- package/dist/esm/ChannelWrapper.js.map +1 -1
- package/dist/types/AmqpConnectionManager.d.ts +21 -57
- package/dist/types/ChannelWrapper.d.ts +30 -43
- package/package.json +24 -41
package/README.md
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://npmjs.org/package/amqp-connection-manager)
|
|
4
4
|

|
|
5
|
-
[](https://github.com/semantic-release/semantic-release)
|
|
6
5
|
|
|
7
6
|
Connection management for amqplib. This is a wrapper around [amqplib](http://www.squaremobius.net/amqp.node/) which provides automatic reconnects.
|
|
8
7
|
|
|
@@ -38,7 +38,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
const amqp = __importStar(require("amqplib"));
|
|
40
40
|
const events_1 = require("events");
|
|
41
|
-
const promise_breaker_1 = __importDefault(require("promise-breaker"));
|
|
42
41
|
const url_1 = require("url");
|
|
43
42
|
const ChannelWrapper_js_1 = __importDefault(require("./ChannelWrapper.js"));
|
|
44
43
|
const helpers_js_1 = require("./helpers.js");
|
|
@@ -224,7 +223,12 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
224
223
|
.then(() => {
|
|
225
224
|
if (!this._urls || this._currentUrl >= this._urls.length) {
|
|
226
225
|
this._currentUrl = 0;
|
|
227
|
-
return
|
|
226
|
+
return new Promise((resolve, reject) => {
|
|
227
|
+
const p = this._findServers(resolve);
|
|
228
|
+
if (p) {
|
|
229
|
+
p.then(resolve, reject);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
228
232
|
}
|
|
229
233
|
else {
|
|
230
234
|
return this._urls;
|
|
@@ -287,7 +291,7 @@ class AmqpConnectionManager extends events_1.EventEmitter {
|
|
|
287
291
|
// Reconnect if the connection closes
|
|
288
292
|
connection.on('close', (err) => {
|
|
289
293
|
this._currentConnection = undefined;
|
|
290
|
-
this.emit('disconnect', { err });
|
|
294
|
+
this.emit('disconnect', { err: err });
|
|
291
295
|
const handle = (0, helpers_js_1.wait)(this.reconnectTimeInSeconds * 1000);
|
|
292
296
|
this._cancelRetriesHandler = handle.cancel;
|
|
293
297
|
handle.promise
|
|
@@ -32,13 +32,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
const crypto = __importStar(require("crypto"));
|
|
40
37
|
const events_1 = require("events");
|
|
41
|
-
const
|
|
38
|
+
const pb = __importStar(require("promise-breaker"));
|
|
42
39
|
const util_1 = require("util");
|
|
43
40
|
const MAX_MESSAGES_PER_BATCH = 1000;
|
|
44
41
|
const randomBytes = (0, util_1.promisify)(crypto.randomBytes);
|
|
@@ -68,94 +65,27 @@ const IRRECOVERABLE_ERRORS = [
|
|
|
68
65
|
*
|
|
69
66
|
*/
|
|
70
67
|
class ChannelWrapper extends events_1.EventEmitter {
|
|
71
|
-
addListener(event, listener) {
|
|
72
|
-
return super.addListener(event, listener);
|
|
73
|
-
}
|
|
74
|
-
on(event, listener) {
|
|
75
|
-
return super.on(event, listener);
|
|
76
|
-
}
|
|
77
|
-
once(event, listener) {
|
|
78
|
-
return super.once(event, listener);
|
|
79
|
-
}
|
|
80
|
-
prependListener(event, listener) {
|
|
81
|
-
return super.prependListener(event, listener);
|
|
82
|
-
}
|
|
83
|
-
prependOnceListener(event, listener) {
|
|
84
|
-
return super.prependOnceListener(event, listener);
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Adds a new 'setup handler'.
|
|
88
|
-
*
|
|
89
|
-
* `setup(channel, [cb])` is a function to call when a new underlying channel is created - handy for asserting
|
|
90
|
-
* exchanges and queues exists, and whatnot. The `channel` object here is a ConfigChannel from amqplib.
|
|
91
|
-
* The `setup` function should return a Promise (or optionally take a callback) - no messages will be sent until
|
|
92
|
-
* this Promise resolves.
|
|
93
|
-
*
|
|
94
|
-
* If there is a connection, `setup()` will be run immediately, and the addSetup Promise/callback won't resolve
|
|
95
|
-
* until `setup` is complete. Note that in this case, if the setup throws an error, no 'error' event will
|
|
96
|
-
* be emitted, since you can just handle the error here (although the `setup` will still be added for future
|
|
97
|
-
* reconnects, even if it throws an error.)
|
|
98
|
-
*
|
|
99
|
-
* Setup functions should, ideally, not throw errors, but if they do then the ChannelWrapper will emit an 'error'
|
|
100
|
-
* event.
|
|
101
|
-
*
|
|
102
|
-
* @param setup - setup function.
|
|
103
|
-
* @param [done] - callback.
|
|
104
|
-
* @returns - Resolves when complete.
|
|
105
|
-
*/
|
|
106
68
|
addSetup(setup, done) {
|
|
107
|
-
return
|
|
69
|
+
return pb.addCallback(done, (this._settingUp || Promise.resolve()).then(async () => {
|
|
108
70
|
this._setups.push(setup);
|
|
109
71
|
if (this._channel) {
|
|
110
|
-
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
return undefined;
|
|
72
|
+
await this._callSetup(setup, this._channel);
|
|
114
73
|
}
|
|
115
74
|
}));
|
|
116
75
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Remove a setup function added with `addSetup`. If there is currently a
|
|
119
|
-
* connection, `teardown(channel, [cb])` will be run immediately, and the
|
|
120
|
-
* returned Promise will not resolve until it completes.
|
|
121
|
-
*
|
|
122
|
-
* @param {function} setup - the setup function to remove.
|
|
123
|
-
* @param {function} [teardown] - `function(channel, [cb])` to run to tear
|
|
124
|
-
* down the channel.
|
|
125
|
-
* @param {function} [done] - Optional callback.
|
|
126
|
-
* @returns {void | Promise} - Resolves when complete.
|
|
127
|
-
*/
|
|
128
76
|
removeSetup(setup, teardown, done) {
|
|
129
|
-
return
|
|
77
|
+
return pb.addCallback(done, () => {
|
|
130
78
|
this._setups = this._setups.filter((s) => s !== setup);
|
|
131
|
-
return (this._settingUp || Promise.resolve()).then(() => this._channel && teardown ?
|
|
79
|
+
return (this._settingUp || Promise.resolve()).then(() => this._channel && teardown ? this._callSetup(teardown, this._channel) : undefined);
|
|
132
80
|
});
|
|
133
81
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Returns a Promise which resolves when this channel next connects.
|
|
136
|
-
* (Mainly here for unit testing...)
|
|
137
|
-
*
|
|
138
|
-
* @param [done] - Optional callback.
|
|
139
|
-
* @returns - Resolves when connected.
|
|
140
|
-
*/
|
|
141
82
|
waitForConnect(done) {
|
|
142
|
-
return
|
|
83
|
+
return pb.addCallback(done, this._channel && !this._settingUp
|
|
143
84
|
? Promise.resolve()
|
|
144
85
|
: new Promise((resolve) => this.once('connect', resolve)));
|
|
145
86
|
}
|
|
146
|
-
/*
|
|
147
|
-
* Publish a message to the channel.
|
|
148
|
-
*
|
|
149
|
-
* This works just like amqplib's `publish()`, except if the channel is not
|
|
150
|
-
* connected, this will wait until the channel is connected. Returns a
|
|
151
|
-
* Promise which will only resolve when the message has been succesfully sent.
|
|
152
|
-
* The returned promise will be rejected if `close()` is called on this
|
|
153
|
-
* channel before it can be sent, if `options.json` is set and the message
|
|
154
|
-
* can't be encoded, or if the broker rejects the message for some reason.
|
|
155
|
-
*
|
|
156
|
-
*/
|
|
157
87
|
publish(exchange, routingKey, content, options, done) {
|
|
158
|
-
return
|
|
88
|
+
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
159
89
|
const { timeout, ...opts } = options || {};
|
|
160
90
|
this._enqueueMessage({
|
|
161
91
|
type: 'publish',
|
|
@@ -170,18 +100,9 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
170
100
|
this._startWorker();
|
|
171
101
|
}));
|
|
172
102
|
}
|
|
173
|
-
/*
|
|
174
|
-
* Send a message to a queue.
|
|
175
|
-
*
|
|
176
|
-
* This works just like amqplib's `sendToQueue`, except if the channel is not connected, this will wait until the
|
|
177
|
-
* channel is connected. Returns a Promise which will only resolve when the message has been succesfully sent.
|
|
178
|
-
* The returned promise will be rejected only if `close()` is called on this channel before it can be sent.
|
|
179
|
-
*
|
|
180
|
-
* `message` here should be a JSON-able object.
|
|
181
|
-
*/
|
|
182
103
|
sendToQueue(queue, content, options, done) {
|
|
183
104
|
const encodedContent = this._getEncodedMessage(content);
|
|
184
|
-
return
|
|
105
|
+
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
185
106
|
const { timeout, ...opts } = options || {};
|
|
186
107
|
this._enqueueMessage({
|
|
187
108
|
type: 'sendToQueue',
|
|
@@ -297,7 +218,7 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
297
218
|
channel.on('drain', () => this._onChannelDrain());
|
|
298
219
|
this._settingUp = Promise.all(this._setups.map((setupFn) =>
|
|
299
220
|
// TODO: Use a timeout here to guard against setupFns that never resolve?
|
|
300
|
-
|
|
221
|
+
this._callSetup(setupFn, channel).catch((err) => {
|
|
301
222
|
if (err.name === 'IllegalOperationError') {
|
|
302
223
|
// Don't emit an error if setups failed because the channel closed.
|
|
303
224
|
return;
|
|
@@ -325,6 +246,23 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
325
246
|
this._channel = undefined;
|
|
326
247
|
}
|
|
327
248
|
}
|
|
249
|
+
async _callSetup(setup, channel) {
|
|
250
|
+
if (setup.length === 2) {
|
|
251
|
+
await new Promise((resolve, reject) => {
|
|
252
|
+
setup.call(this, channel, (err) => {
|
|
253
|
+
if (err) {
|
|
254
|
+
reject(err);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
resolve(undefined);
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
await setup.call(this, channel);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
328
266
|
// Called whenever the channel closes.
|
|
329
267
|
_onChannelClose(channel) {
|
|
330
268
|
if (this._channel === channel) {
|
|
@@ -427,7 +365,8 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
427
365
|
else if (content instanceof Buffer) {
|
|
428
366
|
encodedMessage = content;
|
|
429
367
|
}
|
|
430
|
-
else if (typeof content === 'object' &&
|
|
368
|
+
else if (typeof content === 'object' &&
|
|
369
|
+
typeof content.toString === 'function') {
|
|
431
370
|
encodedMessage = Buffer.from(content.toString());
|
|
432
371
|
}
|
|
433
372
|
else {
|
|
@@ -527,7 +466,7 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
527
466
|
}
|
|
528
467
|
catch (err) {
|
|
529
468
|
this._working = false;
|
|
530
|
-
this.emit('error', err);
|
|
469
|
+
this.emit('error', err, { name: this.name });
|
|
531
470
|
}
|
|
532
471
|
}
|
|
533
472
|
/**
|
|
@@ -572,7 +511,7 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
572
511
|
// before starting to consume.
|
|
573
512
|
return;
|
|
574
513
|
}
|
|
575
|
-
this.emit('error', err);
|
|
514
|
+
this.emit('error', err, { name: this.name });
|
|
576
515
|
});
|
|
577
516
|
return;
|
|
578
517
|
}
|
|
@@ -617,19 +556,23 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
617
556
|
}
|
|
618
557
|
/** Send an `ack` to the underlying channel. */
|
|
619
558
|
ack(message, allUpTo) {
|
|
620
|
-
|
|
559
|
+
var _a;
|
|
560
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.ack(message, allUpTo);
|
|
621
561
|
}
|
|
622
562
|
/** Send an `ackAll` to the underlying channel. */
|
|
623
563
|
ackAll() {
|
|
624
|
-
|
|
564
|
+
var _a;
|
|
565
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.ackAll();
|
|
625
566
|
}
|
|
626
567
|
/** Send a `nack` to the underlying channel. */
|
|
627
568
|
nack(message, allUpTo, requeue) {
|
|
628
|
-
|
|
569
|
+
var _a;
|
|
570
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.nack(message, allUpTo, requeue);
|
|
629
571
|
}
|
|
630
572
|
/** Send a `nackAll` to the underlying channel. */
|
|
631
573
|
nackAll(requeue) {
|
|
632
|
-
|
|
574
|
+
var _a;
|
|
575
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.nackAll(requeue);
|
|
633
576
|
}
|
|
634
577
|
/** Send a `purgeQueue` to the underlying channel. */
|
|
635
578
|
async purgeQueue(queue) {
|
|
@@ -659,14 +602,12 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
659
602
|
}
|
|
660
603
|
}
|
|
661
604
|
/** Send a `bindQueue` to the underlying channel. */
|
|
662
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
663
605
|
async bindQueue(queue, source, pattern, args) {
|
|
664
606
|
if (this._channel) {
|
|
665
607
|
await this._channel.bindQueue(queue, source, pattern, args);
|
|
666
608
|
}
|
|
667
609
|
}
|
|
668
610
|
/** Send a `unbindQueue` to the underlying channel. */
|
|
669
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
670
611
|
async unbindQueue(queue, source, pattern, args) {
|
|
671
612
|
if (this._channel) {
|
|
672
613
|
await this._channel.unbindQueue(queue, source, pattern, args);
|
|
@@ -691,7 +632,6 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
691
632
|
}
|
|
692
633
|
}
|
|
693
634
|
/** Send a `bindExchange` to the underlying channel. */
|
|
694
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
695
635
|
async bindExchange(destination, source, pattern, args) {
|
|
696
636
|
if (this._channel) {
|
|
697
637
|
return await this._channel.bindExchange(destination, source, pattern, args);
|
|
@@ -719,7 +659,6 @@ class ChannelWrapper extends events_1.EventEmitter {
|
|
|
719
659
|
}
|
|
720
660
|
}
|
|
721
661
|
/** Send a `unbindExchange` to the underlying channel. */
|
|
722
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
723
662
|
async unbindExchange(destination, source, pattern, args) {
|
|
724
663
|
if (this._channel) {
|
|
725
664
|
return await this._channel.unbindExchange(destination, source, pattern, args);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as amqp from 'amqplib';
|
|
2
2
|
import { EventEmitter, once } from 'events';
|
|
3
|
-
import pb from 'promise-breaker';
|
|
4
3
|
import { URL } from 'url';
|
|
5
4
|
import ChannelWrapper from './ChannelWrapper.js';
|
|
6
5
|
import { wait } from './helpers.js';
|
|
@@ -186,7 +185,12 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
186
185
|
.then(() => {
|
|
187
186
|
if (!this._urls || this._currentUrl >= this._urls.length) {
|
|
188
187
|
this._currentUrl = 0;
|
|
189
|
-
return
|
|
188
|
+
return new Promise((resolve, reject) => {
|
|
189
|
+
const p = this._findServers(resolve);
|
|
190
|
+
if (p) {
|
|
191
|
+
p.then(resolve, reject);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
190
194
|
}
|
|
191
195
|
else {
|
|
192
196
|
return this._urls;
|
|
@@ -249,7 +253,7 @@ export default class AmqpConnectionManager extends EventEmitter {
|
|
|
249
253
|
// Reconnect if the connection closes
|
|
250
254
|
connection.on('close', (err) => {
|
|
251
255
|
this._currentConnection = undefined;
|
|
252
|
-
this.emit('disconnect', { err });
|
|
256
|
+
this.emit('disconnect', { err: err });
|
|
253
257
|
const handle = wait(this.reconnectTimeInSeconds * 1000);
|
|
254
258
|
this._cancelRetriesHandler = handle.cancel;
|
|
255
259
|
handle.promise
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmqpConnectionManager.js","sourceRoot":"","sources":["../../src/AmqpConnectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"AmqpConnectionManager.js","sourceRoot":"","sources":["../../src/AmqpConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as crypto from 'crypto';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import pb from 'promise-breaker';
|
|
3
|
+
import * as pb from 'promise-breaker';
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
const MAX_MESSAGES_PER_BATCH = 1000;
|
|
6
6
|
const randomBytes = promisify(crypto.randomBytes);
|
|
@@ -30,92 +30,25 @@ const IRRECOVERABLE_ERRORS = [
|
|
|
30
30
|
*
|
|
31
31
|
*/
|
|
32
32
|
export default class ChannelWrapper extends EventEmitter {
|
|
33
|
-
addListener(event, listener) {
|
|
34
|
-
return super.addListener(event, listener);
|
|
35
|
-
}
|
|
36
|
-
on(event, listener) {
|
|
37
|
-
return super.on(event, listener);
|
|
38
|
-
}
|
|
39
|
-
once(event, listener) {
|
|
40
|
-
return super.once(event, listener);
|
|
41
|
-
}
|
|
42
|
-
prependListener(event, listener) {
|
|
43
|
-
return super.prependListener(event, listener);
|
|
44
|
-
}
|
|
45
|
-
prependOnceListener(event, listener) {
|
|
46
|
-
return super.prependOnceListener(event, listener);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Adds a new 'setup handler'.
|
|
50
|
-
*
|
|
51
|
-
* `setup(channel, [cb])` is a function to call when a new underlying channel is created - handy for asserting
|
|
52
|
-
* exchanges and queues exists, and whatnot. The `channel` object here is a ConfigChannel from amqplib.
|
|
53
|
-
* The `setup` function should return a Promise (or optionally take a callback) - no messages will be sent until
|
|
54
|
-
* this Promise resolves.
|
|
55
|
-
*
|
|
56
|
-
* If there is a connection, `setup()` will be run immediately, and the addSetup Promise/callback won't resolve
|
|
57
|
-
* until `setup` is complete. Note that in this case, if the setup throws an error, no 'error' event will
|
|
58
|
-
* be emitted, since you can just handle the error here (although the `setup` will still be added for future
|
|
59
|
-
* reconnects, even if it throws an error.)
|
|
60
|
-
*
|
|
61
|
-
* Setup functions should, ideally, not throw errors, but if they do then the ChannelWrapper will emit an 'error'
|
|
62
|
-
* event.
|
|
63
|
-
*
|
|
64
|
-
* @param setup - setup function.
|
|
65
|
-
* @param [done] - callback.
|
|
66
|
-
* @returns - Resolves when complete.
|
|
67
|
-
*/
|
|
68
33
|
addSetup(setup, done) {
|
|
69
|
-
return pb.addCallback(done, (this._settingUp || Promise.resolve()).then(() => {
|
|
34
|
+
return pb.addCallback(done, (this._settingUp || Promise.resolve()).then(async () => {
|
|
70
35
|
this._setups.push(setup);
|
|
71
36
|
if (this._channel) {
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
return undefined;
|
|
37
|
+
await this._callSetup(setup, this._channel);
|
|
76
38
|
}
|
|
77
39
|
}));
|
|
78
40
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Remove a setup function added with `addSetup`. If there is currently a
|
|
81
|
-
* connection, `teardown(channel, [cb])` will be run immediately, and the
|
|
82
|
-
* returned Promise will not resolve until it completes.
|
|
83
|
-
*
|
|
84
|
-
* @param {function} setup - the setup function to remove.
|
|
85
|
-
* @param {function} [teardown] - `function(channel, [cb])` to run to tear
|
|
86
|
-
* down the channel.
|
|
87
|
-
* @param {function} [done] - Optional callback.
|
|
88
|
-
* @returns {void | Promise} - Resolves when complete.
|
|
89
|
-
*/
|
|
90
41
|
removeSetup(setup, teardown, done) {
|
|
91
42
|
return pb.addCallback(done, () => {
|
|
92
43
|
this._setups = this._setups.filter((s) => s !== setup);
|
|
93
|
-
return (this._settingUp || Promise.resolve()).then(() => this._channel && teardown ?
|
|
44
|
+
return (this._settingUp || Promise.resolve()).then(() => this._channel && teardown ? this._callSetup(teardown, this._channel) : undefined);
|
|
94
45
|
});
|
|
95
46
|
}
|
|
96
|
-
/**
|
|
97
|
-
* Returns a Promise which resolves when this channel next connects.
|
|
98
|
-
* (Mainly here for unit testing...)
|
|
99
|
-
*
|
|
100
|
-
* @param [done] - Optional callback.
|
|
101
|
-
* @returns - Resolves when connected.
|
|
102
|
-
*/
|
|
103
47
|
waitForConnect(done) {
|
|
104
48
|
return pb.addCallback(done, this._channel && !this._settingUp
|
|
105
49
|
? Promise.resolve()
|
|
106
50
|
: new Promise((resolve) => this.once('connect', resolve)));
|
|
107
51
|
}
|
|
108
|
-
/*
|
|
109
|
-
* Publish a message to the channel.
|
|
110
|
-
*
|
|
111
|
-
* This works just like amqplib's `publish()`, except if the channel is not
|
|
112
|
-
* connected, this will wait until the channel is connected. Returns a
|
|
113
|
-
* Promise which will only resolve when the message has been succesfully sent.
|
|
114
|
-
* The returned promise will be rejected if `close()` is called on this
|
|
115
|
-
* channel before it can be sent, if `options.json` is set and the message
|
|
116
|
-
* can't be encoded, or if the broker rejects the message for some reason.
|
|
117
|
-
*
|
|
118
|
-
*/
|
|
119
52
|
publish(exchange, routingKey, content, options, done) {
|
|
120
53
|
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
121
54
|
const { timeout, ...opts } = options || {};
|
|
@@ -132,15 +65,6 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
132
65
|
this._startWorker();
|
|
133
66
|
}));
|
|
134
67
|
}
|
|
135
|
-
/*
|
|
136
|
-
* Send a message to a queue.
|
|
137
|
-
*
|
|
138
|
-
* This works just like amqplib's `sendToQueue`, except if the channel is not connected, this will wait until the
|
|
139
|
-
* channel is connected. Returns a Promise which will only resolve when the message has been succesfully sent.
|
|
140
|
-
* The returned promise will be rejected only if `close()` is called on this channel before it can be sent.
|
|
141
|
-
*
|
|
142
|
-
* `message` here should be a JSON-able object.
|
|
143
|
-
*/
|
|
144
68
|
sendToQueue(queue, content, options, done) {
|
|
145
69
|
const encodedContent = this._getEncodedMessage(content);
|
|
146
70
|
return pb.addCallback(done, new Promise((resolve, reject) => {
|
|
@@ -259,7 +183,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
259
183
|
channel.on('drain', () => this._onChannelDrain());
|
|
260
184
|
this._settingUp = Promise.all(this._setups.map((setupFn) =>
|
|
261
185
|
// TODO: Use a timeout here to guard against setupFns that never resolve?
|
|
262
|
-
|
|
186
|
+
this._callSetup(setupFn, channel).catch((err) => {
|
|
263
187
|
if (err.name === 'IllegalOperationError') {
|
|
264
188
|
// Don't emit an error if setups failed because the channel closed.
|
|
265
189
|
return;
|
|
@@ -287,6 +211,23 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
287
211
|
this._channel = undefined;
|
|
288
212
|
}
|
|
289
213
|
}
|
|
214
|
+
async _callSetup(setup, channel) {
|
|
215
|
+
if (setup.length === 2) {
|
|
216
|
+
await new Promise((resolve, reject) => {
|
|
217
|
+
setup.call(this, channel, (err) => {
|
|
218
|
+
if (err) {
|
|
219
|
+
reject(err);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
resolve(undefined);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
await setup.call(this, channel);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
290
231
|
// Called whenever the channel closes.
|
|
291
232
|
_onChannelClose(channel) {
|
|
292
233
|
if (this._channel === channel) {
|
|
@@ -389,7 +330,8 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
389
330
|
else if (content instanceof Buffer) {
|
|
390
331
|
encodedMessage = content;
|
|
391
332
|
}
|
|
392
|
-
else if (typeof content === 'object' &&
|
|
333
|
+
else if (typeof content === 'object' &&
|
|
334
|
+
typeof content.toString === 'function') {
|
|
393
335
|
encodedMessage = Buffer.from(content.toString());
|
|
394
336
|
}
|
|
395
337
|
else {
|
|
@@ -489,7 +431,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
489
431
|
}
|
|
490
432
|
catch (err) {
|
|
491
433
|
this._working = false;
|
|
492
|
-
this.emit('error', err);
|
|
434
|
+
this.emit('error', err, { name: this.name });
|
|
493
435
|
}
|
|
494
436
|
}
|
|
495
437
|
/**
|
|
@@ -534,7 +476,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
534
476
|
// before starting to consume.
|
|
535
477
|
return;
|
|
536
478
|
}
|
|
537
|
-
this.emit('error', err);
|
|
479
|
+
this.emit('error', err, { name: this.name });
|
|
538
480
|
});
|
|
539
481
|
return;
|
|
540
482
|
}
|
|
@@ -579,19 +521,23 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
579
521
|
}
|
|
580
522
|
/** Send an `ack` to the underlying channel. */
|
|
581
523
|
ack(message, allUpTo) {
|
|
582
|
-
|
|
524
|
+
var _a;
|
|
525
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.ack(message, allUpTo);
|
|
583
526
|
}
|
|
584
527
|
/** Send an `ackAll` to the underlying channel. */
|
|
585
528
|
ackAll() {
|
|
586
|
-
|
|
529
|
+
var _a;
|
|
530
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.ackAll();
|
|
587
531
|
}
|
|
588
532
|
/** Send a `nack` to the underlying channel. */
|
|
589
533
|
nack(message, allUpTo, requeue) {
|
|
590
|
-
|
|
534
|
+
var _a;
|
|
535
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.nack(message, allUpTo, requeue);
|
|
591
536
|
}
|
|
592
537
|
/** Send a `nackAll` to the underlying channel. */
|
|
593
538
|
nackAll(requeue) {
|
|
594
|
-
|
|
539
|
+
var _a;
|
|
540
|
+
(_a = this._channel) === null || _a === void 0 ? void 0 : _a.nackAll(requeue);
|
|
595
541
|
}
|
|
596
542
|
/** Send a `purgeQueue` to the underlying channel. */
|
|
597
543
|
async purgeQueue(queue) {
|
|
@@ -621,14 +567,12 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
621
567
|
}
|
|
622
568
|
}
|
|
623
569
|
/** Send a `bindQueue` to the underlying channel. */
|
|
624
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
625
570
|
async bindQueue(queue, source, pattern, args) {
|
|
626
571
|
if (this._channel) {
|
|
627
572
|
await this._channel.bindQueue(queue, source, pattern, args);
|
|
628
573
|
}
|
|
629
574
|
}
|
|
630
575
|
/** Send a `unbindQueue` to the underlying channel. */
|
|
631
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
632
576
|
async unbindQueue(queue, source, pattern, args) {
|
|
633
577
|
if (this._channel) {
|
|
634
578
|
await this._channel.unbindQueue(queue, source, pattern, args);
|
|
@@ -653,7 +597,6 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
653
597
|
}
|
|
654
598
|
}
|
|
655
599
|
/** Send a `bindExchange` to the underlying channel. */
|
|
656
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
657
600
|
async bindExchange(destination, source, pattern, args) {
|
|
658
601
|
if (this._channel) {
|
|
659
602
|
return await this._channel.bindExchange(destination, source, pattern, args);
|
|
@@ -681,7 +624,6 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
681
624
|
}
|
|
682
625
|
}
|
|
683
626
|
/** Send a `unbindExchange` to the underlying channel. */
|
|
684
|
-
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
685
627
|
async unbindExchange(destination, source, pattern, args) {
|
|
686
628
|
if (this._channel) {
|
|
687
629
|
return await this._channel.unbindExchange(destination, source, pattern, args);
|
|
@@ -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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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as amqp from 'amqplib';
|
|
2
|
-
import { EventEmitter } from 'events';
|
|
3
2
|
import { TcpSocketConnectOpts } from 'net';
|
|
4
3
|
import { ConnectionOptions } from 'tls';
|
|
5
4
|
import ChannelWrapper, { CreateChannelOpts } from './ChannelWrapper.js';
|
|
5
|
+
import TypedEventEmitter from 'typed-emitter';
|
|
6
6
|
export type ConnectionUrl = string | amqp.Options.Connect | {
|
|
7
7
|
url: string;
|
|
8
8
|
connectionOptions?: AmqpConnectionOptions;
|
|
9
9
|
};
|
|
10
10
|
export interface ConnectListener {
|
|
11
11
|
(arg: {
|
|
12
|
-
connection: amqp.
|
|
12
|
+
connection: amqp.ChannelModel;
|
|
13
13
|
url: string | amqp.Options.Connect;
|
|
14
14
|
}): void;
|
|
15
15
|
}
|
|
@@ -24,7 +24,7 @@ export type AmqpConnectionOptions = (ConnectionOptions | TcpSocketConnectOpts) &
|
|
|
24
24
|
timeout?: number;
|
|
25
25
|
keepAlive?: boolean;
|
|
26
26
|
keepAliveDelay?: number;
|
|
27
|
-
clientProperties?:
|
|
27
|
+
clientProperties?: unknown;
|
|
28
28
|
credentials?: {
|
|
29
29
|
mechanism: string;
|
|
30
30
|
username: string;
|
|
@@ -54,62 +54,24 @@ export interface AmqpConnectionManagerOptions {
|
|
|
54
54
|
/** Connection options, passed as options to the amqplib.connect() method. */
|
|
55
55
|
connectionOptions?: AmqpConnectionOptions;
|
|
56
56
|
}
|
|
57
|
-
export
|
|
57
|
+
export type ConnectionManagerEvents = {
|
|
58
|
+
connect: ConnectListener;
|
|
59
|
+
connectFailed: ConnectFailedListener;
|
|
60
|
+
blocked: (arg: {
|
|
61
|
+
reason: string;
|
|
62
|
+
}) => void;
|
|
63
|
+
unblocked: () => void;
|
|
64
|
+
disconnect: (arg: {
|
|
65
|
+
err?: Error & {
|
|
66
|
+
code?: number;
|
|
67
|
+
};
|
|
68
|
+
}) => void;
|
|
69
|
+
error: (err: Error) => void;
|
|
70
|
+
};
|
|
71
|
+
export interface IAmqpConnectionManager extends TypedEventEmitter<ConnectionManagerEvents> {
|
|
58
72
|
connectionOptions?: AmqpConnectionOptions;
|
|
59
73
|
heartbeatIntervalInSeconds: number;
|
|
60
74
|
reconnectTimeInSeconds: number;
|
|
61
|
-
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
62
|
-
addListener(event: 'connect', listener: ConnectListener): this;
|
|
63
|
-
addListener(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
64
|
-
addListener(event: 'blocked', listener: (arg: {
|
|
65
|
-
reason: string;
|
|
66
|
-
}) => void): this;
|
|
67
|
-
addListener(event: 'unblocked', listener: () => void): this;
|
|
68
|
-
addListener(event: 'disconnect', listener: (arg: {
|
|
69
|
-
err: Error;
|
|
70
|
-
}) => void): this;
|
|
71
|
-
listeners(eventName: string | symbol): Function[];
|
|
72
|
-
on(event: string, listener: (...args: any[]) => void): this;
|
|
73
|
-
on(event: 'connect', listener: ConnectListener): this;
|
|
74
|
-
on(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
75
|
-
on(event: 'blocked', listener: (arg: {
|
|
76
|
-
reason: string;
|
|
77
|
-
}) => void): this;
|
|
78
|
-
on(event: 'unblocked', listener: () => void): this;
|
|
79
|
-
on(event: 'disconnect', listener: (arg: {
|
|
80
|
-
err: Error;
|
|
81
|
-
}) => void): this;
|
|
82
|
-
once(event: string, listener: (...args: any[]) => void): this;
|
|
83
|
-
once(event: 'connect', listener: ConnectListener): this;
|
|
84
|
-
once(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
85
|
-
once(event: 'blocked', listener: (arg: {
|
|
86
|
-
reason: string;
|
|
87
|
-
}) => void): this;
|
|
88
|
-
once(event: 'unblocked', listener: () => void): this;
|
|
89
|
-
once(event: 'disconnect', listener: (arg: {
|
|
90
|
-
err: Error;
|
|
91
|
-
}) => void): this;
|
|
92
|
-
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
93
|
-
prependListener(event: 'connect', listener: ConnectListener): this;
|
|
94
|
-
prependListener(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
95
|
-
prependListener(event: 'blocked', listener: (arg: {
|
|
96
|
-
reason: string;
|
|
97
|
-
}) => void): this;
|
|
98
|
-
prependListener(event: 'unblocked', listener: () => void): this;
|
|
99
|
-
prependListener(event: 'disconnect', listener: (arg: {
|
|
100
|
-
err: Error;
|
|
101
|
-
}) => void): this;
|
|
102
|
-
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
103
|
-
prependOnceListener(event: 'connect', listener: ConnectListener): this;
|
|
104
|
-
prependOnceListener(event: 'connectFailed', listener: ConnectFailedListener): this;
|
|
105
|
-
prependOnceListener(event: 'blocked', listener: (arg: {
|
|
106
|
-
reason: string;
|
|
107
|
-
}) => void): this;
|
|
108
|
-
prependOnceListener(event: 'unblocked', listener: () => void): this;
|
|
109
|
-
prependOnceListener(event: 'disconnect', listener: (arg: {
|
|
110
|
-
err: Error;
|
|
111
|
-
}) => void): this;
|
|
112
|
-
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
113
75
|
connect(options?: {
|
|
114
76
|
timeout?: number;
|
|
115
77
|
}): Promise<void>;
|
|
@@ -122,7 +84,8 @@ export interface IAmqpConnectionManager extends EventEmitter {
|
|
|
122
84
|
/** Returns the number of registered channels. */
|
|
123
85
|
readonly channelCount: number;
|
|
124
86
|
}
|
|
125
|
-
|
|
87
|
+
declare const AmqpConnectionManager_base: new () => TypedEventEmitter<ConnectionManagerEvents>;
|
|
88
|
+
export default class AmqpConnectionManager extends AmqpConnectionManager_base implements IAmqpConnectionManager {
|
|
126
89
|
private _channels;
|
|
127
90
|
private _currentUrl;
|
|
128
91
|
private _closed;
|
|
@@ -178,3 +141,4 @@ export default class AmqpConnectionManager extends EventEmitter implements IAmqp
|
|
|
178
141
|
get channelCount(): number;
|
|
179
142
|
private _connect;
|
|
180
143
|
}
|
|
144
|
+
export {};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type * as amqplib from 'amqplib';
|
|
2
2
|
import { Options } from 'amqplib';
|
|
3
|
-
import
|
|
4
|
-
import pb from 'promise-breaker';
|
|
3
|
+
import * as pb from 'promise-breaker';
|
|
5
4
|
import { IAmqpConnectionManager } from './AmqpConnectionManager.js';
|
|
5
|
+
import TypedEventEmitter from 'typed-emitter';
|
|
6
6
|
export type Channel = amqplib.ConfirmChannel | amqplib.Channel;
|
|
7
|
-
export type
|
|
7
|
+
export type AsyncSetupFunc = ((channel: Channel) => Promise<void>) | ((channel: amqplib.ConfirmChannel) => Promise<void>);
|
|
8
|
+
export type CbSetupFunc = ((channel: Channel, callback: (error?: Error) => void) => void) | ((channel: amqplib.ConfirmChannel, callback: (error?: Error) => void) => void);
|
|
9
|
+
export type SetupFunc = AsyncSetupFunc | CbSetupFunc;
|
|
8
10
|
export interface CreateChannelOpts {
|
|
9
11
|
/** Name for this channel. Used for debugging. */
|
|
10
12
|
name?: string;
|
|
@@ -40,6 +42,14 @@ export interface Consumer {
|
|
|
40
42
|
onMessage: (msg: amqplib.ConsumeMessage) => void;
|
|
41
43
|
options: ConsumerOptions;
|
|
42
44
|
}
|
|
45
|
+
export type ChannelWrapperEvents = {
|
|
46
|
+
connect: () => void;
|
|
47
|
+
error: (err: unknown, info: {
|
|
48
|
+
name: string | undefined;
|
|
49
|
+
}) => void;
|
|
50
|
+
close: () => void;
|
|
51
|
+
};
|
|
52
|
+
declare const ChannelWrapper_base: new () => TypedEventEmitter<ChannelWrapperEvents>;
|
|
43
53
|
/**
|
|
44
54
|
* Calls to `publish()` or `sendToQueue()` work just like in amqplib, but messages are queued internally and
|
|
45
55
|
* are guaranteed to be delivered. If the underlying connection drops, ChannelWrapper will wait for a new
|
|
@@ -52,7 +62,7 @@ export interface Consumer {
|
|
|
52
62
|
* * `close` - emitted when this channel closes via a call to `close()`
|
|
53
63
|
*
|
|
54
64
|
*/
|
|
55
|
-
export default class ChannelWrapper extends
|
|
65
|
+
export default class ChannelWrapper extends ChannelWrapper_base {
|
|
56
66
|
private _connectionManager;
|
|
57
67
|
private _json;
|
|
58
68
|
/** If we're in the process of creating a channel, this is a Promise which
|
|
@@ -98,36 +108,6 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
98
108
|
*/
|
|
99
109
|
private _publishTimeout?;
|
|
100
110
|
name?: string;
|
|
101
|
-
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
102
|
-
addListener(event: 'connect', listener: () => void): this;
|
|
103
|
-
addListener(event: 'error', listener: (err: Error, info: {
|
|
104
|
-
name: string;
|
|
105
|
-
}) => void): this;
|
|
106
|
-
addListener(event: 'close', listener: () => void): this;
|
|
107
|
-
on(event: string, listener: (...args: any[]) => void): this;
|
|
108
|
-
on(event: 'connect', listener: () => void): this;
|
|
109
|
-
on(event: 'error', listener: (err: Error, info: {
|
|
110
|
-
name: string;
|
|
111
|
-
}) => void): this;
|
|
112
|
-
on(event: 'close', listener: () => void): this;
|
|
113
|
-
once(event: string, listener: (...args: any[]) => void): this;
|
|
114
|
-
once(event: 'connect', listener: () => void): this;
|
|
115
|
-
once(event: 'error', listener: (err: Error, info: {
|
|
116
|
-
name: string;
|
|
117
|
-
}) => void): this;
|
|
118
|
-
once(event: 'close', listener: () => void): this;
|
|
119
|
-
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
120
|
-
prependListener(event: 'connect', listener: () => void): this;
|
|
121
|
-
prependListener(event: 'error', listener: (err: Error, info: {
|
|
122
|
-
name: string;
|
|
123
|
-
}) => void): this;
|
|
124
|
-
prependListener(event: 'close', listener: () => void): this;
|
|
125
|
-
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
126
|
-
prependOnceListener(event: 'connect', listener: () => void): this;
|
|
127
|
-
prependOnceListener(event: 'error', listener: (err: Error, info: {
|
|
128
|
-
name: string;
|
|
129
|
-
}) => void): this;
|
|
130
|
-
prependOnceListener(event: 'close', listener: () => void): this;
|
|
131
111
|
/**
|
|
132
112
|
* Adds a new 'setup handler'.
|
|
133
113
|
*
|
|
@@ -148,7 +128,8 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
148
128
|
* @param [done] - callback.
|
|
149
129
|
* @returns - Resolves when complete.
|
|
150
130
|
*/
|
|
151
|
-
addSetup(setup: SetupFunc
|
|
131
|
+
addSetup(setup: SetupFunc): Promise<void>;
|
|
132
|
+
addSetup(setup: SetupFunc, done: pb.Callback<void>): void;
|
|
152
133
|
/**
|
|
153
134
|
* Remove a setup function added with `addSetup`. If there is currently a
|
|
154
135
|
* connection, `teardown(channel, [cb])` will be run immediately, and the
|
|
@@ -160,7 +141,8 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
160
141
|
* @param {function} [done] - Optional callback.
|
|
161
142
|
* @returns {void | Promise} - Resolves when complete.
|
|
162
143
|
*/
|
|
163
|
-
removeSetup(setup: SetupFunc, teardown?: SetupFunc
|
|
144
|
+
removeSetup(setup: SetupFunc, teardown?: SetupFunc): Promise<void>;
|
|
145
|
+
removeSetup(setup: SetupFunc, teardown: SetupFunc | undefined, done: pb.Callback<void>): void;
|
|
164
146
|
/**
|
|
165
147
|
* Returns a Promise which resolves when this channel next connects.
|
|
166
148
|
* (Mainly here for unit testing...)
|
|
@@ -168,9 +150,12 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
168
150
|
* @param [done] - Optional callback.
|
|
169
151
|
* @returns - Resolves when connected.
|
|
170
152
|
*/
|
|
171
|
-
waitForConnect(
|
|
172
|
-
|
|
173
|
-
|
|
153
|
+
waitForConnect(): Promise<void>;
|
|
154
|
+
waitForConnect(done: pb.Callback<void>): void;
|
|
155
|
+
publish(exchange: string, routingKey: string, content: Buffer | string | unknown, options?: PublishOptions): Promise<boolean>;
|
|
156
|
+
publish(exchange: string, routingKey: string, content: Buffer | string | unknown, options: PublishOptions | undefined, done: pb.Callback<boolean>): void;
|
|
157
|
+
sendToQueue(queue: string, content: Buffer | string | unknown, options?: PublishOptions): Promise<boolean>;
|
|
158
|
+
sendToQueue(queue: string, content: Buffer | string | unknown, options: PublishOptions | undefined, done: pb.Callback<boolean>): void;
|
|
174
159
|
private _enqueueMessage;
|
|
175
160
|
/**
|
|
176
161
|
* Create a new ChannelWrapper.
|
|
@@ -188,6 +173,7 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
188
173
|
*/
|
|
189
174
|
constructor(connectionManager: IAmqpConnectionManager, options?: CreateChannelOpts);
|
|
190
175
|
private _onConnect;
|
|
176
|
+
private _callSetup;
|
|
191
177
|
private _onChannelClose;
|
|
192
178
|
/** Called whenever the channel drains. */
|
|
193
179
|
private _onChannelDrain;
|
|
@@ -228,21 +214,22 @@ export default class ChannelWrapper extends EventEmitter {
|
|
|
228
214
|
/** Send a `assertQueue` to the underlying channel. */
|
|
229
215
|
assertQueue(queue: string, options?: amqplib.Options.AssertQueue): Promise<amqplib.Replies.AssertQueue>;
|
|
230
216
|
/** Send a `bindQueue` to the underlying channel. */
|
|
231
|
-
bindQueue(queue: string, source: string, pattern: string, args?:
|
|
217
|
+
bindQueue(queue: string, source: string, pattern: string, args?: unknown): Promise<void>;
|
|
232
218
|
/** Send a `unbindQueue` to the underlying channel. */
|
|
233
|
-
unbindQueue(queue: string, source: string, pattern: string, args?:
|
|
219
|
+
unbindQueue(queue: string, source: string, pattern: string, args?: unknown): Promise<void>;
|
|
234
220
|
/** Send a `deleteQueue` to the underlying channel. */
|
|
235
221
|
deleteQueue(queue: string, options?: Options.DeleteQueue): Promise<amqplib.Replies.DeleteQueue>;
|
|
236
222
|
/** Send a `assertExchange` to the underlying channel. */
|
|
237
223
|
assertExchange(exchange: string, type: 'direct' | 'topic' | 'headers' | 'fanout' | 'match' | string, options?: Options.AssertExchange): Promise<amqplib.Replies.AssertExchange>;
|
|
238
224
|
/** Send a `bindExchange` to the underlying channel. */
|
|
239
|
-
bindExchange(destination: string, source: string, pattern: string, args?:
|
|
225
|
+
bindExchange(destination: string, source: string, pattern: string, args?: unknown): Promise<amqplib.Replies.Empty>;
|
|
240
226
|
/** Send a `checkExchange` to the underlying channel. */
|
|
241
227
|
checkExchange(exchange: string): Promise<amqplib.Replies.Empty>;
|
|
242
228
|
/** Send a `deleteExchange` to the underlying channel. */
|
|
243
229
|
deleteExchange(exchange: string, options?: Options.DeleteExchange): Promise<amqplib.Replies.Empty>;
|
|
244
230
|
/** Send a `unbindExchange` to the underlying channel. */
|
|
245
|
-
unbindExchange(destination: string, source: string, pattern: string, args?:
|
|
231
|
+
unbindExchange(destination: string, source: string, pattern: string, args?: unknown): Promise<amqplib.Replies.Empty>;
|
|
246
232
|
/** Send a `get` to the underlying channel. */
|
|
247
233
|
get(queue: string, options?: Options.Get): Promise<amqplib.GetMessage | false>;
|
|
248
234
|
}
|
|
235
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "amqp-connection-manager",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
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",
|
|
@@ -17,60 +17,42 @@
|
|
|
17
17
|
"dist/**/*"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"
|
|
20
|
+
"@types/chai-as-promised": "^8.0.2",
|
|
21
|
+
"promise-breaker": "^7.0.0",
|
|
22
|
+
"typed-emitter": "^2.1.0"
|
|
21
23
|
},
|
|
22
24
|
"peerDependencies": {
|
|
23
25
|
"amqplib": "*"
|
|
24
26
|
},
|
|
25
27
|
"devDependencies": {
|
|
26
|
-
"@
|
|
27
|
-
"@
|
|
28
|
-
"@
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"@types/node": "^22.18.6",
|
|
35
|
-
"@types/whatwg-url": "^11.0.0",
|
|
36
|
-
"@typescript-eslint/eslint-plugin": "^5.9.0",
|
|
37
|
-
"@typescript-eslint/parser": "^5.9.0",
|
|
38
|
-
"amqplib": "^0.10.3",
|
|
39
|
-
"chai": "^4.1.2",
|
|
40
|
-
"chai-as-promised": "^7.1.1",
|
|
41
|
-
"chai-jest": "^1.0.2",
|
|
42
|
-
"chai-string": "^1.1.2",
|
|
43
|
-
"cross-env": "^7.0.2",
|
|
44
|
-
"eslint": "^8.6.0",
|
|
45
|
-
"eslint-config-prettier": "^8.3.0",
|
|
46
|
-
"eslint-plugin-promise": "^6.0.0",
|
|
47
|
-
"greenkeeper-lockfile": "^1.14.0",
|
|
48
|
-
"husky": "^8.0.1",
|
|
28
|
+
"@eslint/js": "^10.0.1",
|
|
29
|
+
"@types/node": "^26.6.5",
|
|
30
|
+
"@vitest/coverage-v8": "^5.0.5",
|
|
31
|
+
"amqplib": "^2.2.0",
|
|
32
|
+
"chai": "^6.3.0",
|
|
33
|
+
"chai-as-promised": "^8.0.2",
|
|
34
|
+
"eslint": "^10.13.0",
|
|
35
|
+
"husky": "^9.1.7",
|
|
49
36
|
"istanbul": "^0.4.0",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"lint-staged": "^13.0.3",
|
|
53
|
-
"prettier": "^2.3.2",
|
|
54
|
-
"pretty-quick": "^3.1.1",
|
|
37
|
+
"lint-staged": "^17.6.0",
|
|
38
|
+
"prettier": "^3.9.10",
|
|
55
39
|
"promise-tools": "^2.1.0",
|
|
56
|
-
"semantic-release": "^21.0.2",
|
|
57
|
-
"ts-jest": "^29.0.3",
|
|
58
40
|
"ts-node": "^10.2.1",
|
|
59
|
-
"typescript": "^
|
|
41
|
+
"typescript": "^6.0.3",
|
|
42
|
+
"typescript-eslint": "^8.71.2",
|
|
43
|
+
"vitest": "^5.0.5"
|
|
60
44
|
},
|
|
61
45
|
"engines": {
|
|
62
|
-
"node": ">=
|
|
63
|
-
"npm": ">5.0.0"
|
|
46
|
+
"node": ">=22.0.0"
|
|
64
47
|
},
|
|
65
48
|
"scripts": {
|
|
66
|
-
"prepare": "husky
|
|
49
|
+
"prepare": "husky && npm run build",
|
|
67
50
|
"prepublishOnly": "npm run build",
|
|
68
|
-
"build": "tsc && tsc -p tsconfig.cjs.json && tsc -p tsconfig.types.json && ./bin/build-types.sh",
|
|
51
|
+
"build": "tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && tsc -p tsconfig.types.json && ./bin/build-types.sh",
|
|
69
52
|
"clean": "rm -rf dist types coverage",
|
|
70
53
|
"test": "npm run test:lint && npm run test:unittest",
|
|
71
|
-
"test:unittest": "tsc -p test &&
|
|
72
|
-
"test:lint": "eslint --ext .ts src test"
|
|
73
|
-
"semantic-release": "semantic-release"
|
|
54
|
+
"test:unittest": "tsc -p test && vitest run --coverage",
|
|
55
|
+
"test:lint": "eslint --ext .ts src test"
|
|
74
56
|
},
|
|
75
57
|
"repository": {
|
|
76
58
|
"type": "git",
|
|
@@ -78,7 +60,8 @@
|
|
|
78
60
|
},
|
|
79
61
|
"lint-staged": {
|
|
80
62
|
"**/*.ts": [
|
|
81
|
-
"eslint --ext .ts"
|
|
63
|
+
"eslint --ext .ts",
|
|
64
|
+
"prettier --write"
|
|
82
65
|
]
|
|
83
66
|
},
|
|
84
67
|
"keywords": [
|