# sg-event-emitter

> Simple service registry

Latest version **0.1.2** (published 2016-04-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install sg-event-emitter
pnpm add sg-event-emitter
yarn add sg-event-emitter
bun add sg-event-emitter
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.2 |
| Published | 2016-04-05 |
| First published | 2016-02-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | SkyGate |
| Maintainers | skygate |
| Keywords | service, registry, di, dependency, injection, container |

## Links

- npm: https://www.npmjs.com/package/sg-event-emitter
- Repository: https://github.com/skygate/service-registry
- Homepage: https://github.com/skygate/service-registry#readme
- Issues: https://github.com/skygate/service-registry/issues
- npm.io page: https://npm.io/package/sg-event-emitter

## Alternatives

- [memory-cache](https://npm.io/package/memory-cache.md) — 795.0K weekly downloads
- [@httptoolkit/proxy-agent](https://npm.io/package/@httptoolkit/proxy-agent.md) — 11.2K weekly downloads
- [express-cache-controller](https://npm.io/package/express-cache-controller.md) — 5.3K weekly downloads
- [http-cache-middleware](https://npm.io/package/http-cache-middleware.md) — 4.5K weekly downloads
- [cache2](https://npm.io/package/cache2.md) — 1.5K weekly downloads

## Recent versions

- 0.1.2 (latest) — 2016-04-05
- 0.1.1 — 2016-02-09
- 0.1.0 — 2016-02-09

## README

# Event Emitter
Very simple class allowing for dispatch custom events in DOM-like style. It's tested in production apps on both browser and node.

## Usage

All available methods are:
  - `addEventListener(name: string, listener: ()=>void)` - adds a new listener to given event
  - `removeEventListener(name: string, listener: ()=>void)` - removes registered listener for given event. You have to pass exactly the same function as passed previously to `addEventListener`.
  - `dispatchEvent(name: string)` - dispatches given event
  - `settle(host: any)` - links `addEventListener` and `removeEventListener` from EventEmitter instance to given host object. This allows you to create really encapsulated EventEmitter instance and expose only these two public methods.  

```js

var EventEmitter = require('sg-event-emitter').EventEmitter;
//or
import {EventEmitter} from 'sg-event-emitter';

class Foo {
    constructor () {
        this._eventEmitter = new EventEmitter();
        this._eventEmitter.settle(this); //from now this object has 
                                         //`addEventListener` and `removeEventListener` methods
    }
    
    makeSomeAction () {
        this._eventEmitter.dispatchEvent('myEvent');
    }
}

var foo = new Foo();
var listener = _ => console.log('dispatched');
foo.addEventListener('myEvent', listener);

foo.makeSomeAction();  //logs 'dispatched'

foo.removeEventListener('myEvent', listener);

foo.makeSomeAction();  //doesn't log anything
```

---
_Source: https://npm.io/package/sg-event-emitter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
