@leotoloza/kernel v1.0.3
@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:
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"enpackage.json)