@sapphire/utilities
Version:
Common JavaScript utilities for the Sapphire Community
36 lines (33 loc) • 1.22 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/lib/toTitleCase.ts
var TO_TITLE_CASE = /[A-Za-zÀ-ÖØ-öø-ÿ]\S*/g;
var toTitleCaseDiscordJsVariants = {
textchannel: "TextChannel",
voicechannel: "VoiceChannel",
categorychannel: "CategoryChannel",
guildmember: "GuildMember"
};
function toTitleCase(str, options = {}) {
const { additionalVariants = {}, caseSensitive } = options;
const titleCaseVariants = {
...toTitleCaseDiscordJsVariants,
...caseSensitive ? additionalVariants : Object.entries(additionalVariants).reduce(
(variants, [key, variant]) => ({ ...variants, [key.toLowerCase()]: variant }),
{}
)
};
return str.replace(
TO_TITLE_CASE,
(txt) => {
var _a;
return (_a = titleCaseVariants[caseSensitive ? txt : txt.toLowerCase()]) != null ? _a : txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();
}
);
}
__name(toTitleCase, "toTitleCase");
exports.toTitleCase = toTitleCase;
exports.toTitleCaseDiscordJsVariants = toTitleCaseDiscordJsVariants;
//# sourceMappingURL=toTitleCase.cjs.map
//# sourceMappingURL=toTitleCase.cjs.map