aluvia-ts-sdk
Version:
Official Aluvia proxy management SDK for Node.js and modern JavaScript environments
84 lines • 2.53 kB
JavaScript
;
/**
* Custom error types for the Aluvia SDK
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.RateLimitError = exports.NotFoundError = exports.ValidationError = exports.ApiError = exports.NetworkError = exports.AuthenticationError = exports.AluviaError = void 0;
/**
* Base class for all Aluvia SDK errors
*/
class AluviaError extends Error {
constructor(message, details) {
super(message);
this.details = details;
this.name = this.constructor.name;
// Maintain proper stack trace for where our error was thrown
if (Error.captureStackTrace) {
Error.captureStackTrace(this, this.constructor);
}
}
}
exports.AluviaError = AluviaError;
/**
* Thrown when API authentication fails
*/
class AuthenticationError extends AluviaError {
constructor(message = "Authentication failed", details) {
super(message, details);
this.code = "AUTHENTICATION_ERROR";
}
}
exports.AuthenticationError = AuthenticationError;
/**
* Thrown when API requests fail due to network issues
*/
class NetworkError extends AluviaError {
constructor(message = "Network request failed", details) {
super(message, details);
this.code = "NETWORK_ERROR";
}
}
exports.NetworkError = NetworkError;
/**
* Thrown when API returns an error response
*/
class ApiError extends AluviaError {
constructor(message = "API request failed", statusCode, details) {
super(message, details);
this.statusCode = statusCode;
this.code = "API_ERROR";
}
}
exports.ApiError = ApiError;
/**
* Thrown when input validation fails
*/
class ValidationError extends AluviaError {
constructor(message = "Validation failed", details) {
super(message, details);
this.code = "VALIDATION_ERROR";
}
}
exports.ValidationError = ValidationError;
/**
* Thrown when a requested resource is not found
*/
class NotFoundError extends AluviaError {
constructor(message = "Resource not found", details) {
super(message, details);
this.code = "NOT_FOUND_ERROR";
}
}
exports.NotFoundError = NotFoundError;
/**
* Thrown when rate limits are exceeded
*/
class RateLimitError extends AluviaError {
constructor(message = "Rate limit exceeded", retryAfter, details) {
super(message, details);
this.retryAfter = retryAfter;
this.code = "RATE_LIMIT_ERROR";
}
}
exports.RateLimitError = RateLimitError;
//# sourceMappingURL=errors.js.map