ak-eventemitter
Advanced tools
Comparing version 0.0.5 to 0.0.6
@@ -138,3 +138,3 @@ 'use strict'; | ||
'fn': callback, | ||
'context': context ? context : this, | ||
'context': context || this, | ||
'once': !! once | ||
@@ -141,0 +141,0 @@ }); |
{ | ||
"name": "ak-eventemitter", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "eventemitter with namespaces", | ||
@@ -28,3 +28,3 @@ "keywords": [ | ||
"engines": { | ||
"node": "~0.10.22" | ||
"node": ">=0.10.22" | ||
}, | ||
@@ -31,0 +31,0 @@ "dependencies": {}, |
142
README.md
ak-eventemitter | ||
=============== | ||
# API | ||
## `EventEmitter(options)` | ||
Constructor. | ||
- `options` *Object* | ||
```javascript | ||
{ | ||
'delimiter': '.' // used to delimite name spaces | ||
} | ||
``` | ||
## `on(ns, callback[, context, once])` | ||
Adds an event listener. | ||
- **`ns`** *String* | ||
Target namespace, wildcard is `*`, e.g `chat.*` | ||
- **`callback`** *Function* | ||
`function (ns, arg1, arg2, ...) {}` see [`emit()`](#emitns). | ||
- **`context`** *Object* [optional] | ||
Context used when calling callback. | ||
- **`once`** `Boolean` [optional] | ||
Privately used by [`once()`](#oncenscallbackcontext) | ||
## `once(ns, callback, context)` | ||
Same as [`on()`](#onnscallbackcontextonce), triggered only once (removed after first [`emit()`](#emitns)). | ||
## `off([ns, callback, context])` | ||
Removes an event listener. | ||
- **`ns`** *String* [optional] | ||
Target namespace, wildcard is `*`, e.g `chat.*` | ||
- **`callback`** *Function* [optional] | ||
`function (ns, arg1, arg2, ...) {}` see [`emit()`](#emitns). | ||
- **`context`** *Object* [optional] | ||
Context used when calling callback. | ||
--- | ||
- If no `ns` provided, removes *all* listeners; | ||
- if no `callback` provided, removes *all* listeners for given `ns`; | ||
- if no `context` provided, remove a listener for given `ns` and `callback`; | ||
- if `context` provided, removes a listener for given `ns`, `callback` and `context`. | ||
## `emit(ns, ...)` | ||
Emits an event. | ||
- **`ns`** *String* [optional] | ||
Target namespace. | ||
- **`...`** *Mixed* [optional] | ||
Any argument given after `ns` will be passed to listener's callback. See [examples](#examples). | ||
## Inheritance | ||
See this [CoderWall tip](https://coderwall.com/p/3bhwnw). | ||
# Examples | ||
## Example 1: simple event | ||
```javascript | ||
var ee = new EventEmitter(); | ||
ee.on('someevent', function (ns, val1, val2) { | ||
console.log(ns, val1, val2); | ||
}); | ||
ee.emit('someevent', 123, 'abc'); // -> 'someevent', 123, 'abc' | ||
``` | ||
## Example 2: wildcard event | ||
```javascript | ||
var ee = new EventEmitter(); | ||
ee.on('room.*', function (ns, data) { | ||
console.log(ns, data); | ||
}); | ||
ee.emit('room.user.enter', 'john'); // -> 'room.user.enter', 'john' | ||
ee.emit('room.user.leave', 'john'); // -> 'room.user.leave', 'john' | ||
ee.emit('room.topic.update', 'JavaScript is awesome!'); // -> 'room.topic.update', 'JavaScript is awesome!' | ||
``` | ||
## Example 3: on, once, off | ||
```javascript | ||
var ee = new EventEmitter(); | ||
ee.on('room.*', function (ns, data) { | ||
console.log(ns, data); | ||
}); | ||
ee.once('room.user.enter', function (ns, user) { | ||
console.log('Hello ' + user + '! You\'re the first in!'); | ||
}); | ||
ee.emit('room.user.enter', 'john'); | ||
// -> 'room.user.enter', 'john' | ||
// -> 'Hello john! You're the first in!' | ||
ee.off('room.*'); | ||
ee.emit('room.user.leave', 'john'); // Nothing is logged (because we offed 'room.*') | ||
``` | ||
## Example 4: context | ||
```javascript | ||
var ee = new EventEmitter(); | ||
var counter = { | ||
'enter': 0, | ||
'leave': 0 | ||
}; | ||
ee.on('room.user.enter', function (ns) { | ||
this.enter += 1; | ||
}, counter); | ||
ee.on('room.user.leave', function (ns) { | ||
this.leave += 1; | ||
}, counter); | ||
ee.emit('room.user.enter', 'john'); | ||
ee.emit('room.user.leave', 'mary'); | ||
ee.emit('room.user.enter', 'george'); | ||
ee.emit('room.user.enter', 'paul'); | ||
console.log(counter); // -> {'enter': 3, 'leave': 1} | ||
``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
26322
145
1