@stryke/prisma-trpc-generator
Version:
A fork of the prisma-trpc-generator code to work in ESM with Prisma v6.
33 lines (31 loc) • 1.56 kB
JavaScript
const require_acronyms = require('./acronyms.cjs');
const require_articles = require('./articles.cjs');
const require_conjunctions = require('./conjunctions.cjs');
const require_prepositions = require('./prepositions.cjs');
const require_special_cases = require('./special-cases.cjs');
//#region ../string-format/src/format-special-cases.ts
/**
* Handle special words in a title.
*
* @see https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case
*
* @param value - The word to handle
* @param index - The index of the word in the title
* @param words - The full title as an array of words
* @returns The formatted word
*/
function formatSpecialCases(value, index, words, options) {
const lowercaseStr = value.toLowerCase();
const uppercaseStr = value.toUpperCase();
for (const special of require_special_cases.SPECIAL_CASES) if (special.toLowerCase() === lowercaseStr) return special;
if (require_acronyms.ACRONYMS[uppercaseStr]) return options?.useDescriptions !== false ? require_acronyms.ACRONYMS[uppercaseStr].description : require_acronyms.ACRONYMS[uppercaseStr].display || uppercaseStr;
if (index === 0) return value;
if (index === words.length - 1) return value;
if (value.length >= 4) return value;
if (require_prepositions.PREPOSITIONS.includes(lowercaseStr)) return lowercaseStr;
if (require_conjunctions.CONJUNCTIONS.includes(lowercaseStr)) return lowercaseStr;
if (require_articles.ARTICLES.includes(lowercaseStr)) return lowercaseStr;
return value;
}
//#endregion
exports.formatSpecialCases = formatSpecialCases;