@gfticket/common
Version:
An auth package to make micro-service authentication easy to integrate for other services
33 lines (32 loc) • 1.07 kB
JavaScript
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()
.setManualAckMode(true)
.setAckWait(this.ackWait)
.setDeliverAllAvailable()
.setDurableName(this.queueGroupName);
}
listen() {
const subscription = this.client.subscribe(this.subject, this.queueGroupName, this.subscriptionOptions());
subscription.on("message", (msg) => {
console.log(`Message received ${msg.getData()} / $queueGroupName`);
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("utf-8"));
}
}
exports.Listener = Listener;
;