import {
JasniError,
AuthenticationError,
NotFoundError,
ValidationError,
RateLimitError,
ConflictError,
ServerError,
} from 'jasni-sdk'
function handleJasniError(error: unknown): void {
if (!(error instanceof JasniError)) {
console.error('Unexpected error:', error)
return
}
switch (true) {
case error instanceof AuthenticationError:
console.error('Authentication failed. Check your API key.')
// Redirect to login or refresh token
break
case error instanceof NotFoundError:
console.error('Resource not found:', error.message)
// Show 404 page or message
break
case error instanceof ValidationError:
console.error('Invalid request:', error.message)
// Show validation errors to user
break
case error instanceof RateLimitError:
const rateLimitError = error as RateLimitError
console.error('Rate limited. Retry after:', rateLimitError.retryAfter, 'seconds')
// Implement backoff strategy
break
case error instanceof ConflictError:
console.error('Conflict:', error.message)
// Handle duplicate resource
break
case error instanceof ServerError:
console.error('Server error. Please try again later.')
// Show generic error message
break
default:
console.error(`API Error [${error.status}]: ${error.message}`)
}
}
// Usage
try {
await jasni.emails.send({ /* ... */ })
} catch (error) {
handleJasniError(error)
}