Gerador de Esquemas de Validação Yup a partir de JSON
Converta amostras JSON em esquemas de validação de objetos Yup com segurança de tipos, yup.string(), yup.number(), yup.array() e regras obrigatórias.
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>;Inferência AST 100% no Lado do Cliente
A análise sintática do JSON e a síntese dos esquemas Yup ocorrem inteiramente no seu navegador sem transferência de rede.
Yup Tipado com TypeScript InferType
Gera yup.object(), yup.array().of(), formatos inteligentes e definições de tipos TypeScript prontas para Formik e React Hook Form.
Validação Inteligente e Regras Nullable
Detecta e-mails, UUIDs, datas ISO, URLs e restrições numéricas com regras de campos obrigatórios e nulos personalizáveis.