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`