2023-07-09 19:18:27 +00:00
<!doctype html> < html > < head > < title > Module bait — Hilbish< / title > < meta charset = utf-8 > < meta name = viewport content = "width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" > < meta name = theme-color content = "#ff89dd" > < meta content = "/Hilbish/hilbish-flower.png" property = "og:image" > < meta property = "og:site_name" content = "Hilbish" > < meta content = "Module bait — Hilbish" property = "og:title" > < meta content = "the event emitter" property = "og:description" > < meta content = "the event emitter" name = description > < meta name = revisit-after content = "2 days" > < meta name = keywords content = "Lua,Hilbish,Linux,Shell" > < meta property = "og:locale" content = "en_GB" > < link rel = canonical href = https://rosettea.github.io/Hilbish/ > < meta property = "og:url" content = "https://rosettea.github.io/Hilbish/" > < link href = https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css rel = stylesheet integrity = sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor crossorigin = anonymous > < script src = https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js integrity = sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2 crossorigin = anonymous > < / script >
< link rel = stylesheet href = https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css integrity = "sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin = anonymous referrerpolicy = no-referrer > < style > . heading > . heading-link { opacity : 0 } . heading : hover > . heading-link { visibility : visible ; opacity : 1 ; transition : all .1 s ease-in } < / style > < / head > < body class = "d-flex flex-column min-vh-100" style = overflow-x:hidden > < svg xmlns = "http://www.w3.org/2000/svg" style = "display:none" > < symbol id = "check-circle-fill" fill = "currentcolor" viewBox = "0 0 16 16" > < path d = "M16 8A8 8 0 110 8a8 8 0 0116 0zm-3.97-3.03a.75.75.0 00-1.08.022L7.477 9.417 5.384 7.323a.75.75.0 00-1.06 1.06L6.97 11.03a.75.75.0 001.079-.02l3.992-4.99a.75.75.0 00-.01-1.05z" / > < / symbol > < symbol id = "info-fill" fill = "currentcolor" viewBox = "0 0 16 16" > < path d = "M8 16A8 8 0 108 0a8 8 0 000 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194.0.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703.0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 110-2 1 1 0 010 2z" / > < / symbol > < symbol id = "exclamation-triangle-fill" fill = "currentcolor" viewBox = "0 0 16 16" > < path d = "M8.982 1.566a1.13 1.13.0 00-1.96.0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889.0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535.0.954.462.9.995l-.35 3.507a.552.552.0 01-1.1.0L7.1 5.995A.905.905.0 018 5zm.002 6a1 1 0 110 2 1 1 0 010-2z" / > < / symbol > < / svg > < header > < nav class = "navbar navbar-expand-md sticky-top bg-light border-bottom" > < div class = container-fluid > < a class = navbar-brand href = /Hilbish > < img src = /Hilbish/hilbish-logo-and-text.png alt height = 48 > < / a >
< button class = navbar-toggler type = button data-bs-toggle = collapse data-bs-target = #navbarSupportedContent aria-controls = navbarSupportedContent aria-expanded = false aria-label = "Toggle navigation" >
2023-07-12 00:25:28 +00:00
< span class = navbar-toggler-icon > < / span > < / button > < div class = "collapse navbar-collapse" id = navbarSupportedContent > < ul class = "navbar-nav me-auto mb-2 mb-lg-0" > < li class = nav-item > < a href = /Hilbish/versions/pager/ class = nav-link > Home< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/install/ class = nav-link > Install< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/ class = nav-link > Docs< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/blog/ class = nav-link > Blog< / a > < / li > < / ul > < / div > < / div > < / nav > < / header > < style > @ media ( min-width : 768px ) { . sidenav { width : 240 px } } < / style > < div class = row > < nav class = "navbar-expand-md bg-light sidenav border-end" > < div class = container > < div class = "collapse navbar-collapse" id = navbarSupportedContent > < nav class = "navbar navbar-expand-md bg-light sidenav col" style = margin-top:-20px > < ul class = "navbar-nav me-auto mb-2 mb-lg-0 flex-column col mt-4" > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/ class = nav-link > < strong > Introduction< / strong > < / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/getting-started/ class = nav-link > < strong > Getting Started< / strong > < / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/faq/ class = nav-link > < strong > Frequently Asked Questions< / strong > < / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/features/ class = nav-link > < strong > Features< / strong > < / a > < / li > < ul style = list-style:none > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/features/notifications/ class = nav-link > Notification< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/features/runner-mode/ class = nav-link > Runner Mode< / a > < / li > < / ul > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/ class = nav-link > < strong > API< / strong > < / a > < / li > < ul style = list-style:none > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.aliases/ class = nav-link > Interface hilbish.aliases< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.completions/ class = nav-link > Interface hilbish.completions< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.editor/ class = nav-link > Interface hilbish.editor< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.history/ class = nav-link > Interface hilbish.history< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.jobs/ class = nav-link > Interface hilbish.jobs< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.os/ class = nav-link > Interface hilbish.os< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.runner/ class = nav-link > Interface hilbish.runner< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.timers/ class = nav-link > Interface hilbish.timers< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/hilbish.userdir/ class = nav-link > Interface hilbish.userDir< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/bait/ class = nav-link > Module bait< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/commander/ class = nav-link > Module commander< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/fs/ class = nav-link > Module fs< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/hilbish/ class = nav-link > Module hilbish< / a > < / li > < li class = nav-item > < a href = /Hilbish/versions/pager/docs/api/terminal/ class = nav-link > Module terminal< / a > < / li > < / ul > < / ul > < / nav > < / div > < / div > < / nav > < container class = "col mt-2" style = "padding-left: 20px; padding-right: 20px;" > < div > < h1 > Module bait< / h1 > < p > < em > the event emitter< br > < / em > < / p > < h3 id = introduction class = heading > Introduction
2023-07-09 19:18:27 +00:00
< a href = #introduction class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h3 > < p > Bait is the event emitter for Hilbish. Why name it bait? Why not.
It throws hooks that you can catch. This is what you will use if
you want to listen in on hooks to know when certain things have
happened, like when you’ ve changed directory, a command has failed,
etc. To find all available hooks thrown by Hilbish, see doc hooks.< / p > < h3 id = functions class = heading > Functions
< a href = #functions class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h3 > < h4 id = catchname-cb class = heading > catch(name, cb)
< a href = #catchname-cb class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h4 > < p > Catches a hook with < code > name< / code > . Runs the < code > cb< / code > when it is thrown< / p > < h4 id = catchoncename-cb class = heading > catchOnce(name, cb)
< a href = #catchoncename-cb class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h4 > < p > Same as catch, but only runs the < code > cb< / code > once and then removes the hook< / p > < h4 id = hooksname---table class = heading > hooks(name) -> table
< a href = #hooksname---table class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h4 > < p > Returns a table with hooks (callback functions) on the event with < code > name< / code > .< / p > < h4 id = releasename-catcher class = heading > release(name, catcher)
< a href = #releasename-catcher class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h4 > < p > Removes the < code > catcher< / code > for the event with < code > name< / code > .
For this to work, < code > catcher< / code > has to be the same function used to catch
an event, like one saved to a variable.< / p > < h4 id = throwname-args class = heading > throw(name, … args)
< a href = #throwname-args class = heading-link > < i class = "fas fa-paperclip" > < / i > < / a > < / h4 > < p > Throws a hook with < code > name< / code > with the provided < code > args< / code > < / p > < / div > < div class = "footer mt-auto" > < p class = "card-small text-muted" > Want to help improve this page? < a href = https://github.com/Rosettea/Hilbish/issues/new/choose > Create an issue.< / a > < / p > < / div > < / container > < / div > < footer class = "footer mt-auto mt-auto py-3 bg-light row border-top" > < div class = "col mb-3" > < / div > < div class = "col mb-3" > < a href = /Hilbish class = "d-flex align-items-center mb-3 link-dark text-decoration-none" > < img src = /Hilbish/hilbish-logo-and-text.png alt height = 48 class = "d-inline-block align-text-top" style = margin-left:-20px > < / a > < ul class = "nav flex-column" > < li class = "nav-item mb-2" > < a href = /Hilbish class = "nav-link p-0 text-muted" > Home< / a > < / li > < li class = "nav-item mb-2" > < a href = /Hilbish/docs/faq class = "nav-link p-0 text-muted" > FAQ< / a > < / li > < li class = "nav-item mb-2" > < a href = https://github.com/Rosettea/Hilbish class = "nav-link p-0 text-muted" > Source< / a > < / li > < li class = "nav-item mb-2" > < a href = https://github.com/Rosettea/Hilbish/releases class = "nav-link p-0 text-muted" > Releases< / a > < / li > < li class = "nav-item mb-2" > < a href = /Hilbish/docs class = "nav-link p-0 text-muted" > Documentation< / a > < / li > < / ul > < / div > < div class = "col mb-3" > < / div > < div class = "col mb-3" > < / div > < div class = "col mb-3" > < / div > < div class = "col mb-3" > < p class = "text-muted mt-4" > Rosettea © 2022-2023< br > Made with < i class = "fa-solid fa-heart" style = color:#f6345b > < / i > < / p > < / div > < div class = "col mb-3" > < / div > < / footer > < / body > < / html >