fix(types): pluralize words ending in s like status (#13461)

* fix(types): pluralize words ending in s like status

* changeset
This commit is contained in:
William Bouchard
2025-09-15 11:27:13 -04:00
committed by GitHub
parent 2a29c6f82c
commit 88748ba09d
3 changed files with 15 additions and 1 deletions

View File

@@ -0,0 +1,5 @@
---
"@medusajs/types": patch
---
fix(types): pluralize words ending in s like status

View File

@@ -18,6 +18,14 @@ describe("Pluralize", () => {
expectTypeOf<Pluralize<"knife">>().toEqualTypeOf<"knives">()
})
test("pluralize words ending with s", () => {
expectTypeOf<Pluralize<"status">>().toEqualTypeOf<"statuses">()
expectTypeOf<Pluralize<"bus">>().toEqualTypeOf<"buses">()
expectTypeOf<Pluralize<"alias">>().toEqualTypeOf<"aliases">()
expectTypeOf<Pluralize<"bonus">>().toEqualTypeOf<"bonuses">()
expectTypeOf<Pluralize<"bias">>().toEqualTypeOf<"biases">()
})
test("pluralize words ending with ch", () => {
expectTypeOf<Pluralize<"church">>().toEqualTypeOf<"churches">()
expectTypeOf<Pluralize<"arch">>().toEqualTypeOf<"arches">()

View File

@@ -355,6 +355,7 @@ type UncountableRules =
| "deer"
| "sheep"
| "info"
| "species"
type PluralizationSpecialRules = {
person: "people"
@@ -380,7 +381,7 @@ export type Pluralize<Singular extends string> =
: 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`