@financialforcedev/orizuru-transport-rabbitmq
Version:
Rabbitmq transport layer for the orizuru package
63 lines • 8.35 kB
JavaScript
;
/**
* Copyright (c) 2017-2018 FinancialForce.com, inc
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the FinancialForce.com, inc nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @private
*/
class Publisher {
constructor(channel) {
this.channel = channel;
}
async init(options) {
if (options.exchange) {
const { exchange } = options;
const { name, type } = exchange;
const key = exchange.key || exchange.keyFunction && exchange.keyFunction(options) || '';
// Ensure the exchange exists
await this.channel.assertExchange(name, type, { durable: false });
this.publishFunction = (buffer) => {
return this.channel.publish(name, key, buffer);
};
}
else {
const { eventName } = options;
// Ensure the queue exists
await this.channel.assertQueue(eventName);
this.publishFunction = (buffer) => {
return this.channel.sendToQueue(eventName, buffer);
};
}
}
async publish(buffer) {
if (!this.publishFunction) {
throw new Error('Publisher has not been initialised.');
}
return this.publishFunction(buffer);
}
}
exports.Publisher = Publisher;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmRleC9wdWJsaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHOztBQUlIOztHQUVHO0FBQ0gsTUFBYSxTQUFTO0lBS3JCLFlBQVksT0FBZ0I7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBbUM7UUFFcEQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBRXJCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDN0IsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUM7WUFDaEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXhGLDZCQUE2QjtZQUM3QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUVsRSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUM7U0FFRjthQUFNO1lBRU4sTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUU5QiwwQkFBMEI7WUFDMUIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQztTQUVGO0lBRUYsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDdkQ7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUVEO0FBOUNELDhCQThDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE3LTIwMTggRmluYW5jaWFsRm9yY2UuY29tLCBpbmNcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbixcbiAqICAgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuICpcbiAqIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICogICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICogLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gKiAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAqICAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAtIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIEZpbmFuY2lhbEZvcmNlLmNvbSwgaW5jIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9yc1xuICogICAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxuICogICAgICBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gKlxuICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCIgQU5EXG4gKiAgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFU1xuICogIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMXG4gKiAgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsXG4gKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTXG4gKiAgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZXG4gKiAgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpXG4gKiAgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxuaW1wb3J0IHsgQ2hhbm5lbCB9IGZyb20gJ2FtcXBsaWInO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJsaXNoZXIge1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgY2hhbm5lbDogQ2hhbm5lbDtcblx0cHJpdmF0ZSBwdWJsaXNoRnVuY3Rpb24/OiAoKGJ1ZmZlcjogQnVmZmVyKSA9PiBib29sZWFuKTtcblxuXHRjb25zdHJ1Y3RvcihjaGFubmVsOiBDaGFubmVsKSB7XG5cdFx0dGhpcy5jaGFubmVsID0gY2hhbm5lbDtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBpbml0KG9wdGlvbnM6IE9yaXp1cnUuVHJhbnNwb3J0LklQdWJsaXNoKSB7XG5cblx0XHRpZiAob3B0aW9ucy5leGNoYW5nZSkge1xuXG5cdFx0XHRjb25zdCB7IGV4Y2hhbmdlIH0gPSBvcHRpb25zO1xuXHRcdFx0Y29uc3QgeyBuYW1lLCB0eXBlIH0gPSBleGNoYW5nZTtcblx0XHRcdGNvbnN0IGtleSA9IGV4Y2hhbmdlLmtleSB8fCBleGNoYW5nZS5rZXlGdW5jdGlvbiAmJiBleGNoYW5nZS5rZXlGdW5jdGlvbihvcHRpb25zKSB8fCAnJztcblxuXHRcdFx0Ly8gRW5zdXJlIHRoZSBleGNoYW5nZSBleGlzdHNcblx0XHRcdGF3YWl0IHRoaXMuY2hhbm5lbC5hc3NlcnRFeGNoYW5nZShuYW1lLCB0eXBlLCB7IGR1cmFibGU6IGZhbHNlIH0pO1xuXG5cdFx0XHR0aGlzLnB1Ymxpc2hGdW5jdGlvbiA9IChidWZmZXI6IEJ1ZmZlcikgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5jaGFubmVsLnB1Ymxpc2gobmFtZSwga2V5LCBidWZmZXIpO1xuXHRcdFx0fTtcblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdGNvbnN0IHsgZXZlbnROYW1lIH0gPSBvcHRpb25zO1xuXG5cdFx0XHQvLyBFbnN1cmUgdGhlIHF1ZXVlIGV4aXN0c1xuXHRcdFx0YXdhaXQgdGhpcy5jaGFubmVsLmFzc2VydFF1ZXVlKGV2ZW50TmFtZSk7XG5cblx0XHRcdHRoaXMucHVibGlzaEZ1bmN0aW9uID0gKGJ1ZmZlcjogQnVmZmVyKSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNoYW5uZWwuc2VuZFRvUXVldWUoZXZlbnROYW1lLCBidWZmZXIpO1xuXHRcdFx0fTtcblxuXHRcdH1cblxuXHR9XG5cblx0cHVibGljIGFzeW5jIHB1Ymxpc2goYnVmZmVyOiBCdWZmZXIpIHtcblx0XHRpZiAoIXRoaXMucHVibGlzaEZ1bmN0aW9uKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1B1Ymxpc2hlciBoYXMgbm90IGJlZW4gaW5pdGlhbGlzZWQuJyk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnB1Ymxpc2hGdW5jdGlvbihidWZmZXIpO1xuXHR9XG5cbn1cbiJdfQ==