UNPKG

@financialforcedev/orizuru-transport-rabbitmq

Version:
63 lines 8.35 kB
"use strict"; /** * 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==