UNPKG

ephemeral-writer

Version:
126 lines (125 loc) 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modifiers = void 0; var isConsonant = function (c) { c = c.toLowerCase(); switch (c) { case 'a': return false; case 'e': return false; case 'i': return false; case 'o': return false; case 'u': return false; } return true; }; function endsWithConY(s) { if (s.charAt(s.length - 1) === 'y') { return isConsonant(s.charAt(s.length - 2)); } return false; } ; var modifiers = { capitaliseAll: function (s) { return s.replace(/(?:^|\s)\S/g, function (a) { return a.toUpperCase(); }); }, capitalizeAll: function (s) { return s.replace(/(?:^|\s)\S/g, function (a) { return a.toUpperCase(); }); }, caps: function (s) { return s.charAt(0).toUpperCase() + s.slice(1); }, capitalize: function (s) { return s.charAt(0).toUpperCase() + s.slice(1); }, inQuotes: function (s) { return '"' + s + '"'; }, comma: function (s) { var last = s.charAt(s.length - 1); if (last === ",") return s; if (last === ".") return s; if (last === "?") return s; if (last === "!") return s; return s + ","; }, beeSpeak: function (s) { s = s.replace(/s/, 'zzz'); return s; }, a: function (s) { if (!isConsonant(s.charAt(0))) return "an " + s; return "a " + s; }, s: function (s) { var last = s.charAt(s.length - 1); switch (last) { case 'y': if (!isConsonant(s.charAt(s.length - 2))) { return s + "s"; } else { return s.slice(0, s.length - 1) + "ies"; } break; case 'x': return s.slice(0, s.length - 1) + "en"; case 'z': return s.slice(0, s.length - 1) + "es"; case 'h': return s.slice(0, s.length - 1) + "es"; default: return s + "s"; } ; }, n: function (s) { return s + "\n"; }, title: function (s) { return s.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); }, ed: function (s) { var index = s.indexOf(" "); var s = s; var rest = ""; if (index > 0) { rest = s.substring(index, s.length); s = s.substring(0, index); } var last = s.charAt(s.length - 1); switch (last) { case 'y': if (isConsonant(s.charAt(s.length - 2))) { return s.slice(0, s.length - 1) + "ied" + rest; } else { return s + "ed" + rest; } break; case 'e': return s + "d" + rest; break; default: return s + "ed" + rest; } ; } }; exports.modifiers = modifiers;