# tiny-emitter
 
A tiny (less than 1k) event emitter library. Works in the browser, in Node, and with [Browserify](http://browserify.org).

[![browser support](https://ci.testling.com/scottcorgan/tiny-emitter.png)](https://ci.testling.com/scottcorgan/tiny-emitter)
 
## Install

Node and Browserify

```
npm install tiny-emitter --save
```
 
Browser

```
bower install tiny-emitter --save
```
 
```html
<script src="bower_components/tiny-emitter/dist/tinyemitter.min.js"></script>
``` 

## Usage

Node and Browserify

```js
var Emitter = require('tiny-emitter');
var emitter = new Emitter();

emitter.on('some-event', function (arg1, arg2, arg3) {
 //  
});

emitter.emit('some-event', 'arg1 value', 'arg2 value', 'arg3 value');
```

Browser

```js
var emitter = new TinyEmitter();

emitter.on('some-event', someCallback);
emitter.emit('some-event');
```

## Instance Methods

### on(event, callback[, context])

Subscribe to an event

* `event` - the name of the event to subscribe to
* `callback` - the function to call when event is emitted
* `context` - (OPTIONAL) - the context to bind the event callback to

### once(event, callback[, context])

Subscribe to an event only **once**

* `event` - the name of the event to subscribe to
* `callback` - the function to call when event is emitted
* `context` - (OPTIONAL) - the context to bind the event callback to

### off(event[, callback])

Unsubscribe from an event or all events. If no callback is provided, it unsubscribes you from all events.

* `event` - the name of the event to unsubscribe from
* `callback` - the function used when binding to the event

### emit(event[, arguments...])

Trigger a named event

* `event` - the event name to emit
* `arguments...` - any number of arguments to pass to the event subscribers

## Test and Build
 
Build (Tests, Browserifies, and minifies)

```
npm install
npm run build
```

Test

```
npm install
npm test
```