JSON zu Yup Validierungsschema-Generator
Konvertieren Sie JSON-Muster in typsichere Yup-Objekt-Validierungsschemas mit yup.string(), yup.number(), yup.array() und Pflichtfeldregeln.
import * as yup from "yup";
// --- Inferred Nested Sub-Schemas ---
const OrderCustomerSchema = yup.object({
id: yup.number().integer().required(),
fullName: yup.string().required(),
email: yup.string().email().required(),
phone: yup.string().required(),
tier: yup.string().required(),
loyaltyPoints: yup.number().integer().required(),
});
const OrderShippingAddressCoordinatesSchema = yup.object({
latitude: yup.number().required(),
longitude: yup.number().required(),
});
const OrderShippingAddressSchema = yup.object({
street: yup.string().required(),
suite: yup.string().required(),
city: yup.string().required(),
state: yup.string().required(),
postalCode: yup.string().required(),
country: yup.string().required(),
coordinates: OrderShippingAddressCoordinatesSchema,
});
const OrderItemsItemSchema = yup.object({
sku: yup.string().required(),
title: yup.string().required(),
quantity: yup.number().integer().required(),
unitPrice: yup.number().required(),
discount: yup.number().nullable(),
tags: yup.array().of(yup.string().required()).required(),
inStock: yup.boolean().required(),
});
const OrderPaymentSummarySchema = yup.object({
currency: yup.string().required(),
subtotal: yup.number().integer().required(),
tax: yup.number().required(),
shippingFee: yup.number().integer().required(),
grandTotal: yup.number().required(),
transactionRef: yup.string().required(),
status: yup.string().required(),
});
// --- Root Yup Schema Definition ---
orderSchema = yup.object({
orderId: yup.string().uuid().required(),
orderNumber: yup.string().required(),
createdAt: yup.string().datetime().required(),
isFulfilled: yup.boolean().required(),
customer: OrderCustomerSchema,
shippingAddress: OrderShippingAddressSchema,
items: yup.array().of(OrderItemsItemSchema).required(),
paymentSummary: OrderPaymentSummarySchema,
}).required();
// --- Inferred TypeScript Types ---
OrderCustomerType = yup.InferType<typeof OrderCustomerSchema>;
OrderShippingAddressCoordinatesType = yup.InferType<typeof OrderShippingAddressCoordinatesSchema>;
OrderShippingAddressType = yup.InferType<typeof OrderShippingAddressSchema>;
OrderItemsItemType = yup.InferType<typeof OrderItemsItemSchema>;
OrderPaymentSummaryType = yup.InferType<typeof OrderPaymentSummarySchema>;
OrderType = yup.InferType<typeof orderSchema>;100% Client-Side AST-Inferenz
JSON-Parsing und Yup-Schema-Synthese laufen vollständig im lokalen Browser-Sandbox ohne Netzwerk-Telemetrie.
Typsicheres Yup & TypeScript InferType
Erzeugt rekursive yup.object(), yup.array().of(), intelligente String-Formate und TypeScript-Typdefinitionen für Formik und React Hook Form.
Intelligente Validierungs- und Null-Regeln
Erkennt automatisch E-Mails, UUIDs, ISO-Daten, URLs und Zahlenbegrenzungen mit konfigurierbaren Required- und Nullable-Regeln.