@lifaon/rx-js-light
Version:
Blazing fast Observables
46 lines (45 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createSubscription = void 0;
var freeze_1 = require("../helpers/freeze.cjs");
function createSubscription(subscribe, emit) {
var unsubscribe = null;
var isActivated = function () {
return unsubscribe !== null;
};
var activate = function () {
if (unsubscribe === null) {
unsubscribe = subscribe(emit);
}
return subscription;
};
var deactivate = function () {
if (unsubscribe !== null) {
unsubscribe();
unsubscribe = null;
}
return subscription;
};
var toggle = function (_activate) {
if (_activate === void 0) {
_activate = !isActivated();
}
if (_activate) {
return activate();
} else {
return deactivate();
}
};
var subscription = (0, freeze_1.freeze)({
subscribe: subscribe,
emit: emit,
isActivated: isActivated,
activate: activate,
deactivate: deactivate,
toggle: toggle
});
return subscription;
}
exports.createSubscription = createSubscription;