1.1.1 • Published 2 years ago

@md5crypt/listener v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Event listener

Because everyone has to have their own event listener implementation for some reason.

Usage

import Listener from `@thunderbite/event-listener`

class FooBar {
    public readonly onFoo = new Listener()
    public readonly onBar = new Listener<(foo: string, bar: number) => void>()
    public foo() {
        this.onFoo.invoke()
    }
    public bar() {
        this.onBar.invoke("foo", 0xba6)
    }
}

const fooBar = new FooBar()

fooBar.onFoo.add(() => console.log("foo"))
fooBar.onFoo.add(() => {
    console.log("this will be executed only once")
    return Listener.REMOVE
})
fooBar.onBar.add((foo, bar) => console.log(foo + bar))

fooBar.foo()
fooBar.bar()

Instance methods

namesignaturedescription
add(listener: T) => Tadd a callback, returns the callback that was passed to it
remove(listener: T) => booleanremove a callback, returns true if the callback was found
clear() => voidremove all callbacks
invoke(...args: Parameters<T>) => Tinvoke all callbacks