UNPKG

remix-conform-rpc

Version:

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

17 lines (16 loc) 1.21 kB
import { ZodSchema } from "zod"; import type { WithParams } from "../utils/with-params.js"; import type { AppLoadContext, LoaderFunctionArgs } from "react-router"; type LoaderArguments<TParamSchema extends ZodSchema | undefined, TQuerySchema extends ZodSchema | undefined> = WithParams<TParamSchema, TQuerySchema, { request: LoaderFunctionArgs["request"]; context: AppLoadContext; }>; interface SetupLoaderArgs<TParamSchema extends ZodSchema | undefined, TQuerySchema extends ZodSchema | undefined, TResult, TMiddlewareResult> { loaderArgs: LoaderFunctionArgs; paramSchema?: TParamSchema; querySchema?: TQuerySchema; load: (args: LoaderArguments<TParamSchema, TQuerySchema> & (TMiddlewareResult extends undefined ? {} : TMiddlewareResult)) => Promise<TResult>; middleware?: (args: LoaderArguments<TParamSchema, TQuerySchema>) => Promise<TMiddlewareResult>; } declare function setupLoader<TParamSchema extends ZodSchema | undefined, TQuerySchema extends ZodSchema | undefined, TResult, TMiddlewareResult>({ loaderArgs, querySchema, load, paramSchema, middleware }: SetupLoaderArgs<TParamSchema, TQuerySchema, TResult, TMiddlewareResult>): Promise<TResult>; export { setupLoader };