@rxx/testing
Version:
Testing module for rxx.
53 lines • 3.85 kB
JavaScript
;
/**
* @fileoverview
* @author Taketoshi Aono
*/
Object.defineProperty(exports, "__esModule", { value: true });
var rxjs_1 = require("rxjs");
var Interrupter = /** @class */ (function () {
function Interrupter(provisioning) {
var _this = this;
this.provisioning = provisioning;
this.observable = new rxjs_1.Subject();
this.provisioning.subscribe(function (state) {
_this.observable.next(state);
});
this.publisher = this.provisioning.getSubject();
}
Interrupter.prototype.toObservable = function (_a) {
var _this = this;
var disposeWhenUnsubscribe = (_a === void 0 ? {
disposeWhenUnsubscribe: true,
} : _a).disposeWhenUnsubscribe;
return rxjs_1.Observable.create(function (subscriber) {
var sub = _this.observable.subscribe(function (v) { return subscriber.next(v); });
return function () {
sub.unsubscribe();
if (disposeWhenUnsubscribe) {
_this.provisioning.dispose();
}
};
});
};
Interrupter.prototype.send = function (type, payload) {
if (payload === void 0) { payload = {}; }
this.publisher.notify({ type: type, payload: payload });
};
Interrupter.prototype.subscribe = function (callback, runInitial) {
if (runInitial === void 0) { runInitial = false; }
return this.provisioning.subscribe(callback, runInitial);
};
Interrupter.prototype.dispose = function () {
this.provisioning.dispose();
};
Interrupter.prototype.wait = function (type) {
var _this = this;
return new Promise(function (resolve) {
_this.provisioning.subscribe(function (payload) { return resolve(payload); });
});
};
return Interrupter;
}());
exports.Interrupter = Interrupter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJydXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJydXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7QUFRSCw2QkFBMkM7QUFHM0M7SUFJRSxxQkFBb0IsWUFBK0I7UUFBbkQsaUJBS0M7UUFMbUIsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBSDVDLGVBQVUsR0FBRyxJQUFJLGNBQU8sRUFBcUIsQ0FBQztRQUluRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFBLEtBQUs7WUFDL0IsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVNLGtDQUFZLEdBQW5CLFVBQ0UsRUFFQztRQUhILGlCQWVDO1lBZEc7O3NDQUFzQjtRQUl4QixPQUFPLGlCQUFVLENBQUMsTUFBTSxDQUFDLFVBQUEsVUFBVTtZQUNqQyxJQUFNLEdBQUcsR0FBRyxLQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQWxCLENBQWtCLENBQUMsQ0FBQztZQUUvRCxPQUFPO2dCQUNMLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxzQkFBc0IsRUFBRTtvQkFDMUIsS0FBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDN0I7WUFDSCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSwwQkFBSSxHQUFYLFVBQWUsSUFBWSxFQUFFLE9BQWlCO1FBQWpCLHdCQUFBLEVBQUEsWUFBaUI7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLCtCQUFTLEdBQWhCLFVBQ0UsUUFBNEMsRUFDNUMsVUFBa0I7UUFBbEIsMkJBQUEsRUFBQSxrQkFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLDZCQUFPLEdBQWQ7UUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSwwQkFBSSxHQUFYLFVBQ0UsSUFBWTtRQURkLGlCQU1DO1FBSEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFBLE9BQU87WUFDeEIsS0FBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQWhCLENBQWdCLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDSCxrQkFBQztBQUFELENBQUMsQUFsREQsSUFrREM7QUFsRFksa0NBQVcifQ==