24 lines
652 B
Plaintext
24 lines
652 B
Plaintext
class Callbacks
|
|
constructor: (@type) ->
|
|
@keys = []
|
|
|
|
push: ({name, cb}) ->
|
|
@connect name if @[name]
|
|
@keys.push name unless @[name]
|
|
@[name] = cb
|
|
|
|
connect: (name) -> delete @[name].disconnected if @[name].disconnected
|
|
disconnect: (name) -> @[name].disconnected = true if @[name]
|
|
|
|
execute: (node) ->
|
|
for name in @keys
|
|
try
|
|
@[name].call node unless @[name].disconnected
|
|
catch err
|
|
errors = [] unless errors
|
|
errors.push
|
|
message: ['"', name, '" crashed on node ', @type, ' No.', node.ID, ' (', node.board, ').'].join('')
|
|
error: err
|
|
|
|
Main.handleErrors errors if errors
|