UNPKG

@maz-ui/utils

Version:

Utils of maz-ui for JavaScript/TypeScript users

93 lines (92 loc) 2.16 kB
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 };