UNPKG

10.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../src/EventEmitter.ts"],"names":[],"mappings":"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","sourcesContent":["import * as events from \"events\";\nimport * as util from \"util\";\nimport * as async from \"async\";\nimport { channelManager } from './ChannelManager';\nimport { Event } from \"./Event\";\nimport { EventListener } from \"./EventListener\";\nimport { promiseNodeify } from './promise-nodeify';\n\nvar EventEmitter = events.EventEmitter,\n addListenerMethods = [\"addListener\", \"on\", \"once\"],\n copyMethods = [\"removeAllListeners\", \"setMaxListeners\", \"listeners\"];\n\nfunction parseEvent(event) {\n var tmp = event.split(\":\");\n return {\n exchange: tmp[0],\n topic: tmp[1]\n };\n}\n\nexport interface EventsListeners {\n [index: string]: EventListener\n}\n\nexport interface EventOptions {\n event: string\n persistent?: boolean\n autoAck?: boolean\n prefetchCount?: number\n}\n\nexport class AMQPEventEmitter {\n runtime: string;\n ee: events.EventEmitter;\n private eventsListeners: EventsListeners;\n public nowProcessingEvents: Map\n private trackEventsProcessing: boolean = true\n\n onStartProcesEvent(data) {\n if (!this.trackEventsProcessing) {\n return\n }\n this.nowProcessingEvents.set(data, true)\n\n this.emit('event-start', data)\n }\n\n onEndProcessEvent(data, err) {\n if (!this.trackEventsProcessing) {\n return\n }\n this.nowProcessingEvents.delete(data)\n\n this.emit('event-end', data)\n }\n\n disableTracking() {\n this.trackEventsProcessing = false\n }\n\n constructor(runtime) {\n this.runtime = runtime || \"\";\n this.ee = new EventEmitter();\n this.eventsListeners = {};\n this.nowProcessingEvents = new Map()\n\n addListenerMethods.forEach((method) => {\n this[method] = (options, eventFn, eventSetCb) => {\n const cb = (...args) => {\n this.onStartProcesEvent(args)\n const listenerResult = eventFn(...args)\n if (listenerResult instanceof Promise) {\n listenerResult.then(() => {\n this.onEndProcessEvent(args)\n }).catch(() => {\n this.onEndProcessEvent(args)\n })\n } else {\n this.onEndProcessEvent(args)\n }\n }\n cb.fn = eventFn\n if (typeof options === \"string\") {\n options = {\n event: options\n };\n }\n let event = options.event;\n if ([\"newListener\", \"removeListener\"].indexOf(event) !== -1) {\n return this.ee[method].call(this.ee, event, cb);\n }\n // add listener to the event emitter before attaching to queue in order to be ready if messages are received\n // before preListen callback is called\n this.ee[method].call(this.ee, event, cb);\n return this.preListen(options, (err) => {\n if (err) {\n this.removeListener(event, eventFn)\n if (!eventSetCb) {\n // throw error here if no callback is set, it will be right in most of the cases because apps rely heavily\n // on the rabbitmq connection, no connection means broken app\n throw err\n }\n }\n if (eventSetCb) {\n eventSetCb(err);\n }\n });\n };\n });\n\n copyMethods.forEach((method) => {\n this[method] = (...args: any[]) => {\n this.ee[method].apply(this.ee, args);\n };\n });\n }\n\n private preListen(options, cb) {\n var event = options.event;\n var eParsed = parseEvent(event);\n\n if (this.eventsListeners[event]) {\n return cb(null);\n }\n\n Object.assign(options, {\n exchange: eParsed.exchange,\n topic: eParsed.topic,\n runtime: this.runtime\n })\n var eventListener = new EventListener(options, this);\n\n this.eventsListeners[event] = eventListener;\n let promise = eventListener.listen((message, extra) => {\n var content = message.content;\n if (Array.isArray(content) && content.length === 1 && content[0].context && content[0].message) {\n // old formatted message\n content = content[0];\n }\n return this.ee.emit.call(this.ee, event, content, extra);\n });\n\n return promiseNodeify(promise, cb);\n }\n\n emit(event, data) {\n var eParsed = parseEvent(event);\n\n var amqpEvent = new Event({\n exchange: eParsed.exchange,\n topic: eParsed.topic\n });\n\n amqpEvent.send(data);\n };\n\n getListenerForFn(event: string, fn: Function) {\n for (const listener of this.ee.listeners(event)) {\n if (listener.fn === fn) {\n return listener\n }\n }\n return null\n }\n\n addListener(event: string | EventOptions, listener: Function, cb?: Function) { };\n on(event: string | EventOptions, listener: Function, cb?: Function) { };\n once(event: string | EventOptions, listener: Function, cb?: Function) { };\n removeListener(event: string, fn: Function) {\n const listener = this.getListenerForFn(event, fn)\n if (!listener) {\n return\n }\n this.ee.removeListener(event, listener)\n }\n removeAllListeners(event?: string) { };\n setMaxListeners(n: number) { };\n listeners(event: string) { };\n}"]}
\No newline at end of file