formParse function is a utility for validating form data against a Zod schema. It returns a structured result containing either the validated data or field-specific error messages, making it ideal for form validation in web applications.ts
import { formParse } from "@arkyn/server";
formData (required){ [k: string]: any }schema (required)ZodTypesuccess boolean indicating the validation status.typescript
import { z } from "zod";import { formParse } from "@arkyn/server";const schema = z.object({name: z.string().min(1, "Name is required"),email: z.string().email("Invalid email"),age: z.number().min(18, "Must be at least 18"),});// Validation failureconst invalidData = { name: "", email: "invalid", age: 17 };const errorResult = formParse([invalidData, schema]);if (!errorResult.success) {console.log(errorResult.fieldErrors);// { name: "Name is required", email: "Invalid email", age: "Must be at least 18" }console.log(errorResult.fields);// { name: "", email: "invalid", age: 17 }}// Validation successconst validData = { name: "John", email: "john@example.com", age: 25 };const successResult = formParse([validData, schema]);if (successResult.success) {console.log(successResult.data);// { name: "John", email: "john@example.com", age: 25 }}
success: truedata: The parsed and validated data (typed according to the schema)success: falsefieldErrors: Object mapping field names to error messagesfields: The original form data (useful for repopulating the form)safeParse internally, which means it never throws errors. Instead, validation failures are returned as a structured object.address.city for nested objects).formAsyncParse instead.SchemaValidator class, which provides additional utilities like formValidate that throws UnprocessableEntity on failure.