20 lines
467 B
CoffeeScript
20 lines
467 B
CoffeeScript
class Callbacks
|
|
constructor: (@type) ->
|
|
@keys = []
|
|
|
|
push: ({name, cb}) ->
|
|
@keys.push name unless @[name]
|
|
@[name] = cb
|
|
|
|
execute: (node, keys=@keys) ->
|
|
for name in keys
|
|
try
|
|
@[name]?.call node
|
|
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
|