bc/node_modules/mysql2/lib/promise/inherit_events.js
2025-05-13 04:14:01 +00:00

28 lines
753 B
JavaScript

'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;