custom-listenable (npm): Create custom listenable with addListener and removeListener methods.
Keywords: listenable|events|typescript