@maz-ui/utils
Version:
Utils of maz-ui for JavaScript/TypeScript users
93 lines (92 loc) • 2.16 kB
JavaScript
import { camelCase as t } from "./camelCase.js";
import { kebabCase as i } from "./kebabCase.js";
import { pascalCase as l } from "./pascalCase.js";
import { snakeCase as m } from "./snakeCase.js";
const n = {
removeAccents: !0,
caseSensitive: !1,
replaceSpaces: !0,
removeSpecialCharacters: !1,
trim: !0,
normalizeSpaces: !0,
removeNumbers: !1,
case: void 0,
customNormalizationForms: ["NFC", "NFKD"]
};
function u(r, s) {
switch (s) {
case "kebab-case":
return i(r);
case "camelCase":
return t(r);
case "PascalCase":
return l(r);
case "snake_case":
return m(r);
case "lowercase":
return r.toLowerCase();
case "UPPERCASE":
return r.toUpperCase();
default:
return r;
}
}
function S(r, s) {
const a = { ...n, ...s }, c = {
À: "A",
Á: "A",
Â: "A",
Ã: "A",
Ä: "A",
Å: "A",
à: "a",
á: "a",
â: "a",
ã: "a",
ä: "a",
å: "a",
È: "E",
É: "E",
Ê: "E",
Ë: "E",
è: "e",
é: "e",
ê: "e",
ë: "e",
Î: "I",
Ï: "I",
í: "I",
î: "i",
ï: "i",
Ô: "O",
Õ: "O",
Ö: "O",
Ø: "O",
ô: "o",
õ: "o",
ö: "o",
ø: "o",
Ù: "U",
Ú: "U",
Û: "U",
Ü: "U",
ù: "u",
ú: "u",
û: "u",
ü: "u",
Ç: "C",
ç: "c",
ÿ: "y",
Ñ: "N",
ñ: "n",
ó: "o"
};
let e = r.toString();
if (a.trim && (e = e.trim()), a.normalizeSpaces && (e = e.replaceAll(/\s+/g, " ")), a.replaceSpaces && (e = e.replaceAll(" ", "-")), a.removeNumbers && (e = e.replaceAll(/\d/g, "")), a.removeAccents && (e = e.replaceAll(/[ÀÁÂÃÄÅÇÈÉÊËÎÏÑÔÕÖØÙÚÛÜàáâãäåçèéêëíîïñóôõöøùúûüÿ]/g, (o) => c[o] || o), e = e.replaceAll(/[\u0300-\u036F]/g, "")), a.case ? e = u(e, a.case) : a.caseSensitive === !1 && (e = e.toLowerCase()), a.removeSpecialCharacters && (e = e.replaceAll(/[^\dA-Z-]/gi, "")), a.trim && (e = e.trim()), a.customNormalizationForms)
for (const o of a.customNormalizationForms)
e = e.normalize(o);
return e;
}
export {
S as normalizeString
};