Skip to content

Commit 1fc467f

Browse files
committed
fixed ts errors
1 parent c588c8d commit 1fc467f

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

src/rateLimiters/tokenBucket.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

102106
export default TokenBucket;

0 commit comments

Comments
 (0)