File tree Expand file tree Collapse file tree 3 files changed +102
-1
lines changed
Expand file tree Collapse file tree 3 files changed +102
-1
lines changed Original file line number Diff line number Diff line change 1- # edispatcher
21Event Dispatcher
2+ ======
3+ Tiny dependency free event dispatcher
4+
5+
6+ ## Install
7+
8+ Use npm to install just run
9+
10+ ``` bash
11+ npm install edispatcher
12+ ```
13+
14+ ## Usage
15+
16+ ``` javascript
17+ var dispatcher = require (' edispatcher' );
18+
19+ dispatcher .on (' event' , function (event , data ) {
20+ console .log (' Got event with data ' + data);
21+ });
22+
23+ dispatcher .send (' event' , ' data' );
24+ ```
25+
26+ ## Methods
27+
28+ ### on(event_name, callback)
29+
30+ Dispatch triggered event
31+ - * event_name* - name of event as string
32+ - * callback* - callback function to trigger. It applies event name, passed data, source and event suscribers optional
33+
34+ The method returns id of subscriber
35+
36+ ### off(id)
37+
38+ Disable trigger handler
39+ - * id* - identifier of subscriber
40+
41+ ### all(callback)
42+
43+ Execute on any triggered event
44+ - * callback* - callback function to trigger
45+
46+ ### send(event_name, data, source)
47+
48+ Trigger new event
49+ - * event_name* - name of event to be triggered as string
50+ - * data* - data that should be passed
51+ - * source* - trigger source
Original file line number Diff line number Diff line change 1+ module . exports = {
2+ subscribers : { } ,
3+
4+ on : function ( event_name , callback ) {
5+ ( this . subscribers [ event_name ] = this . subscribers [ event_name ] || [ ] ) . push (
6+ callback
7+ ) ;
8+ return callback ;
9+ } ,
10+
11+ off : function ( id ) {
12+ for ( var event_name in this . subscribers ) {
13+ var event_subscribers = this . subscribers [ event_name ] ;
14+ for ( var i = 0 ; i < event_subscribers . length ; i ++ ) {
15+ if ( event_subscribers [ i ] === id ) {
16+ event_subscribers . splice ( i , 1 ) ;
17+ }
18+ }
19+ }
20+ } ,
21+
22+ all : function ( callback ) {
23+ return this . on ( "*" , callback ) ;
24+ } ,
25+
26+ send : function ( event_name , data , source ) {
27+ var event_subscribers =
28+ ( this . subscribers [ event_name ] || [ ] ) . concat ( this . subscribers [ "*" ] || [ ] ) ;
29+ for ( var i = 0 ; i < event_subscribers . length ; i ++ ) {
30+ event_subscribers [ i ] ( event_name , data , source , event_subscribers ) ;
31+ }
32+ }
33+ } ;
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " edispatcher" ,
3+ "version" : " 1.0.0" ,
4+ "description" : " Tiny dependency free event dispatcher" ,
5+ "main" : " index.js" ,
6+ "scripts" : {
7+ "test" : " echo \" Error: no test specified\" && exit 1"
8+ },
9+ "repository" : {
10+ "type" : " git" ,
11+ "url" : " git+https://github.com/dmitrykuzmenkov/edispatcher.git"
12+ },
13+ "author" : " Dmitry Kuzmenkov <dmitry@wagh.ru>" ,
14+ "license" : " MIT" ,
15+ "bugs" : {
16+ "url" : " https://github.com/dmitrykuzmenkov/edispatcher/issues"
17+ },
18+ "homepage" : " https://github.com/dmitrykuzmenkov/edispatcher#readme"
19+ }
You can’t perform that action at this time.
0 commit comments