@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.
29 lines • 969 B
JavaScript
/**
* @module RateLimiter
*/
export const rateLimiterLua = `
-- @template TMetrics
-- @param rateLimiterStorage RateLimiterStorage<AllRateLimiterState<TMetrics>>
-- @param rateLimiterStateManager RateLimiterStateManager<TMetrics>
-- @param currentDate number
-- @return IRateLimiterAdapter
local function RateLimiter(rateLimiterStorage, rateLimiterStateManager, currentDate)
return {
-- @param key string
-- @param limit number
-- @return IRedisJsonRateLimiterState
updateState = function(key, limit)
return rateLimiterStorage.atomicUpdate({
key = key,
update = function(state)
return rateLimiterStateManager.updateState(
limit,
currentDate
)(rateLimtierStateManager.track(currentDate)(state))
end
})
end,
}
end
`;
//# sourceMappingURL=rate-limiter-lua.js.map