@betterinternship/core 2.0.0 → 2.0.2

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.
@@ -7,5 +7,5 @@ export declare const BrokerAPI: {
7
7
  } | {
8
8
  assertQueue: (queueId: string, options?: amqp.Options.AssertQueue) => void;
9
9
  sendToQueue: (queueId: string, content: any) => void;
10
- readFromQueue: (queueId: string) => Promise<amqp.Message | null>;
10
+ readFromQueue: (queueId: string) => Promise<unknown>;
11
11
  };
@@ -13,11 +13,7 @@ const QueueName = (...args) => {
13
13
  return ['dev', ...args].join('.');
14
14
  };
15
15
  exports.QueueName = QueueName;
16
- exports.BrokerAPI = (() => {
17
- let onResolve;
18
- let promise = new Promise((resolve) => {
19
- onResolve = resolve;
20
- });
16
+ exports.BrokerAPI = await (async () => {
21
17
  if (!RABBITMQ_URL) {
22
18
  return {
23
19
  assertQueue: async (..._) => { },
@@ -25,32 +21,57 @@ exports.BrokerAPI = (() => {
25
21
  readFromQueue: async (..._) => { },
26
22
  };
27
23
  }
28
- amqp.connect(RABBITMQ_URL, (err, connection) => {
29
- if (err)
30
- throw err;
31
- connection.createChannel((err, channel) => {
24
+ const connection = await new Promise((resolve) => {
25
+ amqp.connect(RABBITMQ_URL, (err, connection) => {
32
26
  if (err)
33
27
  throw err;
34
- if (!onResolve)
35
- return;
36
- onResolve(channel);
28
+ resolve(connection);
37
29
  });
38
30
  });
31
+ const createChannel = async () => {
32
+ return new Promise((resolve) => {
33
+ connection.createChannel((err, channel) => {
34
+ if (err)
35
+ throw err;
36
+ resolve(channel);
37
+ });
38
+ });
39
+ };
40
+ const channels = {
41
+ asserter: await createChannel(),
42
+ reader: await createChannel(),
43
+ writer: await createChannel(),
44
+ };
39
45
  const assertQueue = (queueId, options) => {
40
- promise = promise.then((channel) => (channel.assertQueue(queueId, { durable: true, ...options }),
41
- channel));
46
+ channels.asserter.assertQueue(queueId, { durable: true, ...options });
47
+ console.log(`[BROKER] Queue "${queueId}" has been asserted.`);
42
48
  };
43
49
  const sendToQueue = (queueId, content) => {
44
- promise = promise.then((channel) => (channel.sendToQueue(queueId, Buffer.from(JSON.stringify(content))),
45
- console.log(`Message sent to ${queueId}: ${JSON.stringify(content)}.`),
46
- channel));
50
+ channels.writer.sendToQueue(queueId, Buffer.from(JSON.stringify(content)));
51
+ console.log(`[BROKER] Message sent to queue "${queueId}": ${JSON.stringify(content)}.`);
47
52
  };
48
- const readFromQueue = async (queueId) => {
49
- let localResolve;
50
- const subPromise = new Promise((resolve) => (localResolve = resolve));
51
- promise = promise.then((channel) => (channel.consume(queueId, (message) => (localResolve(message), message && channel.ack(message))),
52
- channel));
53
- return subPromise;
53
+ const readFromQueue = (queueId) => {
54
+ const resolveFromQueue = (message) => {
55
+ channels.writer.ack(message);
56
+ console.log(`[BROKER] Message "${message.properties.messageId}" resolved from queue "${queueId}".`);
57
+ };
58
+ const rejectFromQueue = (message) => {
59
+ channels.writer.nack(message);
60
+ console.log(`[BROKER] Message "${message.properties.messageId}" rejected from queue "${queueId}".`);
61
+ };
62
+ return new Promise((resolve) => channels.reader.consume(queueId, (message) => {
63
+ const result = {
64
+ content: message?.content.toJSON(),
65
+ resolve: () => message && resolveFromQueue(message),
66
+ reject: () => message && rejectFromQueue(message),
67
+ };
68
+ if (message) {
69
+ resolve(result);
70
+ }
71
+ else {
72
+ resolve(null);
73
+ }
74
+ }));
54
75
  };
55
76
  return {
56
77
  assertQueue,
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"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"}