payload
Version:
Node, React, Headless CMS and Application Framework built on Next.js
40 lines (39 loc) • 1.31 kB
JavaScript
// @ts-strict-ignore
import pluralize from 'pluralize';
const { isPlural, singular } = pluralize;
const capitalizeFirstLetter = (string)=>string.charAt(0).toUpperCase() + string.slice(1);
const toWords = (inputString, joinWords = false)=>{
const notNullString = inputString || '';
const trimmedString = notNullString.trim();
const arrayOfStrings = trimmedString.split(/[\s-]/);
const splitStringsArray = [];
arrayOfStrings.forEach((tempString)=>{
if (tempString !== '') {
const splitWords = tempString.split(/(?=[A-Z])/).join(' ');
splitStringsArray.push(capitalizeFirstLetter(splitWords));
}
});
return joinWords ? splitStringsArray.join('').replace(/\s/g, '') : splitStringsArray.join(' ');
};
const formatLabels = (slug)=>{
const words = toWords(slug);
return isPlural(slug) ? {
plural: words,
singular: singular(words)
} : {
plural: pluralize(words),
singular: words
};
};
const formatNames = (slug)=>{
const words = toWords(slug, true);
return isPlural(slug) ? {
plural: words,
singular: singular(words)
} : {
plural: pluralize(words),
singular: words
};
};
export { formatLabels, formatNames, toWords };
//# sourceMappingURL=formatLabels.js.map