1
1
import type { Faker } from '.' ;
2
2
3
+ /**
4
+ * Module to generate people's names and titles.
5
+ */
3
6
export class Name {
4
7
constructor ( private readonly faker : Faker ) {
5
8
// Bind `this` so namespaced is working correctly
@@ -12,11 +15,17 @@ export class Name {
12
15
}
13
16
14
17
/**
15
- * firstName
18
+ * Returns a random first name.
16
19
*
17
- * @method faker.name.firstName
18
- * @param gender
19
- * @memberof faker.name
20
+ * @example
21
+ * faker.name.firstName() // 'Antwan'
22
+ * faker.name.firstName("female") // 'Victoria'
23
+ * faker.name.firstName(1) // 'Ashley'
24
+ * faker.name.firstName("male") // 'Tom'
25
+ * faker.name.firstName(0) // 'Ismael'
26
+ *
27
+ * @param gender The optional gender to use.
28
+ * Can be either `'male'` (or `0`) or `'female'` (or `1`).
20
29
*/
21
30
firstName ( gender ?: string | number ) : string {
22
31
if (
@@ -61,11 +70,17 @@ export class Name {
61
70
}
62
71
63
72
/**
64
- * lastName
73
+ * Returns a random last name.
74
+ *
75
+ * @example
76
+ * faker.name.lastName() // 'Hauck'
77
+ * faker.name.lastName("female") // 'Grady'
78
+ * faker.name.lastName(1) // 'Kshlerin'
79
+ * faker.name.lastName("male") // 'Barton'
80
+ * faker.name.lastName(0) // 'Lockman'
65
81
*
66
- * @method lastName
67
- * @param gender
68
- * @memberof faker.name
82
+ * @param gender The optional gender to use.
83
+ * Can be either `'male'` (or `0`) or `'female'` (or `1`).
69
84
*/
70
85
lastName ( gender ?: string | number ) : string {
71
86
if (
@@ -94,11 +109,17 @@ export class Name {
94
109
}
95
110
96
111
/**
97
- * middleName
112
+ * Returns a random middle name.
113
+ *
114
+ * @example
115
+ * faker.name.middleName() // 'Доброславівна'
116
+ * faker.name.middleName("female") // 'Анастасівна'
117
+ * faker.name.middleName(1) // 'Анатоліївна'
118
+ * faker.name.middleName("male") // 'Вікторович'
119
+ * faker.name.middleName(0) // 'Стефанович'
98
120
*
99
- * @method middleName
100
- * @param gender
101
- * @memberof faker.name
121
+ * @param gender The optional gender to use.
122
+ * Can be either `'male'` (or `0`) or `'female'` (or `1`).
102
123
*/
103
124
middleName ( gender ?: string | number ) : string {
104
125
if (
@@ -125,13 +146,19 @@ export class Name {
125
146
}
126
147
127
148
/**
128
- * findName
149
+ * Generates a random full name.
129
150
*
130
- * @method findName
131
- * @param firstName
132
- * @param lastName
133
- * @param gender
134
- * @memberof faker.name
151
+ * @example
152
+ * faker.name.findName() // 'Allen Brown'
153
+ * faker.name.findName('Joann') // 'Joann Osinski'
154
+ * faker.name.findName('Marcella', '', 1) // 'Mrs. Marcella Huels'
155
+ * faker.name.findName(undefined, 'Beer') // 'Mr. Alfonso Beer'
156
+ * faker.name.findName(undefined, undefined, 0) // 'Fernando Schaefer'
157
+ *
158
+ * @param firstName The optional first name to use. If not specified a random one will be chosen.
159
+ * @param lastName The optional last name to use. If not specified a random one will be chosen.
160
+ * @param gender The optional gender to use.
161
+ * Can be either `'male'` (or `0`) or `'female'` (or `1`).
135
162
*/
136
163
findName (
137
164
firstName ?: string ,
@@ -171,10 +198,10 @@ export class Name {
171
198
}
172
199
173
200
/**
174
- * jobTitle
201
+ * Generates a random job title.
175
202
*
176
- * @method jobTitle
177
- * @memberof faker.name
203
+ * @example
204
+ * faker.name.jobTitle() // 'Global Accounts Engineer'
178
205
*/
179
206
jobTitle ( ) : string {
180
207
return (
@@ -187,11 +214,13 @@ export class Name {
187
214
}
188
215
189
216
/**
190
- * gender
217
+ * Return a random gender.
218
+ *
219
+ * @example
220
+ * faker.name.gender() // 'Trans*Man'
221
+ * faker.name.gender(true) // 'Female'
191
222
*
192
- * @method gender
193
- * @param binary
194
- * @memberof faker.name
223
+ * @param binary Whether to return only binary gender names. Defaults to false.
195
224
*/
196
225
gender ( binary ?: boolean ) : string {
197
226
if ( binary ) {
@@ -204,11 +233,17 @@ export class Name {
204
233
}
205
234
206
235
/**
207
- * prefix
236
+ * Returns a random name prefix.
237
+ *
238
+ * @example
239
+ * faker.name.prefix() // 'Miss'
240
+ * faker.name.prefix('female') // 'Ms.'
241
+ * faker.name.prefix(1) // 'Dr.'
242
+ * faker.name.prefix('male') // 'Mr.'
243
+ * faker.name.prefix(0) // 'Mr.'
208
244
*
209
- * @method prefix
210
- * @param gender
211
- * @memberof faker.name
245
+ * @param gender The optional gender to use.
246
+ * Can be either `'male'` (or `0`) or `'female'` (or `1`).
212
247
*/
213
248
prefix ( gender ?: string | number ) : string {
214
249
if (
@@ -233,20 +268,20 @@ export class Name {
233
268
}
234
269
235
270
/**
236
- * suffix
271
+ * Returns a random name suffix.
237
272
*
238
- * @method suffix
239
- * @memberof faker.name
273
+ * @example
274
+ * faker.name.suffix() // 'DDS'
240
275
*/
241
276
suffix ( ) : string {
242
277
return this . faker . random . arrayElement ( this . faker . definitions . name . suffix ) ;
243
278
}
244
279
245
280
/**
246
- * title
281
+ * Generates a random title.
247
282
*
248
- * @method title
249
- * @memberof faker.name
283
+ * @example
284
+ * faker.name.title() // 'International Integration Manager'
250
285
*/
251
286
title ( ) : string {
252
287
const descriptor = this . faker . random . arrayElement (
@@ -263,10 +298,10 @@ export class Name {
263
298
}
264
299
265
300
/**
266
- * jobDescriptor
301
+ * Generates a random job descriptor.
267
302
*
268
- * @method jobDescriptor
269
- * @memberof faker.name
303
+ * @example
304
+ * faker.name.jobDescriptor() // 'Customer'
270
305
*/
271
306
jobDescriptor ( ) : string {
272
307
return this . faker . random . arrayElement (
@@ -275,10 +310,10 @@ export class Name {
275
310
}
276
311
277
312
/**
278
- * jobArea
313
+ * Generates a random job area.
279
314
*
280
- * @method jobArea
281
- * @memberof faker.name
315
+ * @example
316
+ * faker.name.jobArea() // 'Brand'
282
317
*/
283
318
jobArea ( ) : string {
284
319
return this . faker . random . arrayElement (
@@ -287,10 +322,10 @@ export class Name {
287
322
}
288
323
289
324
/**
290
- * jobType
325
+ * Generates a random job type.
291
326
*
292
- * @method jobType
293
- * @memberof faker.name
327
+ * @example
328
+ * faker.name.jobType() // 'Assistant'
294
329
*/
295
330
jobType ( ) : string {
296
331
return this . faker . random . arrayElement (
0 commit comments