https://github.com/soenkekluth/micromitter
minimal and performant event emitter / dispatcher
https://github.com/soenkekluth/micromitter
data dispatch dispatcher emit emitter event eventdriven handler on send trigger
Last synced: 8 months ago
JSON representation
minimal and performant event emitter / dispatcher
- Host: GitHub
- URL: https://github.com/soenkekluth/micromitter
- Owner: soenkekluth
- Created: 2017-08-18T05:08:46.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-12-15T11:47:47.000Z (almost 2 years ago)
- Last Synced: 2024-04-29T09:02:22.169Z (over 1 year ago)
- Topics: data, dispatch, dispatcher, emit, emitter, event, eventdriven, handler, on, send, trigger
- Language: JavaScript
- Size: 85.9 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# micromitter
minimal and performant event emitter / emitter with custom events and payload
## API
#### Table of Contents
- [constructor](#constructor)
- [on](#on)
- [off](#off)
- [once](#once)
- [emit](#emit)### constructor
Creates an instance of MicroMitter.
**Parameters**
- `target` **any** the event target
### on
adds an event handler to an event type
**Parameters**
- `type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `handler` **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)****Examples**
```javascript
emitter.on('type', (e)=>{
console.log(e);
});
```Returns **MicroMitter** self
### off
removes either a specific handler or all handlers related to an event type
**Parameters**
- `type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `handler` **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)**Returns **MicroMitter** self
### once
adds an event handler to an event type and immediately removes it after first event call
**Parameters**
- `type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `handler` **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)****Examples**
```javascript
emitter.onc('type', (e)=>{
console.log('only once');
});
```Returns **MicroMitter** self
### emit
triggers an event for a specific type with an optional data object
**Parameters**
- `type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
- `data` **any** (optional, default `{}`)**Examples**
```javascript
emitter.off('type', handler);
```Returns **MicroMitter** self
## Usage
```js
import Emitter from 'micromitter';const emitter = new Emitter();
emitter.on('test', (e)=>{
console.log(e.type === 'test');
console.log(e.foo === 'bar');
});emitter.emit('test', {foo:'bar'});
emitter.off('test');let counter = 0;
emitter.once('oneTime', (e)=>{
counter += 1;
});emitter.emit('oneTime', {foo:'bar'});
emitter.emit('oneTime', {foo:'bar'});
emitter.emit('oneTime', {foo:'bar'});
emitter.emit('oneTime', {foo:'bar'});
console.log(counter); // 1
```### chaining
```js
emitter
.on('type', handler)
.emit('type', {foo:'bar'})
.off('type', handler);
```### use global instance
```js
import {emitter} from 'micromitter';emitter.on('test', (e)=>{
console.log(e.type === 'test');
console.log(e.foo === 'bar');
});emitter.emit('test', {foo:'bar'});
```### use decorator
```js
import { micromitter } from 'micromitter';//v1: use es7 decorators
@micromitter
class Tester {
onTest(e){
console.log(e.type === 'test');
console.log(e.foo === 'bar');
}
}//v2 use the decorator as a function
micromitter(Tester);const tt = new Tester();
tt.on('test', tt.onTest);
tt.emit('test', {foo:'bar'});
```