@only-chat/rabbitmq-queue 0.2.0-beta.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,2 +1,23 @@
1
1
  # only-chat
2
- This is a RabbitMQ queue implementation for only-chat.
2
+ This is a RabbitMQ queue implementation for only-chat.
3
+
4
+ # Get started
5
+
6
+ ```shell
7
+ npm i --save @only-chat/rabbitmq-queue
8
+ ```
9
+
10
+ ```typescript
11
+ import { initialize as initializeQueue } from '@only-chat/rabbitmq-queue'
12
+ import { initialize as initializeClient, WsClient } from '@only-chat/client'
13
+
14
+ ...
15
+
16
+ const queue = await initializeQueue(queueConfig)
17
+
18
+ initializeClient({queue, store, userStore, instanceId}, logger)
19
+
20
+ const ws = new WebSocketServer({ host, port })
21
+
22
+ ws.on('connection', s => new WsClient(s))
23
+ ```
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import amqp from 'amqplib';
2
- const acceptTypes = ['connected', 'disconnected', 'joined', 'left', 'closed', 'deleted', 'updated', 'message-updated', 'message-deleted', 'text', 'file'];
2
+ const acceptTypes = new Set(['connected', 'disconnected', 'joined', 'left', 'closed', 'deleted', 'updated', 'message-updated', 'message-deleted', 'text', 'file']);
3
3
  export async function initialize(config) {
4
4
  const c = await amqp.connect(config.url);
5
5
  const channel = await c.createChannel();
@@ -15,9 +15,26 @@ export async function initialize(config) {
15
15
  }
16
16
  const deserialized = JSON.parse(msg.content.toString());
17
17
  const type = deserialized.type?.toString();
18
- if (!acceptTypes.includes(type)) {
18
+ if (!acceptTypes.has(type)) {
19
19
  return;
20
20
  }
21
+ let metadata;
22
+ if (typeof deserialized.metadata === 'object') {
23
+ metadata = {};
24
+ for (const k in deserialized.metadata) {
25
+ if (Array.isArray(deserialized.metadata[k])) {
26
+ metadata[k] = [];
27
+ for (const v of deserialized.metadata[k]) {
28
+ if (typeof v !== 'object') {
29
+ metadata[k].push(v);
30
+ }
31
+ }
32
+ }
33
+ else if (typeof deserialized.metadata[k] !== 'object') {
34
+ metadata[k] = deserialized.metadata[k];
35
+ }
36
+ }
37
+ }
21
38
  const m = {
22
39
  type,
23
40
  id: deserialized.id?.toString(),
@@ -28,6 +45,7 @@ export async function initialize(config) {
28
45
  connectionId: deserialized.connectionId?.toString(),
29
46
  fromId: deserialized.fromId?.toString(),
30
47
  data: typeof deserialized.data === 'object' ? deserialized.data : null,
48
+ metadata,
31
49
  createdAt: new Date(deserialized.createdAt),
32
50
  updatedAt: deserialized.updatedAt ? new Date(deserialized.updatedAt) : undefined,
33
51
  deletedAt: deserialized.deletedAt ? new Date(deserialized.deletedAt) : undefined,
@@ -36,9 +54,9 @@ export async function initialize(config) {
36
54
  channel.ack(msg);
37
55
  });
38
56
  return {
39
- acceptTypes,
57
+ acceptTypes: [...acceptTypes],
40
58
  async publish(msg) {
41
- return acceptTypes.includes(msg.type) && channel.sendToQueue(q.queue, Buffer.from(JSON.stringify(msg)));
59
+ return acceptTypes.has(msg.type) && channel.sendToQueue(q.queue, Buffer.from(JSON.stringify(msg)));
42
60
  },
43
61
  async subscribe(callback) {
44
62
  return !!subscribers.push(callback);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@only-chat/rabbitmq-queue",
3
- "version": "0.2.0-beta.9",
3
+ "version": "1.0.1",
4
4
  "description": "RabbitMQ queue for only-chat",
5
5
  "homepage": "https://github.com/only-chat/node-backend/packages/queues/rabbitmq",
6
6
  "main": "dist/index.js",
@@ -16,10 +16,14 @@
16
16
  },
17
17
  "author": "only-chat",
18
18
  "license": "MIT",
19
+ "dependencies": {
20
+ "amqplib": "^0.10.9"
21
+ },
19
22
  "devDependencies": {
20
- "@only-chat/types": "0.2.0-beta.9",
21
- "@types/amqplib": "^0.10.5",
22
- "typescript": "^5.4.5"
23
+ "@only-chat/types": "1.0.1",
24
+ "@types/amqplib": "^0.10.8",
25
+ "@types/node": "^25.2.3",
26
+ "typescript": "^5.9.3"
23
27
  },
24
28
  "files": [
25
29
  "dist/"
@@ -28,8 +32,5 @@
28
32
  "node",
29
33
  "only-chat",
30
34
  "rabbitmq"
31
- ],
32
- "dependencies": {
33
- "amqplib": "^0.10.4"
34
- }
35
- }
35
+ ]
36
+ }