@@ -44,14 +44,14 @@ class TokenBucket implements RateLimiter {
4444 if ( tokens > this . capacity ) {
4545 // reject the request, not enough tokens could even be in the bucket
4646 // TODO: add key to cache for next request.
47- return this . processRequestResponse ( false , this . capacity ) ;
47+ return TokenBucket . processRequestResponse ( false , this . capacity ) ;
4848 }
4949 const newUserBucket : RedisBucket = {
5050 tokens : this . capacity - tokens ,
5151 timestamp,
5252 } ;
5353 await this . client . setEx ( uuid , keyExpiry , JSON . stringify ( newUserBucket ) ) ;
54- return this . processRequestResponse ( true , newUserBucket . tokens ) ;
54+ return TokenBucket . processRequestResponse ( true , newUserBucket . tokens ) ;
5555 }
5656
5757 // parse the returned thring form redis and update their token budget based on the time lapse between queries
@@ -61,14 +61,14 @@ class TokenBucket implements RateLimiter {
6161 if ( bucket . tokens < tokens ) {
6262 // reject the request, not enough tokens in bucket
6363 // TODO upadte expirey and timestamp despite rejected request
64- return this . processRequestResponse ( false , bucket . tokens ) ;
64+ return TokenBucket . processRequestResponse ( false , bucket . tokens ) ;
6565 }
6666 const updatedUserBucket = {
6767 tokens : bucket . tokens - tokens ,
6868 timestamp,
6969 } ;
7070 await this . client . setEx ( uuid , keyExpiry , JSON . stringify ( updatedUserBucket ) ) ;
71- return this . processRequestResponse ( true , updatedUserBucket . tokens ) ;
71+ return TokenBucket . processRequestResponse ( true , updatedUserBucket . tokens ) ;
7272 }
7373
7474 /**
@@ -91,12 +91,16 @@ class TokenBucket implements RateLimiter {
9191 return updatedTokenCount > this . capacity ? 10 : updatedTokenCount ;
9292 } ;
9393
94- private processRequestResponse = ( success : boolean , tokens : number ) : RateLimiterResponse => {
95- return {
96- success,
97- tokens,
98- } ;
99- } ;
94+ /**
95+ * A helper function to create the response object from 'processRequest'
96+ */
97+ private static processRequestResponse = (
98+ success : boolean ,
99+ tokens : number
100+ ) : RateLimiterResponse => ( {
101+ success,
102+ tokens,
103+ } ) ;
100104}
101105
102106export default TokenBucket ;
0 commit comments