Skip to content

Cómo los Schemas se Convierten en Componentes

Sistema que transforma JSON en componentes funcionales — schema entra, interfaz sale.

Factories

El patrón Factory es el corazón de schepta:

🔧 Qué Es:

EntradaFactorySalidaResultadoStatus
Form JSONFormFactoryReact/Vue FormInterfaz funcional✅ Listo
Menu JSONMenuFactoryReact/Vue NavigationNavegación completa🚧 Em desenvolvimento

📊 Cómo Funciona:

Proceso Automático:

  1. JSON Schema define estructura y comportamiento
  2. Factory interpreta schema y resuelve componentes
  3. Component Registry proporciona componentes React/Vue para renderizar
  4. Middleware Pipeline transforma props
  5. React/Vue Component renderiza interfaz final

Ejemplo Rápido:

json
{ "fields": [{ "name": "email", "x-component": "InputEmail" }] }

FormFactory procesa

jsx
<input type="email" name="email" />

💡 Resultado: JSON estructurado → Interfaz React/Vue funcional. ¡Cero configuración manual!

🚀 Tipos de Factory

Cada Factory está especializada en un tipo de interfaz:

📝 FormFactory - Formularios Dinámicos:

Propiedad del SchemaFunciónEjemploResultado
fields[]Define campos del formulario[{ name: "email" }]Campo de email
x-componentTipo de entrada"InputText"Entrada de texto
requiredValidación requeridatrueCampo requerido
x-rulesValidaciones personalizadas{ minLength: 8 }Validación de longitud

🧭 MenuFactory - Navegación Dinámica:

Propiedad del SchemaFunciónEjemploResultado
properties{}Define elementos del menú{ "home": {...} }Elemento de navegación
x-component-props.hrefEnlace de navegación"/dashboard"Enlace funcional
activeControl de visibilidad"\{\{ $segment.role === 'admin' \}\}"Menú basado en permisos
properties.submenuSubmenú jerárquicoPropiedades anidadasMenú desplegable

⚙️ Arquitectura de Factory

Cómo funciona el patrón Factory internamente:

🔄 Pipeline de Procesamiento:

JSON Schema

Validar Schema (¿Estructura correcta?)

Resolver Componentes (x-component → componente React/Vue)

Transformar Props (Middleware + contexto)

Orquestar Render (Árbol de componentes final)

Elementos React/Vue

🎯 Cómo se Especializan las Factories:

Cada Factory tiene lógica específica para su dominio:

  • FormFactory: Inyecta FormContext, aplica validaciones, gestiona estado
  • MenuFactory: Gestiona navegación, estados activos, jerarquía de menú

Puntos de extensión: Component Registry (global/local), Middleware Pipeline (transformaciones personalizadas), Context Providers (estado específico del dominio).

📊 Casos de Uso Prácticos

El patrón Factory resuelve problemas reales de desarrollo:

🎯 Escenarios Resueltos:

SituaciónProblema TradicionalCon Factory PatternBeneficio
Formularios RepetitivosCopiar-pegar JSXSchema reutilizablePrincipio DRY
Validaciones ComplejasCódigo duplicadoReglas en schemaCentralización
Menús DinámicosCondicionales hardcodeadosExpresiones visibleFlexibilidad
UI Multi-tenantRamas por clienteSchema por tenantEscalabilidad
A/B TestingFeature flags complejosSchemas diferentesAgilidad

🔗 Enlaces Esenciales

Para EntenderLeeRelación con Factories
Cómo escribir schemas02. Schema LanguageSintaxis que las factories interpretan
Pipeline interno04. Schema ResolutionCómo las factories procesan schemas
Motor de renderizado05. RendererSistema usado por las factories
Transformaciones de props06. MiddlewarePipeline aplicado por las factories
Configuración global03. ProviderCómo configurar factories