16
16
*/
17
17
18
18
import { Path } from '../util/Path' ;
19
- import { log , logger , exceptionGuard } from '../util/util' ;
19
+ import { exceptionGuard , log , logger } from '../util/util' ;
20
20
import { Event } from './Event' ;
21
21
22
22
/**
@@ -45,20 +45,20 @@ export class EventQueue {
45
45
*/
46
46
queueEvents ( eventDataList : Event [ ] ) {
47
47
// We group events by path, storing them in a single EventList, to make it easier to skip over them quickly.
48
- let currList = null ;
48
+ let currList : EventList | null = null ;
49
49
for ( let i = 0 ; i < eventDataList . length ; i ++ ) {
50
- const eventData = eventDataList [ i ] ;
51
- const eventPath = eventData . getPath ( ) ;
52
- if ( currList !== null && ! eventPath . equals ( currList . getPath ( ) ) ) {
50
+ const data = eventDataList [ i ] ;
51
+ const path = data . getPath ( ) ;
52
+ if ( currList !== null && ! path . equals ( currList . path ) ) {
53
53
this . eventLists_ . push ( currList ) ;
54
54
currList = null ;
55
55
}
56
56
57
57
if ( currList === null ) {
58
- currList = new EventList ( eventPath ) ;
58
+ currList = { events : [ ] , path } ;
59
59
}
60
60
61
- currList . add ( eventData ) ;
61
+ currList . events . push ( data ) ;
62
62
}
63
63
if ( currList ) {
64
64
this . eventLists_ . push ( currList ) ;
@@ -107,9 +107,9 @@ export class EventQueue {
107
107
for ( let i = 0 ; i < this . eventLists_ . length ; i ++ ) {
108
108
const eventList = this . eventLists_ [ i ] ;
109
109
if ( eventList ) {
110
- const eventPath = eventList . getPath ( ) ;
110
+ const eventPath = eventList . path ;
111
111
if ( predicate ( eventPath ) ) {
112
- this . eventLists_ [ i ] . raise ( ) ;
112
+ eventListRaise ( this . eventLists_ [ i ] ) ;
113
113
this . eventLists_ [ i ] = null ;
114
114
} else {
115
115
sentAll = false ;
@@ -125,33 +125,24 @@ export class EventQueue {
125
125
}
126
126
}
127
127
128
- export class EventList {
129
- private events_ : Event [ ] = [ ] ;
130
-
131
- constructor ( private readonly path_ : Path ) { }
132
-
133
- add ( eventData : Event ) {
134
- this . events_ . push ( eventData ) ;
135
- }
128
+ interface EventList {
129
+ events : Event [ ] ;
130
+ path : Path ;
131
+ }
136
132
137
- /**
138
- * Iterates through the list and raises each event
139
- */
140
- raise ( ) {
141
- for ( let i = 0 ; i < this . events_ . length ; i ++ ) {
142
- const eventData = this . events_ [ i ] ;
143
- if ( eventData !== null ) {
144
- this . events_ [ i ] = null ;
145
- const eventFn = eventData . getEventRunner ( ) ;
146
- if ( logger ) {
147
- log ( 'event: ' + eventData . toString ( ) ) ;
148
- }
149
- exceptionGuard ( eventFn ) ;
133
+ /**
134
+ * Iterates through the list and raises each event
135
+ */
136
+ function eventListRaise ( eventList : EventList ) {
137
+ for ( let i = 0 ; i < eventList . events . length ; i ++ ) {
138
+ const eventData = eventList . events [ i ] ;
139
+ if ( eventData !== null ) {
140
+ eventList . events [ i ] = null ;
141
+ const eventFn = eventData . getEventRunner ( ) ;
142
+ if ( logger ) {
143
+ log ( 'event: ' + eventData . toString ( ) ) ;
150
144
}
145
+ exceptionGuard ( eventFn ) ;
151
146
}
152
147
}
153
-
154
- getPath ( ) : Path {
155
- return this . path_ ;
156
- }
157
148
}
0 commit comments