@defindex/sdk
Version:
Official TypeScript SDK for DeFindex API
68 lines • 2.1 kB
JavaScript
;
/**
* Error types for DeFindex SDK
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefindexSDKError = void 0;
exports.isApiError = isApiError;
exports.isAuthError = isAuthError;
exports.isValidationError = isValidationError;
exports.isNetworkError = isNetworkError;
exports.isRateLimitError = isRateLimitError;
/**
* Type guard to check if an error is an API error
*/
function isApiError(error) {
return error &&
typeof error === 'object' &&
'message' in error &&
'statusCode' in error &&
'error' in error;
}
/**
* Type guard to check if an error is an authentication error
*/
function isAuthError(error) {
return isApiError(error) &&
['Unauthorized', 'Forbidden', 'TokenExpired', 'InvalidCredentials'].includes(error.error);
}
/**
* Type guard to check if an error is a validation error
*/
function isValidationError(error) {
return isApiError(error) &&
['BadRequest', 'ValidationFailed'].includes(error.error);
}
/**
* Type guard to check if an error is a network/blockchain error
*/
function isNetworkError(error) {
return isApiError(error) &&
['NetworkError', 'TransactionFailed', 'ContractError'].includes(error.error);
}
/**
* Type guard to check if an error is a rate limit error
*/
function isRateLimitError(error) {
return isApiError(error) && error.error === 'TooManyRequests';
}
/**
* Enhanced error class for SDK operations
*/
class DefindexSDKError extends Error {
constructor(message, statusCode = 500, errorType = 'UnknownError', details) {
super(message);
this.name = 'DefindexSDKError';
this.statusCode = statusCode;
this.errorType = errorType;
this.details = details;
}
/**
* Create SDK error from API error response
*/
static fromApiError(apiError) {
return new DefindexSDKError(apiError.message, apiError.statusCode, apiError.error, 'details' in apiError ? apiError.details : undefined);
}
}
exports.DefindexSDKError = DefindexSDKError;
//# sourceMappingURL=error.types.js.map