From 59d762fafe5ff80322e8f5ff1595e96f723f1824 Mon Sep 17 00:00:00 2001 From: Blake Embrey Date: Mon, 8 Jan 2024 14:35:33 -0600 Subject: [PATCH] Fix capitalization of acronym in sentence case --- packages/title-case/src/index.spec.ts | 8 ++++++++ packages/title-case/src/index.ts | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/title-case/src/index.spec.ts b/packages/title-case/src/index.spec.ts index d575391f..df1fe328 100644 --- a/packages/title-case/src/index.spec.ts +++ b/packages/title-case/src/index.spec.ts @@ -135,7 +135,15 @@ const TEST_CASES: [string, string, Options?][] = [ "Something About _Me-Too_? And You Too.", ], ["an example. i.e. test.", "An Example. I.e. Test."], + ["an example, i.e. test.", "An Example, I.e. Test."], ['an example. "i.e. test."', 'An Example. "I.e. Test."'], + ["an example. i.e. test.", "An example. I.e. test.", { sentenceCase: true }], + ["an example, i.e. test.", "An example, i.e. test.", { sentenceCase: true }], + [ + 'an example. "i.e. test."', + 'An example. "I.e. test."', + { sentenceCase: true }, + ], ]; describe("swap case", () => { diff --git a/packages/title-case/src/index.ts b/packages/title-case/src/index.ts index 0ac0f080..f260ba82 100644 --- a/packages/title-case/src/index.ts +++ b/packages/title-case/src/index.ts @@ -101,7 +101,10 @@ export function titleCase( // but we should uppercase first for i.e., e.g., etc. if (acronym) { const [_, prefix = "", suffix = ""] = acronym; - result += upperAt(token, prefix.length, locale); + result += + sentenceCase && !isNewSentence + ? token + : upperAt(token, prefix.length, locale); isNewSentence = terminators.has(suffix.charAt(0)); continue; }