Temporize: utilidades TypeScript para debounce, throttle y concurrencia con promesas

Fuentes: Temporize: TypeScript utilities for debounce, throttle, batching, retries and concurrency

Temporize es una biblioteca de TypeScript publicada como @alsoftworks/temporize que reúne utilidades de temporización y control de concurrencia con tipado estricto y sin dependencias en tiempo de ejecución. Se distribuye como módulos ESM y CommonJS e incluye, entre otras funciones, debounce y throttle con inferencia genérica completa, debounceAsync con políticas de solapamiento (queue, drop y cancel-previous), throttlePromise para limitar la tasa de despacho en una cola FIFO, rafThrottle con fallback a setTimeout de 16 ms para Node y SSR, batch para acumular llamadas múltiples en una sola invocación, retry con backoff exponencial y jitter, idle con fallback a temporizador en entornos sin requestIdleCallback y concurrencyLimit para acotar el número de promesas simultáneas. Cada llamada programada devuelve una promesa con el resultado real de la función envuelta, lo que permite componer el resultado con async/await y propagar errores de forma nativa. La cancelación es cooperativa mediante métodos .cancel() y, opcionalmente, AbortSignal inyectado como último parámetro de la función. La biblioteca se compara con los paquetes lodash.debounce y lodash.throttle y aporta capacidades que estos no cubren, como el throttling de promesas, la política de solapamiento asíncrono, el batching multi-llamada y los reintentos con backoff. Incluye además adaptadores opcionales para React y Vue como subpath exports, de modo que solo se carga el código del framework que la aplicación ya utiliza.