@onify/fake-amqplib 3.5.0 → 3.6.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/index.d.ts +90 -76
- package/index.js +28 -3
- package/main.cjs +30 -3
- package/package.json +3 -3
package/index.d.ts
CHANGED
|
@@ -1,90 +1,104 @@
|
|
|
1
|
-
/// <reference types="amqplib" />
|
|
2
1
|
/// <reference types="node" />
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
import {
|
|
3
|
+
declare module '@onify/fake-amqplib' {
|
|
4
|
+
import { Options, Channel, ChannelModel, Replies, RecoveryOptions, SocketOptions } from 'amqplib';
|
|
5
|
+
import { Broker } from 'smqp';
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
/** Channel name and identifier, for faking purposes */
|
|
9
|
-
_channelName: string;
|
|
10
|
-
_broker: Broker;
|
|
11
|
-
_version: number;
|
|
12
|
-
readonly _closed: boolean;
|
|
13
|
-
}
|
|
7
|
+
export { RecoveryOptions, SocketOptions };
|
|
14
8
|
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
export interface FakeAmqplibChannel extends Channel {
|
|
10
|
+
/** Channel name and identifier, for faking purposes */
|
|
11
|
+
_channelName: string;
|
|
12
|
+
_broker: Broker;
|
|
13
|
+
_version: number;
|
|
14
|
+
readonly _closed: boolean;
|
|
15
|
+
}
|
|
18
16
|
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
routingKey: string,
|
|
23
|
-
content: Buffer,
|
|
24
|
-
options?: Options.Publish,
|
|
25
|
-
callback?: (err: Error | null, ok: Replies.Empty) => void
|
|
26
|
-
): boolean;
|
|
27
|
-
sendToQueue(
|
|
28
|
-
queue: string,
|
|
29
|
-
content: Buffer,
|
|
30
|
-
options?: Options.Publish,
|
|
31
|
-
callback?: (err: Error | null, ok: Replies.Empty) => void
|
|
32
|
-
): boolean;
|
|
33
|
-
waitForConfirms(callback?: (err: Error | null) => void): Promise<void>;
|
|
34
|
-
}
|
|
17
|
+
export const FakeAmqplibChannel: {
|
|
18
|
+
new (broker: Broker, connection: FakeAmqplibConnection): FakeAmqplibChannel;
|
|
19
|
+
};
|
|
35
20
|
|
|
36
|
-
export
|
|
37
|
-
|
|
38
|
-
|
|
21
|
+
export interface FakeAmqplibConfirmChannel extends FakeAmqplibChannel {
|
|
22
|
+
publish(
|
|
23
|
+
exchange: string,
|
|
24
|
+
routingKey: string,
|
|
25
|
+
content: Buffer,
|
|
26
|
+
options?: Options.Publish,
|
|
27
|
+
callback?: (err: Error | null, ok: Replies.Empty) => void
|
|
28
|
+
): boolean;
|
|
29
|
+
sendToQueue(
|
|
30
|
+
queue: string,
|
|
31
|
+
content: Buffer,
|
|
32
|
+
options?: Options.Publish,
|
|
33
|
+
callback?: (err: Error | null, ok: Replies.Empty) => void
|
|
34
|
+
): boolean;
|
|
35
|
+
waitForConfirms(callback?: (err: Error | null) => void): Promise<void>;
|
|
36
|
+
}
|
|
39
37
|
|
|
40
|
-
export
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/** Connection identifier, for faking purposes */
|
|
44
|
-
_id: string;
|
|
45
|
-
_broker: Broker;
|
|
46
|
-
_version: number;
|
|
47
|
-
readonly _closed: boolean;
|
|
48
|
-
}
|
|
38
|
+
export const FakeAmqplibConfirmChannel: {
|
|
39
|
+
new (broker: Broker, connection: FakeAmqplibConnection): FakeAmqplibConfirmChannel;
|
|
40
|
+
};
|
|
49
41
|
|
|
50
|
-
export
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
export interface FakeAmqplibConnection extends ChannelModel {
|
|
43
|
+
_channels: FakeAmqplibChannel[];
|
|
44
|
+
_url: URL;
|
|
45
|
+
/** Connection identifier, for faking purposes */
|
|
46
|
+
_id: string;
|
|
47
|
+
_broker: Broker;
|
|
48
|
+
_version: number;
|
|
49
|
+
readonly _closed: boolean;
|
|
50
|
+
}
|
|
53
51
|
|
|
54
|
-
export
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
keepAliveDelay?: number;
|
|
58
|
-
noDelay?: boolean;
|
|
59
|
-
port?: number;
|
|
60
|
-
serverName?: string;
|
|
61
|
-
timeout?: number;
|
|
62
|
-
[x: string]: any;
|
|
63
|
-
}
|
|
52
|
+
export const FakeAmqplibConnection: {
|
|
53
|
+
new (broker: Broker, version: number, amqpUrl: string, options?: SocketOptions): FakeAmqplibConnection;
|
|
54
|
+
};
|
|
64
55
|
|
|
65
|
-
export type ConnectCallback = (err: Error | null, connection: FakeAmqplibConnection) => void;
|
|
56
|
+
export type ConnectCallback = (err: Error | null, connection: FakeAmqplibConnection) => void;
|
|
66
57
|
|
|
67
|
-
export interface FakeAmqplib {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
58
|
+
export interface FakeAmqplib {
|
|
59
|
+
version: number;
|
|
60
|
+
connections: FakeAmqplibConnection[];
|
|
61
|
+
connect(url: string | Options.Connect, socketOptions?: SocketOptions): Promise<FakeAmqplibConnection>;
|
|
62
|
+
connect(url: string | Options.Connect, socketOptions: SocketOptions, callback: ConnectCallback): void;
|
|
63
|
+
connect(url: string | Options.Connect, callback: ConnectCallback): void;
|
|
64
|
+
connectSync(url: string | Options.Connect, socketOptions?: SocketOptions): FakeAmqplibConnection;
|
|
65
|
+
connectWithRecoveryPromise(
|
|
66
|
+
url: string | Options.Connect,
|
|
67
|
+
recoveryOptions?: RecoveryOptions,
|
|
68
|
+
socketOptions?: SocketOptions
|
|
69
|
+
): Promise<FakeAmqplibConnection>;
|
|
70
|
+
connectWithRecoveryCallback(
|
|
71
|
+
url: string | Options.Connect,
|
|
72
|
+
recoveryOptions: RecoveryOptions,
|
|
73
|
+
socketOptions: SocketOptions,
|
|
74
|
+
callback: ConnectCallback
|
|
75
|
+
): void;
|
|
76
|
+
resetMock(): void;
|
|
77
|
+
setVersion(minorVersion: number | string): void;
|
|
78
|
+
}
|
|
77
79
|
|
|
78
|
-
export const FakeAmqplib: {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
};
|
|
80
|
+
export const FakeAmqplib: {
|
|
81
|
+
new (minorVersion?: number | string): FakeAmqplib;
|
|
82
|
+
(minorVersion?: number | string): FakeAmqplib;
|
|
83
|
+
};
|
|
82
84
|
|
|
83
|
-
export const connections: FakeAmqplibConnection[];
|
|
85
|
+
export const connections: FakeAmqplibConnection[];
|
|
84
86
|
|
|
85
|
-
export function connect(url: string | Options.Connect, socketOptions?: SocketOptions): Promise<FakeAmqplibConnection>;
|
|
86
|
-
export function connect(url: string | Options.Connect, socketOptions: SocketOptions, callback: ConnectCallback): void;
|
|
87
|
-
export function connect(url: string | Options.Connect, callback: ConnectCallback): void;
|
|
88
|
-
export function connectSync(url: string | Options.Connect, socketOptions?: SocketOptions): FakeAmqplibConnection;
|
|
89
|
-
export function
|
|
90
|
-
|
|
87
|
+
export function connect(url: string | Options.Connect, socketOptions?: SocketOptions): Promise<FakeAmqplibConnection>;
|
|
88
|
+
export function connect(url: string | Options.Connect, socketOptions: SocketOptions, callback: ConnectCallback): void;
|
|
89
|
+
export function connect(url: string | Options.Connect, callback: ConnectCallback): void;
|
|
90
|
+
export function connectSync(url: string | Options.Connect, socketOptions?: SocketOptions): FakeAmqplibConnection;
|
|
91
|
+
export function connectWithRecoveryPromise(
|
|
92
|
+
url: string | Options.Connect,
|
|
93
|
+
recoveryOptions?: RecoveryOptions,
|
|
94
|
+
socketOptions?: SocketOptions
|
|
95
|
+
): Promise<FakeAmqplibConnection>;
|
|
96
|
+
export function connectWithRecoveryCallback(
|
|
97
|
+
url: string | Options.Connect,
|
|
98
|
+
recoveryOptions: RecoveryOptions,
|
|
99
|
+
socketOptions: SocketOptions,
|
|
100
|
+
callback: ConnectCallback
|
|
101
|
+
): void;
|
|
102
|
+
export function resetMock(): void;
|
|
103
|
+
export function setVersion(minorVersion: number | string): void;
|
|
104
|
+
}
|
package/index.js
CHANGED
|
@@ -437,10 +437,12 @@ export class FakeAmqplibChannel extends EventEmitter {
|
|
|
437
437
|
return this._callBroker(recoverChannel, ...args);
|
|
438
438
|
|
|
439
439
|
function recoverChannel() {
|
|
440
|
+
const snapshot = [];
|
|
440
441
|
let msg;
|
|
441
|
-
while ((msg = channelQ.get()))
|
|
442
|
-
|
|
443
|
-
|
|
442
|
+
while ((msg = channelQ.get())) snapshot.push(msg);
|
|
443
|
+
for (const m of snapshot) {
|
|
444
|
+
m.content[kSmqp].reject(true);
|
|
445
|
+
m.reject(false);
|
|
444
446
|
}
|
|
445
447
|
return {};
|
|
446
448
|
}
|
|
@@ -674,6 +676,8 @@ export function FakeAmqplib(minorVersion = '3.5') {
|
|
|
674
676
|
|
|
675
677
|
this.connect = this.connect.bind(this);
|
|
676
678
|
this.connectSync = this.connectSync.bind(this);
|
|
679
|
+
this.connectWithRecoveryPromise = this.connectWithRecoveryPromise.bind(this);
|
|
680
|
+
this.connectWithRecoveryCallback = this.connectWithRecoveryCallback.bind(this);
|
|
677
681
|
this.resetMock = this.resetMock.bind(this);
|
|
678
682
|
this.setVersion = this.setVersion.bind(this);
|
|
679
683
|
}
|
|
@@ -683,6 +687,19 @@ FakeAmqplib.prototype.connect = function fakeConnect(amqpUrl, ...args) {
|
|
|
683
687
|
return resolveOrCallback(args.slice(-1)[0], null, connection);
|
|
684
688
|
};
|
|
685
689
|
|
|
690
|
+
FakeAmqplib.prototype.connectWithRecoveryPromise = function fakeConnectWithRecoveryPromise(amqpUrl, recoveryOptions, socketOptions) {
|
|
691
|
+
return this.connect(amqpUrl, socketOptions);
|
|
692
|
+
};
|
|
693
|
+
|
|
694
|
+
FakeAmqplib.prototype.connectWithRecoveryCallback = function fakeConnectWithRecoveryCallback(
|
|
695
|
+
amqpUrl,
|
|
696
|
+
recoveryOptions,
|
|
697
|
+
socketOptions,
|
|
698
|
+
callback
|
|
699
|
+
) {
|
|
700
|
+
return this.connect(amqpUrl, socketOptions, callback);
|
|
701
|
+
};
|
|
702
|
+
|
|
686
703
|
FakeAmqplib.prototype.connectSync = function fakeConnectSync(amqpUrl, ...args) {
|
|
687
704
|
const { _broker } = this.connections.find((conn) => compareConnectionString(conn._url, amqpUrl)) || {};
|
|
688
705
|
const broker = _broker || new AmqplibBroker(this);
|
|
@@ -828,6 +845,14 @@ export function connectSync(amqpUrl, ...args) {
|
|
|
828
845
|
return defaultFake.connectSync(amqpUrl, ...args);
|
|
829
846
|
}
|
|
830
847
|
|
|
848
|
+
export function connectWithRecoveryPromise(amqpUrl, recoveryOptions, socketOptions) {
|
|
849
|
+
return defaultFake.connectWithRecoveryPromise(amqpUrl, recoveryOptions, socketOptions);
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
export function connectWithRecoveryCallback(amqpUrl, recoveryOptions, socketOptions, callback) {
|
|
853
|
+
return defaultFake.connectWithRecoveryCallback(amqpUrl, recoveryOptions, socketOptions, callback);
|
|
854
|
+
}
|
|
855
|
+
|
|
831
856
|
export function resetMock() {
|
|
832
857
|
return defaultFake.resetMock();
|
|
833
858
|
}
|
package/main.cjs
CHANGED
|
@@ -439,10 +439,12 @@ class FakeAmqplibChannel extends events.EventEmitter {
|
|
|
439
439
|
return this._callBroker(recoverChannel, ...args);
|
|
440
440
|
|
|
441
441
|
function recoverChannel() {
|
|
442
|
+
const snapshot = [];
|
|
442
443
|
let msg;
|
|
443
|
-
while ((msg = channelQ.get()))
|
|
444
|
-
|
|
445
|
-
|
|
444
|
+
while ((msg = channelQ.get())) snapshot.push(msg);
|
|
445
|
+
for (const m of snapshot) {
|
|
446
|
+
m.content[kSmqp].reject(true);
|
|
447
|
+
m.reject(false);
|
|
446
448
|
}
|
|
447
449
|
return {};
|
|
448
450
|
}
|
|
@@ -676,6 +678,8 @@ function FakeAmqplib(minorVersion = '3.5') {
|
|
|
676
678
|
|
|
677
679
|
this.connect = this.connect.bind(this);
|
|
678
680
|
this.connectSync = this.connectSync.bind(this);
|
|
681
|
+
this.connectWithRecoveryPromise = this.connectWithRecoveryPromise.bind(this);
|
|
682
|
+
this.connectWithRecoveryCallback = this.connectWithRecoveryCallback.bind(this);
|
|
679
683
|
this.resetMock = this.resetMock.bind(this);
|
|
680
684
|
this.setVersion = this.setVersion.bind(this);
|
|
681
685
|
}
|
|
@@ -685,6 +689,19 @@ FakeAmqplib.prototype.connect = function fakeConnect(amqpUrl, ...args) {
|
|
|
685
689
|
return resolveOrCallback(args.slice(-1)[0], null, connection);
|
|
686
690
|
};
|
|
687
691
|
|
|
692
|
+
FakeAmqplib.prototype.connectWithRecoveryPromise = function fakeConnectWithRecoveryPromise(amqpUrl, recoveryOptions, socketOptions) {
|
|
693
|
+
return this.connect(amqpUrl, socketOptions);
|
|
694
|
+
};
|
|
695
|
+
|
|
696
|
+
FakeAmqplib.prototype.connectWithRecoveryCallback = function fakeConnectWithRecoveryCallback(
|
|
697
|
+
amqpUrl,
|
|
698
|
+
recoveryOptions,
|
|
699
|
+
socketOptions,
|
|
700
|
+
callback
|
|
701
|
+
) {
|
|
702
|
+
return this.connect(amqpUrl, socketOptions, callback);
|
|
703
|
+
};
|
|
704
|
+
|
|
688
705
|
FakeAmqplib.prototype.connectSync = function fakeConnectSync(amqpUrl, ...args) {
|
|
689
706
|
const { _broker } = this.connections.find((conn) => compareConnectionString(conn._url, amqpUrl)) || {};
|
|
690
707
|
const broker = _broker || new AmqplibBroker(this);
|
|
@@ -830,6 +847,14 @@ function connectSync(amqpUrl, ...args) {
|
|
|
830
847
|
return defaultFake.connectSync(amqpUrl, ...args);
|
|
831
848
|
}
|
|
832
849
|
|
|
850
|
+
function connectWithRecoveryPromise(amqpUrl, recoveryOptions, socketOptions) {
|
|
851
|
+
return defaultFake.connectWithRecoveryPromise(amqpUrl, recoveryOptions, socketOptions);
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
function connectWithRecoveryCallback(amqpUrl, recoveryOptions, socketOptions, callback) {
|
|
855
|
+
return defaultFake.connectWithRecoveryCallback(amqpUrl, recoveryOptions, socketOptions, callback);
|
|
856
|
+
}
|
|
857
|
+
|
|
833
858
|
function resetMock() {
|
|
834
859
|
return defaultFake.resetMock();
|
|
835
860
|
}
|
|
@@ -844,6 +869,8 @@ exports.FakeAmqplibConfirmChannel = FakeAmqplibConfirmChannel;
|
|
|
844
869
|
exports.FakeAmqplibConnection = FakeAmqplibConnection;
|
|
845
870
|
exports.connect = connect;
|
|
846
871
|
exports.connectSync = connectSync;
|
|
872
|
+
exports.connectWithRecoveryCallback = connectWithRecoveryCallback;
|
|
873
|
+
exports.connectWithRecoveryPromise = connectWithRecoveryPromise;
|
|
847
874
|
exports.connections = connections;
|
|
848
875
|
exports.resetMock = resetMock;
|
|
849
876
|
exports.setVersion = setVersion;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onify/fake-amqplib",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Fake amqplib",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@eslint/js": "^10.0.1",
|
|
42
42
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
43
|
-
"@types/
|
|
44
|
-
"amqplib": "^1.0
|
|
43
|
+
"@types/node": "^20.19.40",
|
|
44
|
+
"amqplib": "^1.2.0",
|
|
45
45
|
"c8": "^11.0.0",
|
|
46
46
|
"chai": "^6.2.1",
|
|
47
47
|
"eslint": "^10.3.0",
|