'f'
mh-two-thousand-and-two
2024-04-12 26f2711ef9461961fb953e2b497bd314ef95e345
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
const callbacks = {}
 
export default function createCallbacks (namespace) {
  let scopedCallbacks = callbacks[namespace]
  if (!scopedCallbacks) {
    scopedCallbacks = {
      id: 1,
      callbacks: Object.create(null)
    }
    callbacks[namespace] = scopedCallbacks
  }
  return {
    get (id) {
      return scopedCallbacks.callbacks[id]
    },
    pop (id) {
      const callback = scopedCallbacks.callbacks[id]
      if (callback) {
        delete scopedCallbacks.callbacks[id]
      }
      return callback
    },
    push (callback) {
      const id = scopedCallbacks.id++
      scopedCallbacks.callbacks[id] = callback
      return id
    }
  }
}