1.1.4 • Published 8 years ago
event-station v1.1.4
A versatile and robust event emitter class.
Features
- Versatile API that's flexible and consistent
- Cross-emitter listening, allowing for easier management of many listeners
- Regular expression listeners
- Asynchronous Listeners with
emitAsync()
- Listener modifiers; a fluent interface for modifying listeners
- Set callbacks and contexts with
calling()
andusing()
- Migration via
moveTo()
,addTo()
, andremoveFrom()
- Remove listeners from all emitters with
off()
- Limit occurrences with
occur()
pause()
,resume()
, andisPaused()
- Create evented
race()
andall()
promises - Duplication with
clone()
- Set callbacks and contexts with
- Browser environment compatible
- Competitive and consistent performance
- Rx compatible with
toObservable()
- Helpers like
stopPropagation()
andlistenerCount
extend()
any object- Global and per-instance
config()
options - Over 200 tests with 100% code coverage
- Written in TypeScript
Example
import EventStation from 'event-station';
class Spaceship extends EventStation {
launch(destination) {
this.emit('launch', destination);
}
}
let Normandy = new Spaceship();
let Tempest = new Spaceship();
// Add two listeners via a listener map
let listeners = Normandy.on({
launch: (dest) => console.log(`Spaceship launched! En route to ${dest}.`),
dock: () => console.log('Spaceship docking.'),
});
// Attach the same listeners to Tempest that are on Normandy
listeners.addTo(Tempest);
// Launch Tempest when Normandy launches
Tempest.hear(Normandy, 'launch')
.once((dest) => Tempest.launch(dest));
// Launch both ships to the Andromeda Galaxy
Normandy.launch('Messier 31');
// Stop listening to both ships
listeners.off();
Installation
Node.js via Yarn
yarn add event-station
Node.js via npm
npm install event-station --save
SystemJS via jspm
jspm install npm:event-station
Web browser via Bower
bower install event-station
Web browser via <script>
<script src="dist/event-station.min.js"></script>
<script>new EventStation();</script>
Downloads
Latest Release
- ES5 Build
- Compatible with AMD and CommonJS module loaders
- Assigns an
EventStation
global when not imported as a module
- ES6 Build
- For use with an ES6 module loader
- jsnext Build
- ES5 compatible objects as an ES module. See the Rollup Wiki for details.
- ES5 Minified Build
- ES5 Build minified with UglifyJS 2
- Source Map
- The source map for the minified build
- Definition
- Generated TypeScript definition
Documentation
- Usage documentation
- This guide will explain the general usage of Event-Station.
- Module definition
- The associated definition file can be used as an API reference.
License
Copyright © 2016 Morris Allison III. Released under the MIT license.
References
Event-Station was influenced by EventEmitter2 and Backbone.Events.
1.1.4
8 years ago
1.1.3
8 years ago
1.1.2
9 years ago
1.1.1
9 years ago
1.1.0
9 years ago
1.1.0-beta.3
9 years ago
1.1.0-beta
9 years ago
1.0.0
10 years ago
1.0.0-beta
10 years ago
0.5.2
10 years ago
0.5.1
10 years ago
0.5.0
10 years ago
0.4.1
10 years ago
0.4.0
10 years ago
0.3.0
10 years ago
0.2.1
10 years ago
0.2.0
10 years ago
0.1.2
10 years ago
0.1.1
10 years ago
0.1.0
10 years ago