1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| "use strict";
| Object.defineProperty(exports, "__esModule", { value: true });
| /**
| * Tiny class to simplify dealing with subscription set
| *
| * @export
| * @class SubscriptionSet
| */
| class SubscriptionSet {
| constructor() {
| this.set = {
| subscribe: {},
| psubscribe: {}
| };
| }
| add(set, channel) {
| this.set[mapSet(set)][channel] = true;
| }
| del(set, channel) {
| delete this.set[mapSet(set)][channel];
| }
| channels(set) {
| return Object.keys(this.set[mapSet(set)]);
| }
| isEmpty() {
| return (this.channels("subscribe").length === 0 &&
| this.channels("psubscribe").length === 0);
| }
| }
| exports.default = SubscriptionSet;
| function mapSet(set) {
| if (set === "unsubscribe") {
| return "subscribe";
| }
| if (set === "punsubscribe") {
| return "psubscribe";
| }
| return set;
| }
|
|