import { TRPCClientError } from "@trpc/client"; import { HttpError } from "./http-error"; export function getClientErrorFromUnknown(cause: unknown): Error { if (cause instanceof HttpError) { const message = `${cause.statusCode}: ${cause.message}`; return new Error(message); } if (cause instanceof TRPCClientError) { return new Error(cause.message); } if (cause instanceof Error) { return new Error(cause.message); } if (typeof cause === "string") { return new Error(cause); } return new Error(`Unhandled error of type '${typeof cause}'. Please reach out for our customer support.`); } export const withErrorFromUnknown = (a: (b: Error) => void) => (b: unknown) => a(getClientErrorFromUnknown(b));