ucsc-xena-client
Version:
UCSC Xena Client. Functional genomics visualizations.
102 lines (89 loc) • 3.29 kB
JavaScript
;
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var _ = require('./underscore_ext');
var Rx = {
Observable: require('rxjs/Observable').Observable,
Subject: require('rxjs/Subject').Subject,
Scheduler: Object.assign({}, require('rxjs/scheduler/async'), require('rxjs/scheduler/asap'), require('rxjs/scheduler/animationFrame')),
Subscription: require('rxjs/Subscription').Subscription
};
require('rxjs/add/observable/bindCallback');
require('rxjs/add/observable/defer');
require('rxjs/add/observable/dom/ajax');
require('rxjs/add/observable/from');
require('rxjs/add/observable/fromEvent');
require('rxjs/add/observable/interval');
require('rxjs/add/observable/merge');
require('rxjs/add/observable/of');
require('rxjs/add/observable/throw');
require('rxjs/add/observable/zip');
require('rxjs/add/operator/catch');
require('rxjs/add/operator/combineLatest');
require('rxjs/add/operator/concat');
require('rxjs/add/operator/debounceTime');
require('rxjs/add/operator/distinctUntilChanged');
require('rxjs/add/operator/delay');
require('rxjs/add/operator/do');
require('rxjs/add/operator/filter');
require('rxjs/add/operator/groupBy');
require('rxjs/add/operator/map');
require('rxjs/add/operator/merge');
require('rxjs/add/operator/mergeAll');
require('rxjs/add/operator/mergeMap');
require('rxjs/add/operator/publishReplay');
require('rxjs/add/operator/retry');
require('rxjs/add/operator/sample');
require('rxjs/add/operator/scan');
require('rxjs/add/operator/share');
require('rxjs/add/operator/startWith');
require('rxjs/add/operator/switchMap');
require('rxjs/add/operator/take');
require('rxjs/add/operator/takeUntil');
require('rxjs/add/operator/debounceTime');
require('rxjs/add/operator/timeoutWith');
require('rxjs/add/operator/toArray');
require('rxjs/add/operator/windowCount');
require('rxjs/add/operator/withLatestFrom');
var observableProto = Rx.Observable.prototype;
function log() {
if (console) {
console.log.apply(console, arguments);
}
}
observableProto.spy = function (msg) {
var observable = this;
return Rx.Observable.create(function (observer) {
log(msg, "subscribed");
var inner = observable.subscribe(function (next) {
log(msg, "sending", next);
observer.next(next);
}, function (err) {
log(msg, "error", err);
observer.error(err);
}, function () {
log(msg, "complete");
observer.complete();
});
return new Rx.Subscription(function () {
inner.unsubscribe();
log(msg, "disposed");
});
});
};
// zip operator that handles length 0
function zipArray(obs) {
var _Rx$Observable;
return obs.length ? (_Rx$Observable = Rx.Observable).zip.apply(_Rx$Observable, _toConsumableArray(obs).concat([function () {
for (var _len = arguments.length, arr = Array(_len), _key = 0; _key < _len; _key++) {
arr[_key] = arguments[_key];
}
return arr;
}])) : Rx.Observable.of([], Rx.Scheduler.asap);
}
Rx.Observable.zipArray = function () {
for (var _len2 = arguments.length, obs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
obs[_key2] = arguments[_key2];
}
return _.isArray(obs[0]) ? zipArray(obs[0]) : zipArray(obs);
};
module.exports = Rx;