Générateur de Schémas de Validation Yup depuis JSON
Transformez des exemples JSON en schémas de validation d'objets Yup typés avec yup.string(), yup.number(), yup.array() et règles requises.
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>;Inférence AST 100% Côté Client
L'analyse syntaxique du JSON et la génération des schémas Yup s'exécutent entièrement dans votre navigateur sans transfert réseau.
Typage Sécurisé Yup et TypeScript InferType
Génère des définitions récursives yup.object(), yup.array().of(), détection de formats et typage TypeScript prêts pour Formik et React Hook Form.
Validation Intelligente et Règles Nullable
Détection automatique des emails, UUIDs, dates ISO, URLs et contraintes numériques avec stratégies de champs requis et nullables configurables.