Supranim's Event Emitter - Subscribe & listen for various events within your application
- Framework Agnostic
- Available in ⚡️ Supranim Framework
- Persistent Memory w/ Supranim Storage driver
- Dependency-free
- Open Source |
MIT
License
nimble install emitter
Listeners can receive data as varargs[Arg]
objects, containing a public value
field of Any
object. Check std/typeinfo
# somewhere in your main application
Event.listen("account.email.changed") do(args: varargs[Arg]):
echo "Email address has been changed."
# do the do, send confirmation mails, etc...
# somewhere in your proc-based ``POST`` or ``UPDATE`` controller
let newEmailAddress = "new.address@example.com"
Event.emit("account.email.changed", newArg(newEmailAddress))
For apps based on Supranim Application Template.
Note that all listeners should be stored inside events/listeners
directory.
In Supranim is highly recommended to create a .nim
file for each branch of your application logic.
For example, account.nim
should hold all listeners related to accounts (email updates, password reset requests and so on).
For loading listeners into your application is recommended to use include
, instead of import
. Listener files can be included
in the main state of your application (this is usually the main .nim
file of your project.)
TODO. Create new listeners using Sup
, the Command Line Interface of your Supranim application
# src/events/listeners/account.nim
Event.listen("account.email.update") do(args: varargs[Arg]):
echo "The email address has been changed."
Event.listen("account.password.reset.request") do(args: varargs[Arg]):
echo "Request for password reset."
Event.listen("account.password.update") do(args: varargs[Arg]):
echo "Password has been changed."
If you like this project you can contribute to this project by opening new issues, fixing bugs, contribute with code, ideas and you can even donate via PayPal address 🥰
What's Nim? Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Find out more about Nim language
Why Nim? Performance, fast compilation and C-like freedom. We want to keep code clean, readable, concise, and close to our intention. Also a very good language to learn in 2022.
Events is an Open Source Software released under MIT
license. Made by Humans from OpenPeep.
Copyright © 2022 Supranim & OpenPeep — All rights reserved.