@ingeze/api-error
Version:
A TypeScript library for handling HTTP errors in Express, NestJS, and Fastify APIs.
81 lines (80 loc) • 2.29 kB
JavaScript
import { ErrorHandler } from "./error-handler.js";
class UnauthorizedError extends ErrorHandler {
constructor(messageOrDetails, type = "UNAUTHORIZED", details) {
if (typeof messageOrDetails === "string") {
super(messageOrDetails, 401, type, details);
} else {
super("Unauthorized", 401, type, messageOrDetails);
}
}
}
class InvalidTokenError extends UnauthorizedError {
/**
* Creates a new InvalidTokenError instance.
*
* @param {Record<string, unknown>=} details Optional additional error details.
*/
constructor(details) {
super("Invalid token", "INVALID_TOKEN", details);
}
}
class InvalidCredentialsError extends UnauthorizedError {
/**
* Creates a new InvalidCredentialsError instance.
*
* @param {Record<string, unknown>} details Additional error details.
*/
constructor(details) {
super("Invalid credentials", "INVALID_CREDENTIALS", details);
}
}
class AccessTokenError extends UnauthorizedError {
/**
* Creates a new AccessTokenError instance.
*
* @param {Record<string, unknown>} details Additional error details.
*/
constructor(details) {
super("Access token invalid or expired", "ACCESS_TOKEN_INVALID", details);
}
}
class RefreshTokenError extends UnauthorizedError {
/**
* Creates a new RefreshTokenError instance.
*
* @param {Record<string, unknown>} details Additional error details.
*/
constructor(details) {
super("Refresh token invalid or expired", "REFRESH_TOKEN_INVALID", details);
}
}
class APIKeyError extends UnauthorizedError {
/**
* Creates a new APIKeyError instance.
*
* @param {Record<string, unknown>} details Additional error details.
*/
constructor(details) {
super("Invalid API key", "API_KEY_INVALID", details);
}
}
class UnauthorizedDeviceError extends UnauthorizedError {
/**
* Creates a new UnauthorizedDeviceError instance.
*
* @param {Record<string, unknown>} details Additional error details.
*/
constructor(details) {
super("Unauthorized device", "UNAUTHORIZED_DEVICE", details);
}
}
export {
APIKeyError,
AccessTokenError,
InvalidCredentialsError,
InvalidTokenError,
RefreshTokenError,
UnauthorizedDeviceError,
UnauthorizedError
};
//# sourceMappingURL=unauthorized-error.js.map