File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ wrap ( ( ) => {
2+ function eventEmitter ( ) {
3+ const events = {
4+ // eventName: [events]
5+ } ;
6+ return {
7+ on : function ( event , fn ) {
8+ if ( typeof fn !== "function" ) return eventManager ;
9+ event . split ( ' ' ) . forEach ( ( e ) => {
10+ if ( ! events . hasOwnProperty ( e ) ) {
11+ events [ e ] = [ ] ;
12+ }
13+ events [ e ] . push ( fn ) ;
14+ } ) ;
15+ return eventManager ;
16+ } ,
17+ emit : function ( event , data , cancelable = false ) {
18+ const lEvents = events [ event ] ;
19+ let ran = false ;
20+ let canceled = false ;
21+ if ( Array . isArray ( lEvents ) && lEvents . length ) {
22+ ran = true ;
23+ lEvents . forEach ( function call ( ev ) {
24+ // Should we stop processing on cancel? Probably.
25+ try {
26+ const meta = { event, cancelable, canceled } ;
27+ ev . call ( meta , data ) ;
28+ canceled = ! ! meta . canceled ;
29+ } catch ( e ) {
30+ console . error ( `Error ocurred while parsing event: ${ ev . displayName || ev . name || 'unnamed' } (${ event } )` ) ;
31+ console . error ( e . stack ) ;
32+ }
33+ } ) ;
34+ }
35+ return {
36+ ran,
37+ canceled : cancelable && canceled
38+ } ;
39+ } ,
40+ emitJSON : function ( event , data , cancelable ) {
41+ return this . emit ( event , JSON . parse ( data ) , cancelable ) ;
42+ } ,
43+ } ;
44+ }
45+ fn . eventEmitter = eventEmitter ;
46+ } ) ;
Original file line number Diff line number Diff line change 1- const eventManager = wrap ( ( ) => {
2- const events = {
3- // eventName: [events]
4- } ;
5- return {
6- on : function ( event , fn ) {
7- if ( typeof fn !== "function" ) return eventManager ;
8- event . split ( ' ' ) . forEach ( ( e ) => {
9- if ( ! events . hasOwnProperty ( e ) ) {
10- events [ e ] = [ ] ;
11- }
12- events [ e ] . push ( fn ) ;
13- } ) ;
14- return eventManager ;
15- } ,
16- emit : function ( event , data , cancelable = false ) {
17- const lEvents = events [ event ] ;
18- let ran = false ;
19- let canceled = false ;
20- if ( Array . isArray ( lEvents ) && lEvents . length ) {
21- ran = true ;
22- lEvents . forEach ( function call ( ev ) {
23- // Should we stop processing on cancel? Probably.
24- try {
25- const meta = { event, cancelable, canceled } ;
26- ev . call ( meta , data ) ;
27- canceled = ! ! meta . canceled ;
28- } catch ( e ) {
29- console . error ( `Error ocurred while parsing event: ${ ev . displayName || ev . name || 'unnamed' } (${ event } )` ) ;
30- console . error ( e . stack ) ;
31- }
32- } ) ;
33- }
34- return {
35- ran,
36- canceled : cancelable && canceled
37- } ;
38- } ,
39- emitJSON : function ( event , data , cancelable ) {
40- return this . emit ( event , JSON . parse ( data ) , cancelable ) ;
41- } ,
42- } ;
43- } ) ;
1+ const eventManager = wrap ( fn . eventEmitter ) ;
You can’t perform that action at this time.
0 commit comments