4chan-x/src/classes/Callbacks.coffee

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