UNPKG

remix-conform-rpc

Version:

Supercharge your remix/react-router actions and loaders with typesafe param and query parsing using conform and zod

28 lines 1.14 kB
import { getParamsOrFail, getSearchParamsOrFail } from "remix-params-helper"; import { ZodSchema } from "zod"; import { respondWithError } from "../utils/error.js"; async function setupLoader({ loaderArgs, querySchema, load, paramSchema, middleware }) { const params = paramSchema ? getParamsOrFail(loaderArgs.params, paramSchema) : undefined; const query = querySchema ? getSearchParamsOrFail(loaderArgs.request, querySchema) : undefined; const loadArgs = { request: loaderArgs.request, context: loaderArgs.context, ...(params && { params }), ...(query && { query }) }; const middlewareResult = middleware ? await middleware(loadArgs) : undefined; try { return await load({ ...loadArgs, ...middlewareResult }); } catch (thrownValue) { if (thrownValue instanceof Response) { throw thrownValue; } throw respondWithError(null, { message: thrownValue instanceof Error ? thrownValue.message : "unknown_error", code: 500 }); } } export { setupLoader }; //# sourceMappingURL=setup-loader.server.js.map