@webda/amqp 4.0.0-beta.7 → 4.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/pubsub.service.d.ts +8 -3
- package/lib/pubsub.service.d.ts.map +1 -1
- package/lib/pubsub.service.js +18 -8
- package/lib/pubsub.service.js.map +1 -1
- package/lib/queue.service.d.ts +7 -2
- package/lib/queue.service.d.ts.map +1 -1
- package/lib/queue.service.js +17 -7
- package/lib/queue.service.js.map +1 -1
- package/package.json +5 -5
- package/webda.module.json +2 -2
package/lib/pubsub.service.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare class AMQPPubSubParameters extends ServiceParameters {
|
|
|
20
20
|
* Queue name used to subscribe, empty to let the broker generate one
|
|
21
21
|
* @default ""
|
|
22
22
|
*/
|
|
23
|
-
subscription
|
|
23
|
+
subscription: string;
|
|
24
24
|
exchange?: {
|
|
25
25
|
/**
|
|
26
26
|
* @default fanout
|
|
@@ -67,9 +67,14 @@ export declare class AMQPPubSubParameters extends ServiceParameters {
|
|
|
67
67
|
* @WebdaModda AMQPPubSub
|
|
68
68
|
*/
|
|
69
69
|
export default class AMQPPubSubService<T = any, K extends AMQPPubSubParameters = AMQPPubSubParameters> extends PubSubService<T, K> {
|
|
70
|
-
channel
|
|
71
|
-
conn
|
|
70
|
+
channel?: amqplib.Channel;
|
|
71
|
+
conn?: amqplib.ChannelModel;
|
|
72
72
|
exchange: amqplib.Replies.AssertExchange;
|
|
73
|
+
/**
|
|
74
|
+
* @returns the active AMQP channel
|
|
75
|
+
* @throws CodeError when the service is not connected
|
|
76
|
+
*/
|
|
77
|
+
protected getChannel(): amqplib.Channel;
|
|
73
78
|
/**
|
|
74
79
|
* @override
|
|
75
80
|
* @param event - the event to publish
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.service.d.ts","sourceRoot":"","sources":["../src/pubsub.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"pubsub.service.d.ts","sourceRoot":"","sources":["../src/pubsub.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAa,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD;;;;;OAKG;IACH,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB;;;WAGG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B;;WAEG;QACH,SAAS,CAAC,EAAE,GAAG,CAAC;KACjB,CAAC;IAEF;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAM3B;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB,CACpC,CAAC,GAAG,GAAG,EACP,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,CACrD,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;IAEzC;;;OAGG;IACH,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAKtC;IAED;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAY1B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAU1B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5B;IAED;;;;;;;OAOG;IACH,OAAO,CACL,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACrC,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,EAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,iBAAiB,CAqCnB;CACF;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/lib/pubsub.service.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PubSubService, ServiceParameters, SecretString } from "@webda/core";
|
|
1
|
+
import { PubSubService, ServiceParameters, SecretString, WebdaError } from "@webda/core";
|
|
2
2
|
import { CancelablePromise, JSONUtils } from "@webda/utils";
|
|
3
3
|
import * as amqplib from "amqplib";
|
|
4
4
|
/**
|
|
@@ -26,6 +26,16 @@ export class AMQPPubSubParameters extends ServiceParameters {
|
|
|
26
26
|
* @WebdaModda AMQPPubSub
|
|
27
27
|
*/
|
|
28
28
|
export default class AMQPPubSubService extends PubSubService {
|
|
29
|
+
/**
|
|
30
|
+
* @returns the active AMQP channel
|
|
31
|
+
* @throws CodeError when the service is not connected
|
|
32
|
+
*/
|
|
33
|
+
getChannel() {
|
|
34
|
+
if (!this.channel) {
|
|
35
|
+
throw new WebdaError.CodeError("AMQP_NOT_CONNECTED", "AMQP service is not connected");
|
|
36
|
+
}
|
|
37
|
+
return this.channel;
|
|
38
|
+
}
|
|
29
39
|
/**
|
|
30
40
|
* @override
|
|
31
41
|
* @param event - the event to publish
|
|
@@ -33,7 +43,7 @@ export default class AMQPPubSubService extends PubSubService {
|
|
|
33
43
|
*/
|
|
34
44
|
async sendMessage(event, routingKey = "") {
|
|
35
45
|
this.metrics.messages_sent.inc();
|
|
36
|
-
this.
|
|
46
|
+
this.getChannel().publish(this.parameters.channel, routingKey, Buffer.from(JSONUtils.stringify(event)));
|
|
37
47
|
}
|
|
38
48
|
/**
|
|
39
49
|
* @override
|
|
@@ -45,7 +55,7 @@ export default class AMQPPubSubService extends PubSubService {
|
|
|
45
55
|
this.channel = await this.conn.createChannel();
|
|
46
56
|
const params = { ...this.parameters.exchange };
|
|
47
57
|
delete params.type;
|
|
48
|
-
this.exchange = await this.
|
|
58
|
+
this.exchange = await this.getChannel().assertExchange(this.parameters.channel, this.parameters.exchange?.type || "fanout", params);
|
|
49
59
|
return this;
|
|
50
60
|
}
|
|
51
61
|
/**
|
|
@@ -68,7 +78,7 @@ export default class AMQPPubSubService extends PubSubService {
|
|
|
68
78
|
* @returns the number of messages in the subscription queue
|
|
69
79
|
*/
|
|
70
80
|
async size() {
|
|
71
|
-
return (await this.
|
|
81
|
+
return (await this.getChannel().assertQueue(this.parameters.subscription)).messageCount;
|
|
72
82
|
}
|
|
73
83
|
/**
|
|
74
84
|
* Work a queue calling the callback with every Event received
|
|
@@ -81,13 +91,13 @@ export default class AMQPPubSubService extends PubSubService {
|
|
|
81
91
|
consume(callback, eventPrototype, onBind) {
|
|
82
92
|
let consumerTag;
|
|
83
93
|
return new CancelablePromise(async (_resolve, reject) => {
|
|
84
|
-
const queue = await this.
|
|
94
|
+
const queue = await this.getChannel().assertQueue(this.parameters.subscription, {
|
|
85
95
|
exclusive: true,
|
|
86
96
|
durable: false,
|
|
87
97
|
autoDelete: true
|
|
88
98
|
});
|
|
89
|
-
await this.
|
|
90
|
-
consumerTag = (await this.
|
|
99
|
+
await this.getChannel().bindQueue(queue.queue, this.parameters.channel, "*");
|
|
100
|
+
consumerTag = (await this.getChannel().consume(queue.queue, async (msg) => {
|
|
91
101
|
if (msg === null) {
|
|
92
102
|
reject("Cancelled by server");
|
|
93
103
|
return;
|
|
@@ -96,7 +106,7 @@ export default class AMQPPubSubService extends PubSubService {
|
|
|
96
106
|
const end = this.metrics.processing_duration.startTimer();
|
|
97
107
|
try {
|
|
98
108
|
await callback(this.unserialize(msg?.content.toString() || "", eventPrototype));
|
|
99
|
-
this.
|
|
109
|
+
this.getChannel().ack(msg);
|
|
100
110
|
}
|
|
101
111
|
catch (err) {
|
|
102
112
|
this.metrics.errors.inc();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.service.js","sourceRoot":"","sources":["../src/pubsub.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"pubsub.service.js","sourceRoot":"","sources":["../src/pubsub.service.ts"],"names":[],"mappings":"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"}
|
package/lib/queue.service.d.ts
CHANGED
|
@@ -26,8 +26,13 @@ export declare class AMQPQueueParameters extends QueueParameters {
|
|
|
26
26
|
* @WebdaModda
|
|
27
27
|
*/
|
|
28
28
|
export default class AMQPQueue<T = any, K extends AMQPQueueParameters = AMQPQueueParameters> extends Queue<T, K> {
|
|
29
|
-
channel
|
|
30
|
-
conn
|
|
29
|
+
channel?: amqplib.Channel;
|
|
30
|
+
conn?: amqplib.ChannelModel;
|
|
31
|
+
/**
|
|
32
|
+
* @returns the active AMQP channel
|
|
33
|
+
* @throws CodeError when the service is not connected
|
|
34
|
+
*/
|
|
35
|
+
protected getChannel(): amqplib.Channel;
|
|
31
36
|
/**
|
|
32
37
|
* @override
|
|
33
38
|
* @returns this service
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.service.d.ts","sourceRoot":"","sources":["../src/queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"queue.service.d.ts","sourceRoot":"","sources":["../src/queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAE/F,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD;;;;;OAKG;IACH,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CAAE,SAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAKtC;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAM1B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAU1B;IAED;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzC;IAED;;;;OAIG;IACG,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAWzE;IAED;;;OAGG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7C;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5B;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE7B;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/lib/queue.service.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Queue, QueueParameters, SecretString } from "@webda/core";
|
|
1
|
+
import { Queue, QueueParameters, SecretString, WebdaError } from "@webda/core";
|
|
2
2
|
import { JSONUtils } from "@webda/utils";
|
|
3
3
|
import * as amqplib from "amqplib";
|
|
4
4
|
/**
|
|
@@ -12,6 +12,16 @@ export class AMQPQueueParameters extends QueueParameters {
|
|
|
12
12
|
* @WebdaModda
|
|
13
13
|
*/
|
|
14
14
|
export default class AMQPQueue extends Queue {
|
|
15
|
+
/**
|
|
16
|
+
* @returns the active AMQP channel
|
|
17
|
+
* @throws CodeError when the service is not connected
|
|
18
|
+
*/
|
|
19
|
+
getChannel() {
|
|
20
|
+
if (!this.channel) {
|
|
21
|
+
throw new WebdaError.CodeError("AMQP_NOT_CONNECTED", "AMQP service is not connected");
|
|
22
|
+
}
|
|
23
|
+
return this.channel;
|
|
24
|
+
}
|
|
15
25
|
/**
|
|
16
26
|
* @override
|
|
17
27
|
* @returns this service
|
|
@@ -20,7 +30,7 @@ export default class AMQPQueue extends Queue {
|
|
|
20
30
|
await super.init();
|
|
21
31
|
this.conn = await amqplib.connect(SecretString.unwrap(this.parameters.url));
|
|
22
32
|
this.channel = await this.conn.createChannel();
|
|
23
|
-
await this.
|
|
33
|
+
await this.getChannel().assertQueue(this.parameters.queue, this.parameters.queueOptions);
|
|
24
34
|
return this;
|
|
25
35
|
}
|
|
26
36
|
/**
|
|
@@ -44,7 +54,7 @@ export default class AMQPQueue extends Queue {
|
|
|
44
54
|
*/
|
|
45
55
|
async sendMessage(event) {
|
|
46
56
|
this.metrics.messages_sent.inc();
|
|
47
|
-
this.
|
|
57
|
+
this.getChannel().sendToQueue(this.parameters.queue, Buffer.from(JSONUtils.stringify(event)));
|
|
48
58
|
}
|
|
49
59
|
/**
|
|
50
60
|
* @override
|
|
@@ -52,7 +62,7 @@ export default class AMQPQueue extends Queue {
|
|
|
52
62
|
* @returns the received message if any
|
|
53
63
|
*/
|
|
54
64
|
async receiveMessage(proto) {
|
|
55
|
-
const msg = await this.
|
|
65
|
+
const msg = await this.getChannel().get(this.parameters.queue);
|
|
56
66
|
if (msg === false) {
|
|
57
67
|
return [];
|
|
58
68
|
}
|
|
@@ -68,20 +78,20 @@ export default class AMQPQueue extends Queue {
|
|
|
68
78
|
* @param id - the receipt handle returned by {@link receiveMessage}
|
|
69
79
|
*/
|
|
70
80
|
async deleteMessage(id) {
|
|
71
|
-
this.
|
|
81
|
+
this.getChannel().ack(id);
|
|
72
82
|
}
|
|
73
83
|
/**
|
|
74
84
|
* @override
|
|
75
85
|
* @returns the number of messages ready in the queue
|
|
76
86
|
*/
|
|
77
87
|
async size() {
|
|
78
|
-
return (await this.
|
|
88
|
+
return (await this.getChannel().assertQueue(this.parameters.queue)).messageCount;
|
|
79
89
|
}
|
|
80
90
|
/**
|
|
81
91
|
* Purge the queue, used by tests
|
|
82
92
|
*/
|
|
83
93
|
async __clean() {
|
|
84
|
-
await this.
|
|
94
|
+
await this.getChannel().purgeQueue(this.parameters.queue);
|
|
85
95
|
}
|
|
86
96
|
}
|
|
87
97
|
export { AMQPQueue };
|
package/lib/queue.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.service.js","sourceRoot":"","sources":["../src/queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.service.js","sourceRoot":"","sources":["../src/queue.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/amqp",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.9",
|
|
4
4
|
"description": "Implements AMQP on webda",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"activemq",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"typings": "lib/index.d.ts",
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"amqplib": "^0.10.9",
|
|
19
|
-
"@webda/
|
|
20
|
-
"@webda/
|
|
19
|
+
"@webda/utils": "4.0.0-beta.9",
|
|
20
|
+
"@webda/core": "4.0.0-beta.9"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"lib",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"typescript": "7.1.0-dev.20260929.1",
|
|
41
41
|
"vite": "^6.0.0",
|
|
42
42
|
"vitest": "^4.1.2",
|
|
43
|
-
"@webda/
|
|
44
|
-
"@webda/
|
|
43
|
+
"@webda/test": "4.0.0-beta.7",
|
|
44
|
+
"@webda/compiler": "^4.0.0-beta.9"
|
|
45
45
|
},
|
|
46
46
|
"nx": {
|
|
47
47
|
"implicitDependencies": [
|
package/webda.module.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
10
10
|
"additionalProperties": false,
|
|
11
11
|
"definitions": {
|
|
12
|
-
"exchange": {
|
|
12
|
+
"exchange#2": {
|
|
13
13
|
"additionalProperties": false,
|
|
14
14
|
"properties": {
|
|
15
15
|
"alternateExchange": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"type": "string"
|
|
50
50
|
},
|
|
51
51
|
"exchange": {
|
|
52
|
-
"$ref": "#/definitions/exchange"
|
|
52
|
+
"$ref": "#/definitions/exchange%232"
|
|
53
53
|
},
|
|
54
54
|
"subscription": {
|
|
55
55
|
"default": "",
|