UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

46 lines (45 loc) 1.07 kB
"use strict"; 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;