Utils Partagés
Objectif
Le package @sia-ui/utils rassemble les helpers transverses que tes applications recodent souvent: classes CSS, montants, dates, nombres et texte.
Philosophie
- API petite et prévisible
- dépendances minimales
- import global ou ciblé
- zéro logique métier trop spécifique
Imports
Import global:
ts
import { cn, formatCurrency, formatDate, truncate } from "@sia-ui/utils";Import ciblé:
ts
import { formatCurrency } from "@sia-ui/utils/currency";
import { formatDate } from "@sia-ui/utils/date";
import { truncate } from "@sia-ui/utils/string";Les modules
classname
cn(...inputs)
But:
- normaliser la composition de classes dans tous les composants
currency
formatCurrencyformatAmountparseCurrencyminorToMajormajorToMinorgetCurrencySymbol
But:
- couvrir les écrans finance, paiement, caisse et reporting
Décision:
- base
Intl.NumberFormat
date
parseDatediffInDaysformatDateformatDateTimeformatRelativeDateformatTimeAgoformatDateRangeaddDayssubDaysaddMonthssubMonthsaddYearssubYearsgetFirstDayOfMonthgetLastDayOfMonthisPastDatetoIsoDatetoDisplayDate
But:
- unifier le rendu des dates avant d'introduire des besoins plus avancés
Décision:
- base
Intl - pas de dépendance date externe
Exemple:
ts
formatTimeAgo(createdAt, { locale: "fr-FR", prefix: "Créée" });
// "Créée il y a 10 minutes"number
formatNumberformatPercentclamproundtoNumberparseDecimalroundCurrencyformatRatesafeDivide
string
truncatecapitalizetitleCaseinitialsslugifynormalizeIdentifiernormalizeSpacesmaskMiddleisBlank
Règles d'évolution
- ajouter un utilitaire seulement s'il répond à un besoin répété;
- préférer les sous-modules stables à un gros fichier fourre-tout;
- documenter et tester chaque nouveau domaine.