UNPKG

message-subscriber

Version:

Subscribe to messages at any Cloud Service. Receive messages only by registering a EventEmitter Listener. (AWS SQS, Azure ESQ, Google Tasks)

31 lines (25 loc) 751 B
import { EventEmitter } from 'node:events'; const eventEmitter = new EventEmitter(); const originalOn = eventEmitter.on; export class MessageEmitter extends EventEmitter { constructor() { super(); } public on(...args: [eventName: string | symbol, listener: (...args: any[]) => void]): any { if (args[0] === 'message') { const oldFn: Function = args[1]; args[1] = async function (...args: any) { try { var response = await oldFn.apply(this, args); } finally { //@ts-ignore this.emit(`finished ${args[0].id}`); //@ts-ignore this.emit('finished', args[0].id); } return response; }; } return originalOn.apply(this, args); } }