@methodus/server
Version:
dynamic rpc components
58 lines (44 loc) • 5.67 kB
JavaScript
;
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
const _ = require("lodash");
const sinon = require("sinon");
const Channel = require("./channel");
class Connection {
constructor() {
this.queues = {};
this.exchanges = {};
this.on = sinon.stub();
}
get currentChannel() {
return this.channel;
}
get trackedMessages() {
return this.channel.trackedMessages;
}
createChannel() {
this.channel = new Channel(this);
return Promise.resolve(this.channel);
}
createConfirmChannel() {
return this.channel = new Channel(this);
}
sendUntracked(queueName, content, properties) {
var _this = this;
return _asyncToGenerator(function* () {
const channel = new Channel(_this);
yield channel.sendToQueue(queueName, content, properties);
})();
}
publishUntracked(exchange, routingKey, content, properties) {
var _this2 = this;
return _asyncToGenerator(function* () {
const channel = new Channel(_this2);
yield channel.publish(exchange, routingKey, content, properties);
})();
}
getPublished({ filter = _.stubTrue, bodyTransform = _.identity }) {
return this.channel.trackedMessages.filter(msg => filter(msg)).map(msg => Object.assign(msg, { body: bodyTransform(msg.content) }));
}
}
module.exports = Connection;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25uZWN0aW9uLmpzIl0sIm5hbWVzIjpbIl8iLCJyZXF1aXJlIiwic2lub24iLCJDaGFubmVsIiwiQ29ubmVjdGlvbiIsImNvbnN0cnVjdG9yIiwicXVldWVzIiwiZXhjaGFuZ2VzIiwib24iLCJzdHViIiwiY3VycmVudENoYW5uZWwiLCJjaGFubmVsIiwidHJhY2tlZE1lc3NhZ2VzIiwiY3JlYXRlQ2hhbm5lbCIsImNyZWF0ZUNvbmZpcm1DaGFubmVsIiwic2VuZFVudHJhY2tlZCIsInF1ZXVlTmFtZSIsImNvbnRlbnQiLCJwcm9wZXJ0aWVzIiwic2VuZFRvUXVldWUiLCJwdWJsaXNoVW50cmFja2VkIiwiZXhjaGFuZ2UiLCJyb3V0aW5nS2V5IiwicHVibGlzaCIsImdldFB1Ymxpc2hlZCIsImZpbHRlciIsInN0dWJUcnVlIiwiYm9keVRyYW5zZm9ybSIsImlkZW50aXR5IiwibXNnIiwibWFwIiwiT2JqZWN0IiwiYXNzaWduIiwiYm9keSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNQSxJQUFJQyxRQUFTLFFBQVQsQ0FBVjtBQUNBLE1BQU1DLFFBQVFELFFBQVMsT0FBVCxDQUFkO0FBQ0EsTUFBTUUsVUFBVUYsUUFBUyxXQUFULENBQWhCOztBQUVBLE1BQU1HLFVBQU4sQ0FBaUI7QUFDaEJDLGVBQWM7QUFDYixPQUFLQyxNQUFMLEdBQWMsRUFBZDtBQUNBLE9BQUtDLFNBQUwsR0FBaUIsRUFBakI7QUFDQSxPQUFLQyxFQUFMLEdBQVVOLE1BQU1PLElBQU4sRUFBVjtBQUNBOztBQUVELEtBQUlDLGNBQUosR0FBcUI7QUFDcEIsU0FBTyxLQUFLQyxPQUFaO0FBQ0E7O0FBRUQsS0FBSUMsZUFBSixHQUFzQjtBQUNyQixTQUFPLEtBQUtELE9BQUwsQ0FBYUMsZUFBcEI7QUFDQTs7QUFFREMsaUJBQWdCO0FBQ2YsU0FBUyxLQUFLRixPQUFMLEdBQWUsSUFBSVIsT0FBSixDQUFhLElBQWIsQ0FBeEI7QUFDQTs7QUFFRFcsd0JBQXVCO0FBQ3RCLFNBQVMsS0FBS0gsT0FBTCxHQUFlLElBQUlSLE9BQUosQ0FBYSxJQUFiLENBQXhCO0FBQ0E7O0FBRUtZLGNBQU4sQ0FBcUJDLFNBQXJCLEVBQWdDQyxPQUFoQyxFQUF5Q0MsVUFBekMsRUFBc0Q7QUFBQTs7QUFBQTtBQUNyRCxTQUFNUCxVQUFVLElBQUlSLE9BQUosT0FBaEI7QUFDQSxTQUFNUSxRQUFRUSxXQUFSLENBQXFCSCxTQUFyQixFQUFnQ0MsT0FBaEMsRUFBeUNDLFVBQXpDLENBQU47QUFGcUQ7QUFHckQ7O0FBRUtFLGlCQUFOLENBQXdCQyxRQUF4QixFQUFrQ0MsVUFBbEMsRUFBOENMLE9BQTlDLEVBQXVEQyxVQUF2RCxFQUFvRTtBQUFBOztBQUFBO0FBQ25FLFNBQU1QLFVBQVUsSUFBSVIsT0FBSixRQUFoQjtBQUNBLFNBQU1RLFFBQVFZLE9BQVIsQ0FBaUJGLFFBQWpCLEVBQTJCQyxVQUEzQixFQUF1Q0wsT0FBdkMsRUFBZ0RDLFVBQWhELENBQU47QUFGbUU7QUFHbkU7O0FBRURNLGNBQWMsRUFBRUMsU0FBU3pCLEVBQUUwQixRQUFiLEVBQXVCQyxnQkFBZ0IzQixFQUFFNEIsUUFBekMsRUFBZCxFQUFvRTtBQUNuRSxTQUFPLEtBQUtqQixPQUFMLENBQWFDLGVBQWIsQ0FDTGEsTUFESyxDQUNHSSxPQUFPSixPQUFRSSxHQUFSLENBRFYsRUFFTEMsR0FGSyxDQUVBRCxPQUFPRSxPQUFPQyxNQUFQLENBQWVILEdBQWYsRUFBb0IsRUFBRUksTUFBTU4sY0FBZUUsSUFBSVosT0FBbkIsQ0FBUixFQUFwQixDQUZQLENBQVA7QUFHQTtBQXJDZTs7QUF3Q2pCaUIsT0FBT0MsT0FBUCxHQUFpQi9CLFVBQWpCIiwiZmlsZSI6ImNvbm5lY3Rpb24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBfID0gcmVxdWlyZSggXCJsb2Rhc2hcIiApO1xuY29uc3Qgc2lub24gPSByZXF1aXJlKCBcInNpbm9uXCIgKTtcbmNvbnN0IENoYW5uZWwgPSByZXF1aXJlKCBcIi4vY2hhbm5lbFwiICk7XG5cbmNsYXNzIENvbm5lY3Rpb24ge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnF1ZXVlcyA9IHt9O1xuXHRcdHRoaXMuZXhjaGFuZ2VzID0ge307XG5cdFx0dGhpcy5vbiA9IHNpbm9uLnN0dWIoKTtcblx0fVxuXG5cdGdldCBjdXJyZW50Q2hhbm5lbCgpIHtcblx0XHRyZXR1cm4gdGhpcy5jaGFubmVsO1xuXHR9XG5cblx0Z2V0IHRyYWNrZWRNZXNzYWdlcygpIHtcblx0XHRyZXR1cm4gdGhpcy5jaGFubmVsLnRyYWNrZWRNZXNzYWdlcztcblx0fVxuXG5cdGNyZWF0ZUNoYW5uZWwoKSB7XG5cdFx0cmV0dXJuICggdGhpcy5jaGFubmVsID0gbmV3IENoYW5uZWwoIHRoaXMgKSApO1xuXHR9XG5cblx0Y3JlYXRlQ29uZmlybUNoYW5uZWwoKSB7XG5cdFx0cmV0dXJuICggdGhpcy5jaGFubmVsID0gbmV3IENoYW5uZWwoIHRoaXMgKSApO1xuXHR9XG5cblx0YXN5bmMgc2VuZFVudHJhY2tlZCggcXVldWVOYW1lLCBjb250ZW50LCBwcm9wZXJ0aWVzICkge1xuXHRcdGNvbnN0IGNoYW5uZWwgPSBuZXcgQ2hhbm5lbCggdGhpcyApO1xuXHRcdGF3YWl0IGNoYW5uZWwuc2VuZFRvUXVldWUoIHF1ZXVlTmFtZSwgY29udGVudCwgcHJvcGVydGllcyApO1xuXHR9XG5cblx0YXN5bmMgcHVibGlzaFVudHJhY2tlZCggZXhjaGFuZ2UsIHJvdXRpbmdLZXksIGNvbnRlbnQsIHByb3BlcnRpZXMgKSB7XG5cdFx0Y29uc3QgY2hhbm5lbCA9IG5ldyBDaGFubmVsKCB0aGlzICk7XG5cdFx0YXdhaXQgY2hhbm5lbC5wdWJsaXNoKCBleGNoYW5nZSwgcm91dGluZ0tleSwgY29udGVudCwgcHJvcGVydGllcyApO1xuXHR9XG5cblx0Z2V0UHVibGlzaGVkKCB7IGZpbHRlciA9IF8uc3R1YlRydWUsIGJvZHlUcmFuc2Zvcm0gPSBfLmlkZW50aXR5IH0gKSB7XG5cdFx0cmV0dXJuIHRoaXMuY2hhbm5lbC50cmFja2VkTWVzc2FnZXNcblx0XHRcdC5maWx0ZXIoIG1zZyA9PiBmaWx0ZXIoIG1zZyApIClcblx0XHRcdC5tYXAoIG1zZyA9PiBPYmplY3QuYXNzaWduKCBtc2csIHsgYm9keTogYm9keVRyYW5zZm9ybSggbXNnLmNvbnRlbnQgKSB9ICkgKTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IENvbm5lY3Rpb247XG4iXX0=