import { isRedirectError } from "next/dist/client/components/redirect"; export async function wrapServerPromise(result: Promise) { return result.catch((error) => { if (isRedirectError(error)) throw error; return { error: error.message, }; }); } export function withServerPromise Promise>( fn: T ): (...args: Parameters) => Promise | { error: string }> { return (...args: Parameters) => wrapServerPromise(fn(...args)); }