@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.
37 lines • 1.34 kB
JavaScript
/**
* @module RateLimiter
*/
import { resolveFixedWindowLimiterSettings, serializeFixedWindowLimiterSettings, } from "../../../rate-limiter/implementations/policies/fixed-window-limiter/_module.js";
import { resolveSlidingWindowLimiterSettings, serializeSlidingWindowLimiterSettings, } from "../../../rate-limiter/implementations/policies/sliding-window-limiter/_module.js";
import { LIMITER_POLICIES, } from "../../../rate-limiter/implementations/policies/types.js";
/**
* @internal
*/
export function resolveRateLimiterPolicySettings(settings) {
if (settings.type === LIMITER_POLICIES.FIXED_WINDOW) {
return {
type: LIMITER_POLICIES.FIXED_WINDOW,
...resolveFixedWindowLimiterSettings(settings),
};
}
return {
type: LIMITER_POLICIES.SLIDING_WINDOW,
...resolveSlidingWindowLimiterSettings(settings),
};
}
/**
* @internal
*/
export function serializeRateLimiterPolicySettingsEnum(settings) {
if (settings.type === LIMITER_POLICIES.FIXED_WINDOW) {
return {
type: LIMITER_POLICIES.FIXED_WINDOW,
...serializeFixedWindowLimiterSettings(settings),
};
}
return {
type: LIMITER_POLICIES.SLIDING_WINDOW,
...serializeSlidingWindowLimiterSettings(settings),
};
}
//# sourceMappingURL=_shared.js.map