date-light — bibliothèque utilitaire de dates TypeScript de 3,11 KB
(date-light.flyingsquirrel.me)Il arrive qu’on veuille ajouter une bibliothèque de dates sans avoir besoin de tout le reste comme la locale, le fuseau horaire, les durées ou les plugins.
date-light est une petite bibliothèque utilitaire de dates conçue pour répondre à ce besoin. Elle ne retient que les opérations sur les dates les plus courantes sur le web et dans les apps, et les propose sous la forme de 39 fonctions. Elle n’a aucune dépendance à l’exécution et inclut les types TypeScript ainsi que des points d’entrée ESM/CJS.
import { addDays, differenceInDays, format, startOfWeek } from "date-light";
const launch = new Date(2026, 5, 30, 14, 30);
const reminder = addDays(launch, -7);
format(launch, "yyyy-MM-dd HH:mm"); // "2026-06-30 14:30"
format(startOfWeek(launch), "yyyy-MM-dd"); // "2026-06-29"
differenceInDays(launch, reminder); // 7
Ce qui est proposé
format, parseISO, parse
addDays, addMonths, addYears, addHours, subDays, subMonths...
differenceInDays, differenceInMonths, differenceInYears
isBefore, isAfter, isEqual, isSameDay, isSameMonth
isWeekend, isLeapYear, isValid, getDaysInMonth
startOfDay, endOfWeek, startOfMonth, endOfYear, etc.
Les Date en entrée ne sont pas modifiées. Toutes les fonctions renvoient un nouvel objet Date ou calculent une valeur.
Pourquoi cela a été créé
La plupart des apps n’utilisent qu’une toute petite partie d’une bibliothèque de dates.
En général, il s’agit simplement de formater une date, parser une chaîne ISO, ajouter quelques jours, calculer l’écart entre deux dates, puis s’aligner sur le début ou la fin d’une semaine, d’un mois ou d’une année.
date-light se limite volontairement à ce périmètre. L’expérience d’utilisation reste proche de date-fns, mais en regroupant uniquement les utilitaires les plus fréquents.
Ce qui est volontairement absent
Il n’y a ni locale, ni base de données de fuseaux horaires, ni objet de durée, ni plugins, ni API chaînable.
Si vous avez besoin de ce type de fonctionnalités, Intl, Temporal, Luxon ou date-fns seront plus adaptés. date-light est un outil pensé pour les cas où l’on veut un traitement des dates courant dans une app, en version légère.
Taille
Environ 3,11 KB minzippés pour 39 fonctions.
D’après le critère de comparaison de taille de bundle indiqué dans la documentation, c’est environ 5,9 fois plus petit que lorsqu’on importe 20 fonctions comparables depuis date-fns.
GitHub: https://github.com/flyingsquirrel0419/date-light
npm: npm install date-light
docs/playground: https://date-light.flyingsquirrel.me/
Aucun commentaire pour le moment.