UNPKG

@thalorlabs/errors

Version:

Enhanced exception handling system for TypeScript applications with comprehensive error classes and debugging capabilities

52 lines (51 loc) 1.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.QuotaExceededError = void 0; const CustomError_1 = __importDefault(require("./CustomError")); /** * Error for quota exceeded scenarios with usage information. * * Used when resource quotas are exceeded with specific usage and reset timing data. * Provides structured quota information for API responses with HTTP 429 status. * * @example * throw new QuotaExceededError( * 'API quota exceeded', * 'requests', // quotaType * 1000, // currentUsage * 1000, // maxQuota * new Date(Date.now() + 86400000), // resetTime (24 hours) * 'req-123' * ); * * throw new QuotaExceededError('Storage quota exceeded', 'storage', 5000000000, 5000000000, undefined, 'req-456'); */ class QuotaExceededError extends CustomError_1.default { constructor(message = 'Quota Exceeded', quotaType, currentUsage, maxQuota, resetTime, requestId, context) { super(429, message, requestId, context); this.quotaType = quotaType; this.currentUsage = currentUsage; this.maxQuota = maxQuota; this.resetTime = resetTime; } getErrorResponse() { const response = super.getErrorResponse(); if (this.quotaType) { response.quotaType = this.quotaType; } if (this.currentUsage !== undefined) { response.currentUsage = this.currentUsage; } if (this.maxQuota !== undefined) { response.maxQuota = this.maxQuota; } if (this.resetTime) { response.resetTime = this.resetTime.toISOString(); } return response; } } exports.QuotaExceededError = QuotaExceededError;