UNPKG

@wennals/common

Version:

32 lines (31 loc) 988 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Listener = void 0; class Listener { constructor(client) { this.ackWait = 5 * 1000; this._client = client; } subscriptionOptions() { return this._client .subscriptionOptions() .setDeliverAllAvailable() .setManualAckMode(true) .setAckWait(this.ackWait) .setDurableName(this.queueGroupName); } listen() { const subscription = this._client.subscribe(this.subject, this.queueGroupName, this.subscriptionOptions()); subscription.on('message', (msg) => { const parsedData = this.parseMessage(msg); this.onMessage(parsedData, msg); }); } parseMessage(msg) { const data = msg.getData(); return typeof data === 'string' ? JSON.parse(data) : JSON.parse(data.toString('utf8')); } } exports.Listener = Listener;