Skip to main content
Module

x/case/lowerCase.ts

Convert strings between camelCase, PascalCase, Title Case, snake_case and more
Go to Latest
File
/** * via: https://github.com/blakeembrey/lower-case */
import { LanguageSpecific } from "./types.ts";
/** * Special language-specific overrides. * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt */const LANGUAGES: LanguageSpecific = { tr: { regexp: /\u0130|\u0049|\u0049\u0307/g, map: { İ: "\u0069", I: "\u0131", İ: "\u0069", }, }, az: { regexp: /[\u0130]/g, map: { İ: "\u0069", I: "\u0131", İ: "\u0069", }, }, lt: { regexp: /[\u0049\u004A\u012E\u00CC\u00CD\u0128]/g, map: { I: "\u0069\u0307", J: "\u006A\u0307", Į: "\u012F\u0307", Ì: "\u0069\u0307\u0300", Í: "\u0069\u0307\u0301", Ĩ: "\u0069\u0307\u0303", }, },};
/** * Lowercase a string. * * @param {String} str * @return {String} */export default function (str: string, locale?: string): string { str = str == null ? "" : String(str);
if (!locale) { return str.toLowerCase(); }
const lang = LANGUAGES[locale];
if (lang) { str = str.replace(lang.regexp, (m: string): string => lang.map[m]); }
return str.toLowerCase();}