From 88748ba09d6578608d3d9858718fbbfba956f67b Mon Sep 17 00:00:00 2001 From: William Bouchard <46496014+willbouch@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:27:13 -0400 Subject: [PATCH] fix(types): pluralize words ending in s like status (#13461) * fix(types): pluralize words ending in s like status * changeset --- .changeset/slow-walls-attend.md | 5 +++++ .../core/types/src/common/__tests__/pluralize.spec.ts | 8 ++++++++ packages/core/types/src/common/common.ts | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .changeset/slow-walls-attend.md diff --git a/.changeset/slow-walls-attend.md b/.changeset/slow-walls-attend.md new file mode 100644 index 0000000000..5836f7dc30 --- /dev/null +++ b/.changeset/slow-walls-attend.md @@ -0,0 +1,5 @@ +--- +"@medusajs/types": patch +--- + +fix(types): pluralize words ending in s like status diff --git a/packages/core/types/src/common/__tests__/pluralize.spec.ts b/packages/core/types/src/common/__tests__/pluralize.spec.ts index a6e4ea5c7c..f127a9d777 100644 --- a/packages/core/types/src/common/__tests__/pluralize.spec.ts +++ b/packages/core/types/src/common/__tests__/pluralize.spec.ts @@ -18,6 +18,14 @@ describe("Pluralize", () => { expectTypeOf>().toEqualTypeOf<"knives">() }) + test("pluralize words ending with s", () => { + expectTypeOf>().toEqualTypeOf<"statuses">() + expectTypeOf>().toEqualTypeOf<"buses">() + expectTypeOf>().toEqualTypeOf<"aliases">() + expectTypeOf>().toEqualTypeOf<"bonuses">() + expectTypeOf>().toEqualTypeOf<"biases">() + }) + test("pluralize words ending with ch", () => { expectTypeOf>().toEqualTypeOf<"churches">() expectTypeOf>().toEqualTypeOf<"arches">() diff --git a/packages/core/types/src/common/common.ts b/packages/core/types/src/common/common.ts index 16a1185d7f..9916506107 100644 --- a/packages/core/types/src/common/common.ts +++ b/packages/core/types/src/common/common.ts @@ -355,6 +355,7 @@ type UncountableRules = | "deer" | "sheep" | "info" + | "species" type PluralizationSpecialRules = { person: "people" @@ -380,7 +381,7 @@ export type Pluralize = : Singular extends `${infer R}is` ? `${R}ises` : Singular extends `${string}s` - ? `${Singular}` + ? `${Singular}es` : Singular extends `${infer R}ay` ? `${R}ays` : Singular extends `${infer R}ey`