Ejemplos
Bienvenido a los ejemplos de QuickModel. Estos ejemplos prácticos demuestran patrones de uso del mundo real y mejores prácticas para todas las funcionalidades del framework.
Fundamentos
Uso Básico
Aprende los fundamentos con ejemplos simples y directos:
- Crear tu primer modelo con
@Quick - Transformaciones de propiedades (Date, BigInt, Set, Map)
- Serialización con
toJSON() - Trabajar con arrays de tipos transformados
Modelos de API
Integra QuickModel con APIs REST:
- Obtener y transformar respuestas de API
- Enviar datos con
toJSON() - Manejar paginación y anidamiento
- Patrones de servicio (CRUD completo)
Tipos Complejos
Transformaciones de tipos avanzadas:
- Modelos anidados y anidamiento profundo
- Colecciones (Set, Map)
- BigInt para números grandes
- Modelos polimórficos
Decoradores y Funcionalidades
Validación con @QRule
Define reglas de negocio y valida datos:
@QRulepara reglas sobre propiedadescheckRules(),isValid(),validationReport()- Validación asincrónica con
checkRulesAsync() createMany()con separación de válidos e inválidos- Mensajes dinámicos para i18n
Formularios con @QField y @QGroup
Genera schemas de formulario dinámicamente:
@QFieldpara metadatos de widget (input, select, datepicker...)@QGrouppara agrupar campos en seccionesgetFormSchema()ygetFormSchemaGrouped()- Integración con React (formulario dinámico)
- Metadatos personalizados para tu framework
Alias y Mapeo con @QAlias
Mapea entre snake_case y camelCase:
@QAliaspara renombrar propiedades- Roundtrip completo (entrada y salida)
- Modelos anidados con aliases
- Combinar con
@QFieldy@QRule
Campos Computados con @QComputed
Propiedades derivadas incluidas en la serialización:
@QComputedpara getters serializables- Cálculos de precio, IVA, descuentos
- Edad, estado, etiquetas formateadas
- Diferencia entre getters con y sin
@QComputed
Creación y Testing
Mocks y Testing
Genera datos de prueba con la API mock():
mock().random(),mock().empty(),mock().sample()mock().array(n)con overrides por índicemock().interfaceRandom()para fixtures de API- Tests unitarios con Vitest / Jest
- Storybook: generar props de ejemplo
Creación en Lote e Inmutabilidad
Procesa arrays y crea instancias inmutables:
createMany()para importaciones masivas- Separación de válidos e inválidos con
errors[] createReadonly()para configuración y constantes- Fixtures inmutables para tests
Referencias Rápidas
| Quiero... | Uso... |
|---|---|
| Transformar fechas/BigInt | @Quick({ field: Date }) |
| Validar datos de negocio | @QRule({ predicate, message }) |
| Mapear snake_case → camelCase | @QAlias('field_name') |
| Generar schema de formulario | @QField({ widget, label }) + getFormSchema() |
| Agrupar campos del formulario | @QGroup('Sección') + getFormSchemaGrouped() |
| Incluir getter en serialización | @QComputed() |
| Generar datos de prueba | Model.mock().random() |
| Proceso masivo con validación | Model.createMany(array) |
| Instancia inmutable | Model.createReadonly(data) |
Ejecutar los Ejemplos
Todos los ejemplos son TypeScript y pueden ejecutarse con:
# Usando Bun
bun run example.ts
# Usando ts-node
npx ts-node example.ts