text-upper-case
Version:
Convert text to all uppercase letters
54 lines (53 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.localeUpperCase = localeUpperCase;
exports.upperCase = upperCase;
/**
* Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
*/
const SUPPORTED_LOCALE = {
tr: {
regexp: /[\u0069]/g,
map: {
i: "\u0130",
},
},
az: {
regexp: /[\u0069]/g,
map: {
i: "\u0130",
},
},
lt: {
regexp: /[\u0069\u006A\u012F]\u0307|\u0069\u0307[\u0300\u0301\u0303]/g,
map: {
i̇: "\u0049",
j̇: "\u004A",
į̇: "\u012E",
i̇̀: "\u00CC",
i̇́: "\u00CD",
i̇̃: "\u0128",
},
},
};
/**
* Localized upper case.
*/
function localeUpperCase(str, locale) {
// Handle null/undefined inputs gracefully
if (!str)
return "";
const lang = SUPPORTED_LOCALE[locale.toLowerCase()];
if (lang)
return upperCase(str.replace(lang.regexp, (m) => lang.map[m]));
return upperCase(str);
}
/**
* Upper case as a function.
*/
function upperCase(str) {
// Handle null/undefined inputs gracefully
if (!str)
return "";
return str.toUpperCase();
}