Arquitectura Lógica
El paquete @lynx/core está diseñado intencionadamente de forma plana y sencilla, actuando como un proveedor de utilidades y esquemas de validación de datos para todo el monorepo.
Arquitectura de Flujo
Sección titulada «Arquitectura de Flujo»El siguiente diagrama muestra cómo @lynx/core distribuye los esquemas y tipos a través de las diferentes aplicaciones y servicios de Lynx:
graph TD
A[@lynx/core] --> B(Esquemas Zod)
A --> C(Tipos e Interfaces de TypeScript)
A --> D(Configuraciones / Utilidades Core)
B --> E[Consumido por Apps Frontend]
B --> F[Consumido por Servicios Backend]
Estructura de Módulos
Sección titulada «Estructura de Módulos»La organización interna del paquete se centra estrictamente en la lógica de dominio y las configuraciones base:
src/: Directorio principal de código fuente.schemas/: Esquemas de Zod compartidos para la validación en toda la pila (por ejemplo, cargas útiles de API, formularios).types/: Definiciones globales de TypeScript.config/: Utilidades y constantes de configuración base.utils/: Funciones puras y ayudantes aplicables de forma global.
Guías de Desarrollo
Sección titulada «Guías de Desarrollo»Cómo añadir un nuevo esquema
Sección titulada «Cómo añadir un nuevo esquema»Cuando necesites definir un esquema de configuración o validación para una nueva aplicación o paquete:
-
Crear el archivo: Dirígete al directorio
src/schemas/y crea tu archivo de esquema. -
Definir con Zod:
import { z } from 'zod'export const appConfigSchema = z.object({appName: z.string(),version: z.string(),env: z.enum(['development', 'production', 'test']),})export type AppConfig = z.infer<typeof appConfigSchema> -
Exportar: Exporta el esquema desde el index principal (habitualmente ejecutando
pnpm build:barrelspara regenerar los archivos de exportación). -
Consumir: Consume el esquema en tus aplicaciones importándolo desde
@lynx/core.
[!WARNING] Asegúrate siempre de que el código añadido aquí no contenga llamadas a APIs específicas de Node.js o del navegador para mantener una compatibilidad universal completa.