lakmus
Version:
Fluent validation.
30 lines • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* AP Style Title Case property name resolver.
* @param name Property name.
*/
var ApStyleTitleCasePropertyNameResolver = function (name) {
if (!name)
return null;
if (!name.length)
return null;
var stopwords = 'a an and at but by for in nor of on or so the to up yet'.split(' ');
function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
var words = name.split(/(?=[A-ZА-Я])/);
return words
.map(function (word, index) {
if (index === 0)
return capitalize(word);
if (index === words.length - 1)
return capitalize(word);
if (stopwords.indexOf(word.toLowerCase()) > -1)
return word.toLowerCase();
return capitalize(word);
})
.join(' ');
};
exports.default = ApStyleTitleCasePropertyNameResolver;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXAtc3R5bGUtcHJvcGVydHktbmFtZS1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwLXN0eWxlLXByb3BlcnR5LW5hbWUtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQTs7O0dBR0c7QUFDSCxJQUFJLG9DQUFvQyxHQUF5QixVQUFDLElBQVk7SUFDMUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFBQyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQ3RCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUE7SUFFN0IsSUFBTSxTQUFTLEdBQUcseURBQXlELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRXRGLG9CQUFvQixHQUFHO1FBQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFdkMsTUFBTSxDQUFDLEtBQUs7U0FDUCxHQUFHLENBQUMsVUFBQyxJQUFJLEVBQUUsS0FBSztRQUNiLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7WUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3hDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkQsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDekUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMzQixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEIsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsb0NBQW9DLENBQUMifQ==