@@ -14,8 +14,8 @@ class TimedItem<T> {
1414 * Instead, when a new request comes, we update the allowReqRateThres.
1515 */
1616export class RateLimiter {
17- requestedQueue : Denque < TimedItem < any > >
18- respondedQueue : Denque < TimedItem < any > >
17+ requestedQueue : Denque < TimedItem < unknown > >
18+ respondedQueue : Denque < TimedItem < unknown > >
1919
2020 maxRate = 3 ; // 3 times/s
2121 minRate : number = 1 / 3 ; //1 time/3s
@@ -36,8 +36,8 @@ export class RateLimiter {
3636 }
3737
3838 // returns: can this request be responded?
39- public addRequest ( item : any ) : boolean {
40- const timedItem = new TimedItem < any > ( ) ;
39+ public addRequest < T > ( item : T ) : boolean {
40+ const timedItem = new TimedItem < T > ( ) ;
4141 timedItem . item = item ;
4242 timedItem . timestamp = Date . now ( ) ;
4343 this . requestedQueue . push ( timedItem )
@@ -56,19 +56,19 @@ export class RateLimiter {
5656 private cleanQueue ( ) {
5757 const now = Date . now ( ) ;
5858 // front is the oldest event
59- //#ifdef DEVELOPMENT_BUILD
59+ //#ifdef DEVELOPMENT_BUILD
6060 const oldReqQueueSize = this . requestedQueue . length ;
6161 const oldRespQueueSize = this . respondedQueue . length ;
62- //#endif
62+ //#endif
6363 while ( this . requestedQueue . peekFront ( ) && this . requestedQueue . peekFront ( ) ! . timestamp < now - this . window * 1000 ) {
6464 this . requestedQueue . shift ( ) ;
6565 }
6666 while ( this . respondedQueue . peekFront ( ) && this . respondedQueue . peekFront ( ) ! . timestamp < now - this . window * 1000 ) {
6767 this . respondedQueue . shift ( ) ;
6868 }
69- //#ifdef DEVELOPMENT_BUILD
69+ //#ifdef DEVELOPMENT_BUILD
7070 console . log ( `[Rate] reqQueue: ${ this . requestedQueue . length } , respQueue: ${ this . respondedQueue . length } , oldReqQueueSize: ${ oldReqQueueSize } , oldRespQueueSize: ${ oldRespQueueSize } ` ) ;
71- //#endif
71+ //#endif
7272 }
7373
7474 private calcFreq ( window : number , q : Denque < TimedItem < any > > ) : number {
0 commit comments