@campusiq/sdk
Version:
Official JavaScript/TypeScript SDK for CampusIQ - A comprehensive school management system API
42 lines • 1.49 kB
JavaScript
export class CampusIQError extends Error {
constructor(message, statusCode = 500, code = 'UNKNOWN_ERROR', requestId) {
super(message);
this.name = 'CampusIQError';
this.statusCode = statusCode;
this.code = code;
this.requestId = requestId;
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, CampusIQError);
}
}
toJSON() {
return {
name: this.name,
message: this.message,
statusCode: this.statusCode,
code: this.code,
requestId: this.requestId,
stack: this.stack
};
}
static isNetworkError(error) {
return error instanceof CampusIQError && error.code === 'NETWORK_ERROR';
}
static isAuthenticationError(error) {
return error instanceof CampusIQError && error.statusCode === 401;
}
static isAuthorizationError(error) {
return error instanceof CampusIQError && error.statusCode === 403;
}
static isNotFoundError(error) {
return error instanceof CampusIQError && error.statusCode === 404;
}
static isRateLimitError(error) {
return error instanceof CampusIQError && error.statusCode === 429;
}
static isServerError(error) {
return error instanceof CampusIQError && error.statusCode >= 500;
}
}
//# sourceMappingURL=error.js.map