|
@@ -6,24 +6,61 @@
|
|
|
* @license Apache-2.0
|
|
|
*/
|
|
|
|
|
|
+
|
|
|
+/**
|
|
|
+ * someName => Somename
|
|
|
+ *
|
|
|
+ * @param {String} str = string to be altered
|
|
|
+ * @returns {String}
|
|
|
+ */
|
|
|
+const capitalise = function capitalise(str) {
|
|
|
+ // Don't edit names that start with 2+ caps
|
|
|
+ if (/^[A-Z0-9]{2,}/g.test(str)) {
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+ // reserved. Don't change for now.
|
|
|
+ if (str === "Return") {
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+
|
|
|
+ return `${str.charAt(0).toUpperCase()}${str.substr(1).toLowerCase()}`;
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* SomeName => someName
|
|
|
* @param {String} name - string to be altered
|
|
|
* @returns {String} decapitalised
|
|
|
*/
|
|
|
-export function decapitalise(name) {
|
|
|
- // Don't decapitalise names that start with 2+ caps
|
|
|
- if (/^[A-Z0-9]{2,}/g.test(name)) {
|
|
|
- return name;
|
|
|
+export function decapitalise(str) {
|
|
|
+ // Don't decapitalise str that start with 2+ caps
|
|
|
+ if (/^[A-Z0-9]{2,}/g.test(str)) {
|
|
|
+ return str;
|
|
|
}
|
|
|
// reserved. Don't change for now.
|
|
|
- if (name === "Return") {
|
|
|
- return name;
|
|
|
+ if (str === "Return") {
|
|
|
+ return str;
|
|
|
}
|
|
|
|
|
|
- return `${name.charAt(0).toLowerCase()}${name.substr(1)}`;
|
|
|
+ return `${str.charAt(0).toLowerCase()}${str.substr(1)}`;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+/**
|
|
|
+ * Remove strings surrounded with [] from the given array.
|
|
|
+*/
|
|
|
+export function removeSubheadingsFromArray(array) {
|
|
|
+ if (Array.isArray(array)) {
|
|
|
+ return array.filter((i) => {
|
|
|
+ if (typeof i === "string") {
|
|
|
+ return !i.match(/^\[[\s\S]*\]$/);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* Remove spaces, make lower case.
|
|
|
* @param str
|
|
@@ -31,3 +68,22 @@ export function decapitalise(name) {
|
|
|
export function sanitise(str) {
|
|
|
return str.replace(/ /g, "").toLowerCase();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * sonething like this => somethingLikeThis
|
|
|
+ * ABC a sentence => ABCASentence
|
|
|
+*/
|
|
|
+export function sentenceToCamelCase(str) {
|
|
|
+ return str.split(" ")
|
|
|
+ .map((s, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ return decapitalise(s);
|
|
|
+ }
|
|
|
+ return capitalise(s);
|
|
|
+ })
|
|
|
+ .reduce((prev, curr) => `${prev}${curr}`, "");
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|