@@ -35,14 +35,7 @@ export class Name {
35
35
// some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets,
36
36
// we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback )
37
37
38
- if ( typeof gender === 'string' ) {
39
- if ( gender . toLowerCase ( ) === 'male' ) {
40
- gender = 0 ;
41
- } else if ( gender . toLowerCase ( ) === 'female' ) {
42
- gender = 1 ;
43
- }
44
- }
45
-
38
+ gender = Name . determineGenderByStringParam ( gender ) ;
46
39
if ( typeof gender !== 'number' ) {
47
40
if ( typeof this . faker . definitions . name . first_name === 'undefined' ) {
48
41
gender = this . faker . datatype . number ( 1 ) ;
@@ -126,14 +119,7 @@ export class Name {
126
119
typeof this . faker . definitions . name . male_middle_name !== 'undefined' &&
127
120
typeof this . faker . definitions . name . female_middle_name !== 'undefined'
128
121
) {
129
- if ( typeof gender === 'string' ) {
130
- if ( gender . toLowerCase ( ) === 'male' ) {
131
- gender = 0 ;
132
- } else if ( gender . toLowerCase ( ) === 'female' ) {
133
- gender = 1 ;
134
- }
135
- }
136
-
122
+ gender = Name . determineGenderByStringParam ( gender ) ;
137
123
if ( typeof gender !== 'number' ) {
138
124
if ( typeof this . faker . definitions . name . middle_name === 'undefined' ) {
139
125
gender = this . faker . datatype . number ( 1 ) ;
@@ -346,4 +332,26 @@ export class Name {
346
332
this . faker . definitions . name . title . job
347
333
) ;
348
334
}
335
+
336
+ /**
337
+ *
338
+ * Determines gender in 0 or 1
339
+ *
340
+ * @param gender The optional gender to use.
341
+ *
342
+ * @returns 0 or 1 given a string param of 'male' or 'female' else returns default value
343
+ *
344
+ * @example Name.determineGenderByStringParam('male') // 0
345
+ *
346
+ */
347
+ private static determineGenderByStringParam ( gender : string | number ) {
348
+ if ( typeof gender === 'string' ) {
349
+ if ( gender . toLowerCase ( ) === 'male' ) {
350
+ gender = 0 ;
351
+ } else if ( gender . toLowerCase ( ) === 'female' ) {
352
+ gender = 1 ;
353
+ }
354
+ }
355
+ return gender ;
356
+ }
349
357
}
0 commit comments