chaque ligne est convertie séparément : coller une liste ne la fusionne pas en un seul identifiant.
Utilisation
Collez une valeur, ou une liste avec une valeur par ligne. Chaque ligne est convertie séparément dans les dix formats : coller une colonne de noms de champs ne les fusionne pas en un seul identifiant.
Les formats
| Format | Exemple | Usage habituel |
|---|---|---|
| camelCase | creerUnElement | variables et fonctions JavaScript |
| PascalCase | CreerUnElement | composants React, classes, types |
| snake_case | creer_un_element | Python, colonnes SQL |
| kebab-case | creer-un-element | classes CSS, noms de fichiers |
| CONSTANT_CASE | CREER_UN_ELEMENT | constantes, variables d'environnement |
| Title Case | Creer Un Element | titres |
| Sentence case | Creer un element | phrases, libellés |
| slug | creer-un-element | segments d'URL |
kebab-case et slug se ressemblent mais ne font pas la même chose : le slug
traite la ponctuation comme un séparateur, la conversion de casse la
supprime. a/b devient donc a-b en slug et ab en kebab.
Le découpage est le vrai travail
Recoller des mots est trivial. Les découper correctement est là où tout se joue, et la plupart des implémentations naïves échouent sur trois cas.
// acronyme suivi d'un mot
"HTTPServerError"; // → http, server, error (et non h, t, t, p, server…)
// chiffre accolé à une lettre
"version2Beta"; // → version, 2, beta
// accents et majuscule initiale
"Élément"; // → element (et non e, lement)Les accents ne doivent être retirés qu'après le découpage : normaliser d'abord fait perdre la majuscule initiale, et le mot devient indistinct de sa version minuscule.
Une conversion doit être idempotente
Réappliquer une conversion à son propre résultat doit donner le même résultat.
toKebabCase("Créer un élément"); // "creer-un-element"
toKebabCase("creer-un-element"); // "creer-un-element" — identiqueSans cette propriété, un pipeline qui convertit deux fois — parce que deux couches appliquent la même normalisation « au cas où » — produit des identifiants différents à chaque passage.
Conversion des clés d'un objet
Le cas concret le plus fréquent : une API en snake_case, un front en
camelCase.
const toCamelKeys = (value) => {
if (Array.isArray(value)) {
return value.map(toCamelKeys);
}
if (value === null || typeof value !== "object") {
return value;
}
return Object.fromEntries(
Object.entries(value).map(([key, nested]) => [
toCamelCase(key),
toCamelKeys(nested),
])
);
};Attention à la récursion : null est de type object en JavaScript, et sans le
test explicite la fonction plante sur la première valeur nulle.
sujets abordés
à lire aussi
- Expressions cronutilsDécortiquez une expression cron champ par champ et voyez ses cinq prochaines exécutions1 tag(s) en commun : texte
- Dates et horodatagesutilsConvertissez un horodatage Unix en date lisible, dans les deux sens et dans sept fuseaux horaires1 tag(s) en commun : texte
- Comparateur de textesutilsComparez deux textes ligne à ligne et repérez d'un coup d'œil les ajouts et les suppressions1 tag(s) en commun : texte