@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
5 lines (4 loc) • 957 B
TypeScript
/**
* @module RateLimiter
*/
export declare const rateLimiterLua = "\n-- @template TMetrics\n-- @param rateLimiterStorage RateLimiterStorage<AllRateLimiterState<TMetrics>>\n-- @param rateLimiterStateManager RateLimiterStateManager<TMetrics>\n-- @param currentDate number\n-- @return IRateLimiterAdapter\nlocal function RateLimiter(rateLimiterStorage, rateLimiterStateManager, currentDate)\n return {\n -- @param key string\n -- @param limit number\n -- @return IRedisJsonRateLimiterState\n updateState = function(key, limit)\n return rateLimiterStorage.atomicUpdate({\n key = key,\n update = function(state)\n return rateLimiterStateManager.updateState(\n limit,\n currentDate\n )(rateLimtierStateManager.track(currentDate)(state))\n end\n })\n end,\n }\nend\n";