atom-nuclide
Version:
A unified developer experience for web and mobile development, built as a suite of features on top of Atom to provide hackability and the support of an active community.
47 lines (39 loc) • 1.33 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.attachEvent = attachEvent;
exports.observableFromSubscribeFunction = observableFromSubscribeFunction;
/*
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the license found in the LICENSE file in
* the root directory of this source tree.
*/
var _eventKit2;
function _eventKit() {
return _eventKit2 = require('event-kit');
}
var _rxjsBundlesRxUmdMinJs2;
function _rxjsBundlesRxUmdMinJs() {
return _rxjsBundlesRxUmdMinJs2 = require('rxjs/bundles/Rx.umd.min.js');
}
/**
* Add an event listener an return a disposable for removing it. Note that this function assumes
* node EventEmitter semantics: namely, that adding the same combination of eventName and callback
* adds a second listener.
*/
function attachEvent(emitter, eventName, callback) {
emitter.addListener(eventName, callback);
return new (_eventKit2 || _eventKit()).Disposable(function () {
emitter.removeListener(eventName, callback);
});
}
function observableFromSubscribeFunction(fn) {
return (_rxjsBundlesRxUmdMinJs2 || _rxjsBundlesRxUmdMinJs()).Observable.create(function (observer) {
var disposable = fn(observer.next.bind(observer));
return function () {
disposable.dispose();
};
});
}