@lifaon/rx-js-light
Version:
Blazing fast Observables
41 lines (40 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Subscription = void 0;
var Subscription = (function () {
function Subscription(subscribe, emit) {
this.subscribe = subscribe;
this.emit = emit;
this._unsubscribe = null;
}
Subscription.prototype.isActivated = function () {
return this._unsubscribe !== null;
};
Subscription.prototype.activate = function () {
if (this._unsubscribe === null) {
this._unsubscribe = this.subscribe(this.emit);
}
return this;
};
Subscription.prototype.deactivate = function () {
if (this._unsubscribe !== null) {
this._unsubscribe();
this._unsubscribe = null;
}
return this;
};
Subscription.prototype.toggle = function (activate) {
if (activate === void 0) {
activate = !this.isActivated();
}
if (activate) {
return this.activate();
} else {
return this.deactivate();
}
};
return Subscription;
})();
exports.Subscription = Subscription;