UNPKG

remix-conform-rpc

Version:

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

29 lines (28 loc) 1.21 kB
import type { Submission } from "@conform-to/dom"; import type { ActionFunction } from "react-router"; import type { ZodSchema } from "zod"; import type { SuccessResponseData } from "../hooks/use-action.js"; type RespondWithErrorOptions = { code?: number; message?: string; type?: "error" | "invalid_submission"; }; declare function respondWithError<TResponse>(responseData: TResponse, options?: RespondWithErrorOptions): ErrorResponse<TResponse> | InvalidSubmissionResponse<ReturnType<Submission<TResponse>["reply"]>>; type ErrorResponse<TResult> = { status: "error"; type: "error"; result: TResult; code: number; message?: string; }; type InvalidSubmissionResponse<TResponse> = { status: "error"; type: "invalid_submission"; result: TResponse; code: number; message?: string; }; declare function isErrorResponse<TData>(response: any): response is ErrorResponse<TData>; declare function isSuccessResponse<TAction extends ActionFunction, TSchema extends ZodSchema>(response: any): response is SuccessResponseData<TAction, TSchema>; export { respondWithError, isErrorResponse, isSuccessResponse }; export type { ErrorResponse, InvalidSubmissionResponse };