import { TRPCError } from "@trpc/server" export function unauthorizedError(cause?: unknown) { return new TRPCError({ code: "UNAUTHORIZED", message: `Unauthorized`, cause, }) } export function forbiddenError(cause?: unknown) { return new TRPCError({ code: "FORBIDDEN", message: `Forbidden`, cause, }) } export function badRequestError(cause?: unknown) { return new TRPCError({ code: "BAD_REQUEST", message: `Bad request`, cause, }) } export function notFound(cause?: unknown) { return new TRPCError({ code: "NOT_FOUND", message: `Not found`, cause, }) } export function internalServerError(cause?: unknown) { return new TRPCError({ code: "INTERNAL_SERVER_ERROR", message: `Internal Server Error`, cause, }) } export const SESSION_EXPIRED = "SESSION_EXPIRED" export class SessionExpiredError extends Error {} export function sessionExpiredError() { return new TRPCError({ code: "UNAUTHORIZED", message: SESSION_EXPIRED, cause: new SessionExpiredError(SESSION_EXPIRED), }) } export const PUBLIC_UNAUTHORIZED = "PUBLIC_UNAUTHORIZED" export class PublicUnauthorizedError extends Error {} export function publicUnauthorizedError() { return new TRPCError({ code: "UNAUTHORIZED", message: PUBLIC_UNAUTHORIZED, cause: new PublicUnauthorizedError(PUBLIC_UNAUTHORIZED), }) }