Libreria Gratis Activo

es-toolkit

Para manipular arrays, objetos y funciones (debounce, chunk, pick...) con menos peso en el bundle que Lodash.

Librería moderna de utilidades para JavaScript, más rápida y ligera que Lodash y con tipado TypeScript completo.

Notas y contexto

Qué es

es-toolkit es una librería de utilidades para JavaScript y TypeScript desarrollada por el equipo de Toss. Reúne funciones de uso común como debounce, chunk, pick, omit, sum o delay, y se plantea como una alternativa moderna a Lodash. Está escrita casi por completo en TypeScript, por lo que ofrece tipado robusto de serie, y presume de ser entre 2 y 3 veces más rápida y de reducir el tamaño del bundle hasta en un 97% frente a otras librerías equivalentes.

Para qué sirve

  • Manipular arrays y objetos con funciones listas para usar (chunk, groupBy, uniq, pick, omit) sin reinventarlas.
  • Controlar la ejecución de funciones con debounce y throttle, habituales en eventos de scroll, búsqueda o resize.
  • Aprovechar el tree-shaking para incluir en el bundle solo las funciones que realmente importas.
  • Disponer de type guards y utilidades tipadas que mejoran la seguridad en proyectos TypeScript.
  • Migrar desde Lodash usando el módulo de compatibilidad es-toolkit/compat con cambios mínimos.

Cuándo usarlo

Es una buena opción cuando quieres las utilidades de toda la vida de Lodash pero te preocupa el peso del bundle y el rendimiento, especialmente en aplicaciones de navegador. Si partes de cero, puedes usar la API principal directamente; si vienes de un proyecto con Lodash, el módulo es-toolkit/compat actúa como reemplazo casi directo. Para casos muy puntuales donde solo necesitas una o dos funciones, valora también escribirlas a mano o usar utilidades nativas modernas de JavaScript.

Ejemplo

# Instalación con npm (también disponible vía JSR)
npm install es-toolkit
# npx jsr add @es-toolkit/es-toolkit
import { chunk, debounce } from 'es-toolkit';

// Dividir un array en grupos de tamaño fijo
const grupos = chunk([1, 2, 3, 4, 5, 6], 2);
// [[1, 2], [3, 4], [5, 6]]

// Limitar la frecuencia de ejecución de una función
const registrar = debounce((mensaje: string) => console.log(mensaje), 300);
registrar('Hola!');

Puntos clave

  • Rendimiento entre 2 y 3 veces superior al de alternativas en runtimes modernos de JavaScript.
  • Reducción de hasta el 97% en el tamaño del código frente a otras librerías de utilidades.
  • Tipado TypeScript completo y type guards incluidos de fábrica.
  • Tree-shaking nativo: solo entra en el bundle lo que importas.
  • Funciona en Node.js, navegadores, Deno y Bun, con módulo es-toolkit/compat para migrar desde Lodash.

Ten en cuenta

  • Es una librería más reciente que Lodash, por lo que su ecosistema y la cantidad de respuestas en la comunidad son menores, aunque ya la usan proyectos como Storybook, Recharts o CKEditor.
  • La capa es-toolkit/compat facilita la migración, pero no garantiza una equivalencia 100% en todos los métodos y casos límite de Lodash; conviene probar tras migrar.
  • Si solo necesitas una utilidad muy simple, las funciones nativas de JavaScript moderno pueden bastar sin añadir dependencias.
Volver al directorio
Volver al directorio