in src/type-generator.ts [63:81]
public static normalizeTypeName(typeName: string) {
// start with the full string and then use the regex to match all-caps sequences.
const re = /([A-Z]+)(?:[^a-z]|$)/g;
let result = typeName;
let m;
do {
m = re.exec(typeName);
if (m) {
const before = result.slice(0, m.index); // all the text before the sequence
const cap = m[1]; // group #1 matches the all-caps sequence we are after
const pascal = cap[0] + cap.slice(1).toLowerCase(); // convert to pascal case by lowercasing all but the first char
const after = result.slice(m.index + pascal.length); // all the text after the sequence
result = before + pascal + after; // concat
}
} while (m);
result = result.replace(/^./, result[0].toUpperCase()); // ensure first letter is capitalized
return result;
}