UNPKG

@jokoor/sdk

Version:
119 lines 4.2 kB
"use strict"; /** * Jokoor SDK Error Classes */ Object.defineProperty(exports, "__esModule", { value: true }); exports.JokoorWebhookSignatureError = exports.JokoorTimeoutError = exports.JokoorNetworkError = exports.JokoorValidationError = exports.JokoorRateLimitError = exports.JokoorNotFoundError = exports.JokoorPermissionError = exports.JokoorAuthenticationError = exports.JokoorAPIError = exports.JokoorError = void 0; exports.isJokoorError = isJokoorError; exports.createErrorFromResponse = createErrorFromResponse; class JokoorError extends Error { constructor(message) { super(message); this.name = 'JokoorError'; // Maintains proper stack trace for where our error was thrown if (Error.captureStackTrace) { Error.captureStackTrace(this, JokoorError); } } } exports.JokoorError = JokoorError; class JokoorAPIError extends JokoorError { constructor(message, statusCode, code, response) { super(message); this.name = 'JokoorAPIError'; this.statusCode = statusCode; this.code = code; this.response = response; } } exports.JokoorAPIError = JokoorAPIError; class JokoorAuthenticationError extends JokoorError { constructor(message = 'Authentication failed') { super(message); this.name = 'JokoorAuthenticationError'; } } exports.JokoorAuthenticationError = JokoorAuthenticationError; class JokoorPermissionError extends JokoorError { constructor(message = 'Permission denied') { super(message); this.name = 'JokoorPermissionError'; } } exports.JokoorPermissionError = JokoorPermissionError; class JokoorNotFoundError extends JokoorError { constructor(message = 'Resource not found') { super(message); this.name = 'JokoorNotFoundError'; } } exports.JokoorNotFoundError = JokoorNotFoundError; class JokoorRateLimitError extends JokoorError { constructor(message = 'Rate limit exceeded') { super(message); this.name = 'JokoorRateLimitError'; } } exports.JokoorRateLimitError = JokoorRateLimitError; class JokoorValidationError extends JokoorError { constructor(message = 'Validation failed', errors) { super(message); this.name = 'JokoorValidationError'; this.errors = errors; } } exports.JokoorValidationError = JokoorValidationError; class JokoorNetworkError extends JokoorError { constructor(message = 'Network error occurred') { super(message); this.name = 'JokoorNetworkError'; } } exports.JokoorNetworkError = JokoorNetworkError; class JokoorTimeoutError extends JokoorError { constructor(message = 'Request timed out') { super(message); this.name = 'JokoorTimeoutError'; } } exports.JokoorTimeoutError = JokoorTimeoutError; class JokoorWebhookSignatureError extends JokoorError { constructor(message = 'Invalid webhook signature') { super(message); this.name = 'JokoorWebhookSignatureError'; } } exports.JokoorWebhookSignatureError = JokoorWebhookSignatureError; /** * Type guard to check if an error is a JokoorError */ function isJokoorError(error) { return error instanceof JokoorError; } /** * Helper to create appropriate error from API response */ function createErrorFromResponse(response) { const statusCode = response.status || response.statusCode; const data = response.data || response; const message = data.error || data.message || 'An error occurred'; const code = data.code; switch (statusCode) { case 401: return new JokoorAuthenticationError(message); case 403: return new JokoorPermissionError(message); case 404: return new JokoorNotFoundError(message); case 429: return new JokoorRateLimitError(message); case 400: if (data.errors && typeof data.errors === 'object') { return new JokoorValidationError(message, data.errors); } return new JokoorValidationError(message); default: return new JokoorAPIError(message, statusCode, code, data); } } //# sourceMappingURL=errors.js.map