motion
Version:
motion - moving development forward
28 lines (25 loc) • 807 B
JavaScript
/* @flow */
var _sbEventKit = require('sb-event-kit');
module.exports = function disposableEvent(target, eventName, callback) {
if (target.on) {
target.on(eventName, callback);
} else if (target.addListener) {
target.addListener(eventName, callback);
} else if (target.addEventListener) {
target.addEventListener(eventName, callback);
} else {
throw new Error('Unknown event emitter');
}
return new _sbEventKit.Disposable(function () {
if (target.off) {
target.off(eventName, callback);
} else if (target.removeListener) {
target.removeListener(eventName, callback);
} else if (target.removeEventListener) {
target.removeEventListener(eventName, callback);
} else {
throw new Error('Unknown event emitter');
}
});
};
;