123456789101112131415161718192021222324252627 |
- 'use strict';
- function inheritEvents(source, target, events) {
- const listeners = {};
- target
- .on('newListener', (eventName) => {
- if (events.indexOf(eventName) >= 0 && !target.listenerCount(eventName)) {
- source.on(
- eventName,
- (listeners[eventName] = function () {
- const args = [].slice.call(arguments);
- args.unshift(eventName);
- target.emit.apply(target, args);
- }),
- );
- }
- })
- .on('removeListener', (eventName) => {
- if (events.indexOf(eventName) >= 0 && !target.listenerCount(eventName)) {
- source.removeListener(eventName, listeners[eventName]);
- delete listeners[eventName];
- }
- });
- }
- module.exports = inheritEvents;
|