Skip to content

Commit 04f960e

Browse files
committed
fix: singularizing and pluralizing focus
fixes #61
1 parent 37f2760 commit 04f960e

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/inflection.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@ const regex = {
391391
tium: new RegExp('([ti])um$', 'gi'),
392392
sis: new RegExp('sis$', 'gi'),
393393
ffe: new RegExp('(?:([^f])fe|([lr])f)$', 'gi'),
394+
focus: new RegExp('^(focus)$', 'gi'),
394395
hive: new RegExp('(hi|ti)ve$', 'gi'),
395396
aeiouyy: new RegExp('([^aeiouy]|qu)y$', 'gi'),
396397
x: new RegExp('(x|ch|ss|sh)$', 'gi'),
@@ -459,6 +460,7 @@ const pluralRules: [RegExp, string?][] = [
459460
[regex.singular.tium, '$1a'],
460461
[regex.singular.sis, 'ses'],
461462
[regex.singular.ffe, '$1$2ves'],
463+
[regex.singular.focus, '$1es'],
462464
[regex.singular.hive, '$1ves'],
463465
[regex.singular.aeiouyy, '$1ies'],
464466
[regex.singular.matrix, '$1ices'],
@@ -496,6 +498,7 @@ const singularRules: [RegExp, string?][] = [
496498
[regex.singular.tium],
497499
[regex.singular.sis],
498500
[regex.singular.ffe],
501+
[regex.singular.focus],
499502
[regex.singular.hive],
500503
[regex.singular.aeiouyy],
501504
[regex.singular.x],

test/inflection.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { describe, it, expect } from 'vitest';
33

44
describe('test .pluralize', function () {
55
it('should pluralize the given word', function () {
6+
expect(inflection.pluralize('accommodation')).toEqual('accommodation');
67
expect(inflection.pluralize('people')).toEqual('people');
78
expect(inflection.pluralize('men')).toEqual('men');
89
expect(inflection.pluralize('women')).toEqual('women');
@@ -16,6 +17,7 @@ describe('test .pluralize', function () {
1617
expect(inflection.pluralize('life')).toEqual('lives');
1718
expect(inflection.pluralize('bath')).toEqual('baths');
1819
expect(inflection.pluralize('calf')).toEqual('calves');
20+
expect(inflection.pluralize('focus')).toEqual('focuses');
1921
expect(inflection.pluralize('foot')).toEqual('feet');
2022
expect(inflection.pluralize('book')).toEqual('books');
2123
expect(inflection.pluralize('goose')).toEqual('geese');
@@ -67,6 +69,7 @@ describe('test .singularize', function () {
6769
expect(inflection.singularize('baths')).toEqual('bath');
6870
expect(inflection.singularize('calves')).toEqual('calf');
6971
expect(inflection.singularize('feet')).toEqual('foot');
72+
expect(inflection.singularize('focus')).toEqual('focus');
7073
expect(inflection.singularize('books')).toEqual('book');
7174
expect(inflection.singularize('geese')).toEqual('goose');
7275
expect(inflection.singularize('teeth')).toEqual('tooth');

0 commit comments

Comments
 (0)