UNPKG

@allgemein/eventbus

Version:
67 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NsqdWriter = void 0; const nsqjs = require("nsqjs"); const events_1 = require("events"); const Constants_1 = require("./Constants"); class NsqdWriter extends events_1.EventEmitter { constructor(host, port, options) { super(); this.ready = false; this.host = host; this.port = port; this.options = options; } isOpened() { return this.ready; } open() { return new Promise((resolve, reject) => { try { this.writer = new nsqjs.Writer(this.host, this.port, this.options); const binding = (err) => { reject(err); }; this.writer.once(Constants_1.ERROR, binding); this.writer.once(Constants_1.READY, () => { this.writer.removeListener(Constants_1.ERROR, binding); resolve(this.writer); }); this.writer.connect(); this.ready = true; } catch (err) { reject(err); } }); } close() { this.ready = false; const self = this; return new Promise((resolve, reject) => { self.writer.once(nsqjs.Writer.CLOSED, (err) => { if (err) { reject(err); } else { resolve(null); } }); this.writer.close(); }); } publish(message) { return new Promise((resolve, reject) => { this.writer.publish(message.topic, message.message, (err) => { if (err) { reject(err); } else { resolve(null); } }); }); } } exports.NsqdWriter = NsqdWriter; //# sourceMappingURL=NsqdWriter.js.map