amqplib 0.10.3 → 0.10.4

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.
Files changed (54) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +7 -4
  2. package/.github/workflows/test.yml +15 -2
  3. package/CHANGELOG.md +6 -1
  4. package/Makefile +3 -4
  5. package/README.md +1 -1
  6. package/bin/generate-defs.js +5 -5
  7. package/examples/direct_reply_to_client.js +22 -0
  8. package/examples/direct_reply_to_server.js +25 -0
  9. package/examples/headers.js +29 -31
  10. package/examples/ssl.js +16 -10
  11. package/examples/stream_queues/README.md +40 -0
  12. package/examples/stream_queues/package.json +14 -0
  13. package/examples/stream_queues/receive_stream.js +55 -0
  14. package/examples/stream_queues/send_stream.js +38 -0
  15. package/examples/tutorials/callback_api/emit_log.js +22 -22
  16. package/examples/tutorials/callback_api/emit_log_direct.js +24 -24
  17. package/examples/tutorials/callback_api/emit_log_topic.js +23 -20
  18. package/examples/tutorials/callback_api/new_task.js +21 -20
  19. package/examples/tutorials/callback_api/receive.js +27 -21
  20. package/examples/tutorials/callback_api/receive_logs.js +32 -26
  21. package/examples/tutorials/callback_api/receive_logs_direct.js +42 -41
  22. package/examples/tutorials/callback_api/receive_logs_topic.js +43 -40
  23. package/examples/tutorials/callback_api/rpc_client.js +39 -37
  24. package/examples/tutorials/callback_api/rpc_server.js +42 -32
  25. package/examples/tutorials/callback_api/send.js +21 -22
  26. package/examples/tutorials/callback_api/worker.js +29 -25
  27. package/examples/tutorials/emit_log.js +20 -15
  28. package/examples/tutorials/emit_log_direct.js +22 -16
  29. package/examples/tutorials/emit_log_topic.js +22 -15
  30. package/examples/tutorials/new_task.js +20 -13
  31. package/examples/tutorials/receive.js +19 -14
  32. package/examples/tutorials/receive_logs.js +25 -23
  33. package/examples/tutorials/receive_logs_direct.js +29 -35
  34. package/examples/tutorials/receive_logs_topic.js +28 -32
  35. package/examples/tutorials/rpc_client.js +37 -40
  36. package/examples/tutorials/rpc_server.js +36 -29
  37. package/examples/tutorials/send.js +26 -18
  38. package/examples/tutorials/worker.js +27 -21
  39. package/examples/waitForConfirms.js +18 -19
  40. package/lib/callback_model.js +295 -290
  41. package/lib/channel.js +353 -346
  42. package/lib/channel_model.js +5 -1
  43. package/lib/codec.js +2 -2
  44. package/lib/connection.js +542 -527
  45. package/lib/credentials.js +1 -1
  46. package/lib/defs.js +2568 -2457
  47. package/lib/format.js +0 -1
  48. package/lib/heartbeat.js +32 -29
  49. package/lib/mux.js +96 -99
  50. package/package.json +1 -1
  51. package/test/callback_api.js +182 -174
  52. package/test/channel_api.js +455 -445
  53. package/test/codec.js +4 -4
  54. package/test/frame.js +5 -5
@@ -1,23 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- var amqp = require('amqplib');
3
+ const amqp = require('amqplib');
4
4
 
5
- amqp.connect('amqp://localhost').then(function(conn) {
6
- return conn.createChannel().then(function(ch) {
7
- var q = 'hello';
8
- var msg = 'Hello World!';
5
+ const queue = 'hello';
6
+ const text = 'Hello World!';
9
7
 
10
- var ok = ch.assertQueue(q, {durable: false});
8
+ (async () => {
9
+ let connection;
10
+ try {
11
+ connection = await amqp.connect('amqp://localhost');
12
+ const channel = await connection.createChannel();
11
13
 
12
- return ok.then(function(_qok) {
13
- // NB: `sentToQueue` and `publish` both return a boolean
14
- // indicating whether it's OK to send again straight away, or
15
- // (when `false`) that you should wait for the event `'drain'`
16
- // to fire before writing again. We're just doing the one write,
17
- // so we'll ignore it.
18
- ch.sendToQueue(q, Buffer.from(msg));
19
- console.log(" [x] Sent '%s'", msg);
20
- return ch.close();
21
- });
22
- }).finally(function() { conn.close(); });
23
- }).catch(console.warn);
14
+ await channel.assertQueue(queue, { durable: false });
15
+
16
+ // NB: `sentToQueue` and `publish` both return a boolean
17
+ // indicating whether it's OK to send again straight away, or
18
+ // (when `false`) that you should wait for the event `'drain'`
19
+ // to fire before writing again. We're just doing the one write,
20
+ // so we'll ignore it.
21
+ channel.sendToQueue(queue, Buffer.from(text));
22
+ console.log(" [x] Sent '%s'", text);
23
+ await channel.close();
24
+ }
25
+ catch (err) {
26
+ console.warn(err);
27
+ }
28
+ finally {
29
+ if (connection) await connection.close();
30
+ };
31
+ })();
@@ -1,28 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
  // Process tasks from the work queue
3
3
 
4
- var amqp = require('amqplib');
4
+ const amqp = require('amqplib');
5
5
 
6
- amqp.connect('amqp://localhost').then(function(conn) {
7
- process.once('SIGINT', function() { conn.close(); });
8
- return conn.createChannel().then(function(ch) {
9
- var ok = ch.assertQueue('task_queue', {durable: true});
10
- ok = ok.then(function() { ch.prefetch(1); });
11
- ok = ok.then(function() {
12
- ch.consume('task_queue', doWork, {noAck: false});
13
- console.log(" [*] Waiting for messages. To exit press CTRL+C");
6
+ const queue = 'task_queue';
7
+
8
+ (async () => {
9
+ try {
10
+ const connection = await amqp.connect('amqp://localhost');
11
+ process.once('SIGINT', async () => {
12
+ await connection.close();
14
13
  });
15
- return ok;
16
14
 
17
- function doWork(msg) {
18
- var body = msg.content.toString();
19
- console.log(" [x] Received '%s'", body);
20
- var secs = body.split('.').length - 1;
21
- //console.log(" [x] Task takes %d seconds", secs);
22
- setTimeout(function() {
15
+ const channel = await connection.createChannel();
16
+ await channel.assertQueue(queue, { durable: true });
17
+
18
+ channel.prefetch(1);
19
+ await channel.consume(queue, (message) => {
20
+ const text = message.content.toString();
21
+ console.log(" [x] Received '%s'", text);
22
+ const seconds = text.split('.').length - 1;
23
+ setTimeout(() => {
23
24
  console.log(" [x] Done");
24
- ch.ack(msg);
25
- }, secs * 1000);
26
- }
27
- });
28
- }).catch(console.warn);
25
+ channel.ack(message);
26
+ }, seconds * 1000);
27
+ }, { noAck: false });
28
+
29
+ console.log(" [*] Waiting for messages. To exit press CTRL+C");
30
+ }
31
+ catch (err) {
32
+ console.warn(err);
33
+ }
34
+ })();
@@ -1,22 +1,21 @@
1
- var amqp = require('../');
1
+ const amqp = require('../');
2
2
 
3
- var NUM_MSGS = 20;
3
+ (async () => {
4
+ let connection;
5
+ try {
6
+ connection = await amqp.connect();
7
+ const channel = await connection.createConfirmChannel();
4
8
 
5
- function mkCallback(i) {
6
- return (i % 2) === 0 ? function(err) {
7
- if (err !== null) { console.error('Message %d failed!', i); }
8
- else { console.log('Message %d confirmed', i); }
9
- } : null;
10
- }
9
+ for (var i=0; i < 20; i++) {
10
+ channel.publish('amq.topic', 'whatever', Buffer.from('blah'));
11
+ };
11
12
 
12
- amqp.connect().then(function(c) {
13
- c.createConfirmChannel().then(function(ch) {
14
- for (var i=0; i < NUM_MSGS; i++) {
15
- ch.publish('amq.topic', 'whatever', Buffer.from('blah'), {}, mkCallback(i));
16
- }
17
- ch.waitForConfirms().then(function() {
18
- console.log('All messages done');
19
- c.close();
20
- }).catch(console.error);
21
- });
22
- });
13
+ await channel.waitForConfirms();
14
+ console.log('All messages done');
15
+ await channel.close();
16
+ } catch (err) {
17
+ console.warn(err);
18
+ } finally {
19
+ if (connection) await connection.close();
20
+ }
21
+ })();