Runtime principal
Bootstrap, contenedor DI, orquestación del ciclo de vida y arranque de la aplicación HTTP.
Paquetes
Esta página describe los paquetes principales del monorepo xtask, qué aporta cada uno, cómo encaja en el runtime y qué ejemplos oficiales lo demuestran en la práctica, incluidos cache, scheduler, queues y value objects.
16 paquetes documentados
Bootstrap, contenedor DI, orquestación del ciclo de vida y arranque de la aplicación HTTP.
Los adaptadores de Express y Fastify mantienen los mismos contratos de controlador y vista.
TypeORM, security, mailer, cache, scheduler y queues añaden persistencia, autenticación, trabajo en segundo plano y entrega compatibles con el ciclo de vida.
Catálogo
packages/core
Bootstrap, kernel, contenedor DI, ciclo de vida y primitivas de aplicación HTTP.
Core controla el arranque de la aplicación. Inicia el kernel, analiza componentes, resuelve adaptadores y coordina integraciones opcionales como TypeORM y security durante CreateApplication().
Cobertura de ejemplos: 01-new_app, 02-express_app, 03-fastify_app, 04-typeorm_app, 06-security_app, 07-security_express_app
Abrir página del paquetepackages/common
Decoradores transversales, metadata de rutas, logger y tipos de ejecución compartidos.
Common proporciona la superficie pública de decoradores para controladores y canalizaciones de rutas. Es el lenguaje que usa el resto del framework para expresar metadata de middleware, guards y eventos, e incluye el Logger usado en adaptadores y servicios.
Cobertura de ejemplos: All samples use controller decorators from @xtaskjs/common.
Abrir página del paquetepackages/value-objects
Primitivas de value objects, utilidades de conversión, decoradores para DTO y helpers de integración con fábricas DI.
Value objects ofrece a los proyectos xtaskjs una forma coherente de modelar primitivas de dominio y envoltorios de payload estructurados. Estandariza la conversión desde entrada cruda, cadenas JSON y payloads serializados, y además puede enlazar la transformación de DTO con la creación de fábricas gestionadas por DI.
Cobertura de ejemplos: Package README examples and package tests currently provide the primary reference.
Abrir página del paquetepackages/express-http
Adaptador de Express con recursos estáticos e integración de motor de plantillas.
El adaptador de Express traduce las rutas del framework al manejo de peticiones de Express. Añade archivos estáticos, motores de plantillas y respuestas JSON o renderizadas sin cambiar el código de los controladores.
Cobertura de ejemplos: 02-express_app and 07-security_express_app
Abrir página del paquetepackages/fastify-http
Adaptador de Fastify para el mismo modelo de controladores usado por core y Express.
El soporte de Fastify refleja el de Express, pero mantiene el servido, el renderizado de vistas y el comportamiento de archivos estáticos específicos de Fastify tras los mismos contratos del framework.
Cobertura de ejemplos: 03-fastify_app and 04-typeorm_app
Abrir página del paquetepackages/typeorm
Integración de TypeORM con registro de datasources, migrations y seeders en arranque, y utilidades de inyección de repositorios.
El soporte de TypeORM conecta el ciclo de vida del datasource al arranque y apagado de xtask. Proporciona una forma estándar de inyectar datasources y repositorios, además de registros de migrations y seeders que pueden ejecutarse durante el bootstrap.
Cobertura de ejemplos: 04-typeorm_app
Abrir página del paquetepackages/cqrs
Command, query, and event buses with handler decorators, read or write datasource aliases, and lifecycle-managed projection workflows.
CQRS adds message buses, handler discovery, read or write repository injection, process managers, projection rebuilders, and idempotent command execution to xtaskjs. It builds on @xtaskjs/typeorm so the container can expose read and write datasources and repositories without hard-coding infrastructure details into handlers.
Cobertura de ejemplos: 19-cqrs_app and 20-cqrs_postgres_replication_app
Abrir página del paquetepackages/event-source
Event-sourced aggregates, optimistic stream persistence, stored-event subscribers, and optional queue publication.
Event source adds aggregate rehydration, stream persistence, optimistic concurrency checks, and stored-event publication to xtaskjs. It keeps event application inside aggregate roots while exposing repositories, stores, publishers, and subscribers through the same DI lifecycle used by the rest of the framework.
Cobertura de ejemplos: 21-event_source_rabbitmq_app and 22-event_source_cqrs_app
Abrir página del paquetepackages/security
Autenticación JWT y JWE, decoradores de autorización y ciclo de vida de security compatible con DI.
Security se apoya en la canalización base de rutas. Registra estrategias, autentica peticiones mediante flujos compatibles con Passport e inyecta el estado de autenticación en el contexto de ejecución para guards y controladores.
Cobertura de ejemplos: 06-security_app and 07-security_express_app
Abrir página del paquetepackages/mailer
Entrega basada en Nodemailer, renderizado de plantillas, transports con nombre y servicios de correo compatibles con DI.
Mailer integra el correo saliente en el mismo ciclo de vida de xtask usado por controladores y persistencia. Registra transports al arrancar, expone servicios y transporters inyectables y admite plantillas inline, EJS o Handlebars.
Cobertura de ejemplos: 07-security_express_app and 08-email_express_app
Abrir página del paquetepackages/internationalization
Traducciones dependientes de la petición, fallback de locale, carga de namespaces y servicios de formateo compatibles con DI.
Internationalization añade resolución de locale por petición, búsqueda de traducciones, pluralización y helpers de formato al ciclo de vida de xtask. Registra los servicios de locale antes de que se resuelvan los controladores y expone un servicio inyectable para controladores, vistas y presenters de dominio.
Cobertura de ejemplos: 09-internationalization_app and 10-internationalization_express_app
Abrir página del paquetepackages/scheduler
Decoradores cron, interval y timeout con descubrimiento y control de trabajos gestionados por el ciclo de vida.
Scheduler añade trabajos recurrentes y diferidos a los servicios xtask. Descubre los métodos decorados cuando el contenedor DI está listo, ejecuta trabajos de arranque durante la inicialización, inicia el trabajo recurrente en el evento ready del ciclo de vida y expone APIs de servicio para inspección y ejecución manual.
Cobertura de ejemplos: 11-scheduler_app
Abrir página del paquetepackages/cache
Memory and Redis-backed cache models, method decorators, runtime inspection, and browser cache policies.
Cache adds application-level data caching and client-facing HTTP cache control to xtaskjs. It registers named cache models, exposes injectable repositories and services, layers method decorators for cache read/write behavior, and can publish browser cache headers plus operational endpoints from the same package.
Cobertura de ejemplos: 12-cache_app, 13-cache_redis_app, 14-http_cache_web_app, 15-fastify_http_cache_web_app
Abrir página del paquetepackages/queues
Handlers de colas agnósticos del transporte, utilidades para brokers, decoradores de publicación y consumidores gestionados por el ciclo de vida.
Queues incorpora entrega de mensajes con broker y en memoria a xtaskjs. Registra transports con nombre, descubre consumidores decorados desde servicios gestionados por DI, expone APIs de productores inyectables y coordina reintentos, dead-letter routing y el arranque o parada de consumidores mediante el ciclo de vida de la aplicación.
Cobertura de ejemplos: 16-queues_memory_app and 17-queues_rabbitmq_app
Abrir página del paquetepackages/throttler
Per-endpoint and global rate limiting with memory or Redis backing and custom key generators.
Throttler integrates rate limiting into the xtask route pipeline. It limits requests per time window using configurable storage backends, supports custom key generators for IP, user, or API-key-based identification, and applies limits globally or per-method through decorators.
Cobertura de ejemplos: 24-throttler_app
Abrir página del paquetepackages/socket-io
Gateways de Socket.IO, decoradores de eventos, servicios realtime inyectables y acoplamiento al servidor gestionado por el ciclo de vida.
Socket.IO integra mensajería realtime en xtaskjs sin salir del modelo de DI y ciclo de vida del framework. Descubre servicios gateway decorados, se conecta al servidor HTTP activo durante app.listen(), expone namespaces y utilidades de broadcast mediante DI y se desmonta limpiamente durante app.close().
Cobertura de ejemplos: 23-socket_io_express_app
Abrir página del paquete