22 lines
368 B
CoffeeScript
22 lines
368 B
CoffeeScript
|
module.exports =
|
||
|
class CallbacksRegistry
|
||
|
constructor: ->
|
||
|
@nextId = 0
|
||
|
@callbacks = {}
|
||
|
|
||
|
add: (callback) ->
|
||
|
@callbacks[++@nextId] = callback
|
||
|
@nextId
|
||
|
|
||
|
get: (id) ->
|
||
|
@callbacks[id]
|
||
|
|
||
|
call: (id, args...) ->
|
||
|
@get(id).call global, args...
|
||
|
|
||
|
apply: (id, args...) ->
|
||
|
@get(id).apply global, args...
|
||
|
|
||
|
remove: (id) ->
|
||
|
delete @callbacks[id]
|