Skip to content
Go to Lynx

Arquitectura Lógica

This content is not available in your language yet.

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.

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]

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.

Cuando necesites definir un esquema de configuración o validación para una nueva aplicación o paquete:

  1. Crear el archivo: Dirígete al directorio src/schemas/ y crea tu archivo de esquema.

  2. 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>
  3. Exportar: Exporta el esquema desde el index principal (habitualmente ejecutando pnpm build:barrels para regenerar los archivos de exportación).

  4. 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.