just
Para añadir funciones de utilidad concretas (clone, merge, debounce...) sin arrastrar una librería completa ni dependencias externas
just: colección de utilidades JavaScript sin dependencias, cada una en su propio módulo npm
Notas y contexto
Qué es
just es una colección de utilidades JavaScript creada por Angus Croll, donde cada función vive como un módulo npm independiente y sin dependencias. La idea es ofrecer una alternativa ligera a librerías más grandes como Lodash o Underscore: en lugar de instalar un paquete enorme, instalas solo la utilidad que necesitas (por ejemplo just-clone o just-debounce-it). Está organizada como monorepo, incluye más de 60 utilidades con definiciones de TypeScript y tests, y se distribuye bajo licencia MIT.
Para qué sirve
- Clonar, fusionar o comparar objetos y arrays con funciones pequeñas y enfocadas.
- Manipular cadenas (camelCase, kebab-case, truncar, capitalizar) sin escribir el código a mano.
- Aplicar utilidades de funciones como debounce, throttle, curry, compose o memoize.
- Reducir el tamaño del bundle instalando solo las piezas que realmente usas.
Cuándo usarlo
Es ideal cuando trabajas en PWAs o proyectos donde cada byte cuenta y no quieres incluir una librería de utilidades completa. También encaja si prefieres dependencias mínimas y auditables. Si necesitas un conjunto amplio y unificado bajo un único paquete, Lodash o es-toolkit pueden ser más cómodos; just brilla cuando quieres exactamente una función y nada más.
Ejemplo
Instalación y uso de una utilidad concreta:
npm install just-clone
import clone from 'just-clone';
const original = { a: 1, b: { c: 2 } };
const copia = clone(original);
copia.b.c = 99;
console.log(original.b.c); // 2 (el original no cambia)
Cada utilidad se instala y se importa por separado, por ejemplo just-debounce-it, just-camel-case o just-diff.
Puntos clave
- Cada utilidad es un módulo npm independiente y sin dependencias.
- Soporte para ES Modules y CommonJS sin necesidad de transpilar.
- Incluye definiciones de TypeScript y tests para todas las utilidades.
- REPL interactivo en la web del autor para probar las funciones.
Ten en cuenta
El proyecto sigue activo y mantenido bajo licencia MIT, aunque el ritmo de publicación de versiones es pausado. Al instalar muchas utilidades por separado acabas con varias entradas en package.json; si vas a usar decenas de funciones, una librería unificada puede resultar más práctica. Revisa la compatibilidad de cada utilidad, ya que algunas requieren soporte de spread en arrays.