aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/listener-manager.js
blob: 9e3c71afc283e79368196c9db8b7fce0fda20509 (plain) (blame)
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
module.exports = class ListenerManager {

  constructor() {
    this.cleaners = {}
  }

  setup (name) {
    if (!(name in this.cleaners)) {
      this.cleaners[name] = []
    }
  }

  addCleanup (name, cleaner) {
    this.setup(name)
  }

  cleanupOldListeners (name) {
    this.setup(name)
    this.cleaners[name].forEach((cleaner) => {
      cleaner()
    })
    this.cleaners[name] = []
  }

}