1.0.3 • Published 9 months ago

@leotoloza/kernel v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@leotoloza/kernel

Microkernel modular dinámico para Node.js.
Permite cargar módulos desde carpetas, emitir y escuchar eventos entre ellos, y organizar la estructura de una aplicación de forma desacoplada.


🧠 ¿Qué es esto?

Este microkernel fue diseñado para crear aplicaciones modulares en Node.js, donde cada módulo puede tener su propio contexto y lógica interna, sin necesidad de depender directamente de otros.

Los módulos pueden ser detectados y cargados automáticamente desde un directorio, además de comunicarse entre sí mediante un sistema de eventos.


✨ Características principales

  • Carga dinámica de módulos
  • Sistema de eventos entre módulos
  • Arquitectura desacoplada
  • Soporte para rutas personalizadas
  • Hot-reloading de módulos

🚀 Instalación

pnpm add @leotoloza/kernel
# o
npm install @leotoloza/kernel
# o
yarn add @leotoloza/kernel

🛠️ Uso básico

// Ejemplo básico
import Kernel from "@leotoloza/kernel";

const kernel = new Kernel();
await kernel.iniciar();

// Ejemplo con ruta personalizada
import path from "path";
const rutaPersonalizada = path.resolve("src");
const kernel = new Kernel(rutaPersonalizada);
await kernel.iniciar();

El kernel puede inicializarse de dos formas: 1. Sin parámetros: cargará los módulos desde la carpeta /modulos en la raíz 2. Con ruta personalizada: cargará los módulos desde la ruta especificada


🐜 Bug fix

  • Ahora se puede pasar una ruta por parámetro al inicializar el microkernel, por ejemplo:
import path from "path";
const ruta = path.resolve("src"); // Esto devuelve la ruta absoluta

📦 Estructura de carpetas esperada

/src
  /modulos
    /usuarios
      index.ts       # Punto de entrada del módulo
      Controller.ts  # Controlador del módulo
      Router.ts      # Rutas del módulo
      Model.ts      # Modelo de datos
      Repository.ts  # Repositorio de datos
    /productos
      ...

Cada módulo debe tener al menos un archivo index.ts como punto de entrada.

🛠️ Generador de módulos recomendado

Para facilitar la creación de módulos con una estructura predefinida, te recomendamos instalar la siguiente herramienta CLI:

👉 lynk-module-generator

Esta utilidad permite generar módulos automáticamente con su vista, controlador y configuración base.

Cada subcarpeta representa un módulo que se cargará dinámicamente.


🧩 Compatibilidad

  • Requiere Node.js 16+
  • Compatible con módulos ES (type: "module" en package.json)

📃 Licencia

ISC

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago