https://github.com/axtk/evtm
Event manager with flexible event type matching
https://github.com/axtk/evtm
dispatcher event-emitter event-manager events mediator
Last synced: about 1 year ago
JSON representation
Event manager with flexible event type matching
- Host: GitHub
- URL: https://github.com/axtk/evtm
- Owner: axtk
- Created: 2020-12-10T23:43:55.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T13:39:20.000Z (over 1 year ago)
- Last Synced: 2025-03-05T09:45:52.649Z (over 1 year ago)
- Topics: dispatcher, event-emitter, event-manager, events, mediator
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/evtm
- Size: 162 KB
- Stars: 10
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://www.npmjs.com/package/evtm)   
# evtm
*A lightweight zero-dependency event manager with flexible event type matching*
## Usage
Initialization:
```js
import {EventManager} from 'evtm';
let eventManager = new EventManager();
```
Adding a handler of a specific event type:
```js
eventManager.addListener('task started', event => {
console.log(event);
});
```
Of all events matching the pattern:
```js
eventManager.addListener(/^task\s/, event => {
console.log(event);
});
```
With captured parameters:
```js
eventManager.addListener(/^(\S+)\s(?.*)$/, event => {
console.log(event.params[0], event.params.status);
});
```
Adding a handler of all events dispatched to the `eventManager` instance:
```js
let listener = eventManager.addListener('*', event => {
console.log(event);
});
```
Dispatching an event of a specific type and properties:
```js
eventManager.dispatch('task started', {x: 42});
```
Removing a previously declared listener:
```js
listener.remove();
```