@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.
40 lines • 1.01 kB
JavaScript
/**
* @module RateLimiter
*/
import {} from "../../rate-limiter/contracts/rate-limiter-state.contract.js";
/**
* The error is throw when rate limiter blocks the attempts.
*
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter/contracts"`
* @group Errors
*/
export class BlockedRateLimiterError extends Error {
state;
constructor(state, message, cause) {
super(message, { cause });
this.state = state;
this.name = BlockedRateLimiterError.name;
}
}
/**
*
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter/contracts"`
* @group Errors
*/
export const CIRCUIT_BREAKER_ERRORS = {
Blocked: BlockedRateLimiterError,
};
/**
*
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter/contracts"`
* @group Errors
*/
export function isRateLimiterError(value) {
for (const ErrorClass of Object.values(CIRCUIT_BREAKER_ERRORS)) {
if (!(value instanceof ErrorClass)) {
return false;
}
}
return true;
}
//# sourceMappingURL=rate-limiter.errors.js.map