--- title: Module bait description: the event emitter layout: doc menu: docs: parent: "API" --- ## Introduction Bait is the event emitter for Hilbish. Much like Node.js and its `events` system, many actions in Hilbish emit events. Unlike Node.js, Hilbish events are global. So make sure to pick a unique name!\ \ Usage of the Bait module consists of userstanding event-driven architecture, but it's pretty simple: If you want to act on a certain event, you can `catch` it. You can act on events via callback functions.\ \ Examples of this are in the Hilbish default config! Consider this part of it:\ \ ```lua bait.catch('command.exit', function(code) running = false doPrompt(code ~= 0) doNotifyPrompt() end) ``` What this does is, whenever the `command.exit` event is thrown, this function will set the user prompt. ## Functions ``` =html
catch(name, cb) | Catches an event. This function can be used to act on events. |
catchOnce(name, cb) | Catches an event, but only once. This will remove the hook immediately after it runs for the first time. |
hooks(name) -> table | Returns a table of functions that are hooked on an event with the corresponding `name`. |
release(name, catcher) | Removes the `catcher` for the event with `name`. |
throw(name, ...args) | Throws a hook with `name` with the provided `args`. |