@coko/client
Version:
Client side common code for coko apps
31 lines (30 loc) • 695 B
JavaScript
//#region src/helpers/SubscriptionManager.ts
var e = { public: !1 }, t = class {
subscriptions;
constructor() {
this.subscriptions = /* @__PURE__ */ new Map();
}
add(t, n, r = {}) {
this.subscriptions.has(t) || this.subscriptions.set(t, {
subscription: n,
options: {
...e,
...r
}
});
}
remove(e) {
let t = this.subscriptions.get(e);
t && (t.subscription.unsubscribe(), this.subscriptions.delete(e));
}
clear() {
this.subscriptions.forEach((e) => e.subscription.unsubscribe()), this.subscriptions.clear();
}
clearNonPublic() {
this.subscriptions.forEach((e, t) => {
e.options.public || this.remove(t);
});
}
};
//#endregion
export { t as default };