JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 11725
  • Score
    100M100P100Q142092F
  • License MIT

A link caching plugin for the amqp10 module

Package Exports

  • amqp10-link-cache

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (amqp10-link-cache) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

amqp10-link-cache

Build Status Dependency Status

This module allows you to reuse already created links with the same link options throughout your codebase. This is particularly useful as you no longer need to make all of the links up front before using them, you can simply always create the links where you need them and know that it will either be created or a cached copy will be returned.

By default receiver links are not cached, the user must explicitly opt in to this behavior for both receiver links and receiver streams.

usage

'use strict';
var amqp = require('amqp10'),
    linkCache = require('amqp10-link-cache');

// plug-in the link cache, with optional parameters
amqp.use(linkCache({ ttl: 5000 }));

var client = new amqp.Client();
client.connect('amqp://localhost')
  .then(function() {
    // defaults for sender:
    var senderOpts = {
      bypassCache: false      // set to true to disable caching this link
    };

    // defaults for receiver:
    var receiverOpts = {
      bypassCache: true
    };

    return Promise.all([
      client.createSender('amq.topic', senderOpts),
      client.createSender('amq.topic'),
      client.createSender('amq.topic', { bypassCache: true }),
      client.createReceiver('amqp.topic', receiverOpts),
      client.createReceiver('amqp.topic'),
      client.createReceiver('amq.topic', { bypassCache: false }),
      client.createReceiver('amq.topic', { bypassCache: false })
    ]);
  })
  .spread(function(sender1, sender2, sender3, receiver1, receiver2, receiver3, receiver4) {
    // sender1 === sender2
    // sender1 !== sender3 && sender2 !== sender3
    // receiver1 !== receiver2
    // receiver3 === receiver4
  });