UNPKG

@ingeze/api-error

Version:

A TypeScript library for handling HTTP errors in Express, NestJS, and Fastify APIs.

81 lines (80 loc) 2.29 kB
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