Skip to content

Commit 2a2e054

Browse files
author
Matt Mayer
authored
feat(person): add short bio (#1696)
1 parent 351f8f0 commit 2a2e054

File tree

8 files changed

+92
-1
lines changed

8 files changed

+92
-1
lines changed

src/definitions/person.ts

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ export type PersonDefinitions = LocaleEntry<{
3030
*/
3131
name: string[];
3232

33+
bio_patterns?: string[];
34+
3335
title: PersonTitleDefinitions;
3436

3537
western_zodiac_sign: string[];

src/locales/en/person/bio_part.ts

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
export default [
2+
'activist',
3+
'artist',
4+
'author',
5+
'blogger',
6+
'business owner',
7+
'coach',
8+
'creator',
9+
'designer',
10+
'developer',
11+
'dreamer',
12+
'educator',
13+
'engineer',
14+
'entrepreneur',
15+
'environmentalist',
16+
'film lover',
17+
'filmmaker',
18+
'foodie',
19+
'founder',
20+
'friend',
21+
'gamer',
22+
'geek',
23+
'grad',
24+
'inventor',
25+
'leader',
26+
'model',
27+
'musician',
28+
'nerd',
29+
'parent',
30+
'patriot',
31+
'person',
32+
'philosopher',
33+
'photographer',
34+
'public speaker',
35+
'scientist',
36+
'singer',
37+
'streamer',
38+
'student',
39+
'teacher',
40+
'traveler',
41+
'veteran',
42+
'writer',
43+
];

src/locales/en/person/bio_patterns.ts

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export default [
2+
'{{person.bio_part}}',
3+
'{{person.bio_part}}, {{person.bio_part}}',
4+
'{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}}',
5+
'{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}} {{internet.emoji}}',
6+
'{{word.noun}} {{person.bio_supporter}}',
7+
'{{word.noun}} {{person.bio_supporter}} {{internet.emoji}}',
8+
'{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}}',
9+
'{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}} {{internet.emoji}}',
10+
];
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export default [
2+
'advocate',
3+
'devotee',
4+
'enthusiast',
5+
'fan',
6+
'junkie',
7+
'lover',
8+
'supporter',
9+
];

src/locales/en/person/index.ts

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
* Run 'pnpm run generate:locales' to update.
44
*/
55
import type { PersonDefinitions } from '../../..';
6+
import bio_part from './bio_part';
7+
import bio_patterns from './bio_patterns';
8+
import bio_supporter from './bio_supporter';
69
import female_first_name from './female_first_name';
710
import female_middle_name from './female_middle_name';
811
import first_name from './first_name';
@@ -19,6 +22,9 @@ import title from './title';
1922
import western_zodiac_sign from './western_zodiac_sign';
2023

2124
const person: PersonDefinitions = {
25+
bio_part,
26+
bio_patterns,
27+
bio_supporter,
2228
female_first_name,
2329
female_middle_name,
2430
first_name,

src/modules/person/index.ts

+14
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,20 @@ export class PersonModule {
240240
return this.faker.helpers.objectValue(Sex);
241241
}
242242

243+
/**
244+
* Returns a random short biography
245+
*
246+
* @example
247+
* faker.person.bio() // 'oatmeal advocate, veteran 🐠'
248+
*
249+
* @since 8.0.0
250+
*/
251+
bio(): string {
252+
const { bio_patterns } = this.faker.definitions.person;
253+
254+
return this.faker.helpers.fake(bio_patterns);
255+
}
256+
243257
/**
244258
* Returns a random person prefix.
245259
*

test/__snapshots__/person.spec.ts.snap

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// Vitest Snapshot v1
22

3+
exports[`person > 42 > bio 1`] = `"public speaker, traveler, designer"`;
4+
35
exports[`person > 42 > firstName > noArgs 1`] = `"Garnet"`;
46

57
exports[`person > 42 > firstName > with sex 1`] = `"Glen"`;
@@ -48,6 +50,8 @@ exports[`person > 42 > suffix > with sex 1`] = `"III"`;
4850

4951
exports[`person > 42 > zodiacSign 1`] = `"Gemini"`;
5052

53+
exports[`person > 1211 > bio 1`] = `"infusion supporter, photographer 🙆‍♀️"`;
54+
5155
exports[`person > 1211 > firstName > noArgs 1`] = `"Tito"`;
5256

5357
exports[`person > 1211 > firstName > with sex 1`] = `"Percy"`;
@@ -96,6 +100,8 @@ exports[`person > 1211 > suffix > with sex 1`] = `"DVM"`;
96100

97101
exports[`person > 1211 > zodiacSign 1`] = `"Capricorn"`;
98102

103+
exports[`person > 1337 > bio 1`] = `"inventor, creator, developer"`;
104+
99105
exports[`person > 1337 > firstName > noArgs 1`] = `"Devyn"`;
100106

101107
exports[`person > 1337 > firstName > with sex 1`] = `"Ray"`;

test/person.spec.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ describe('person', () => {
1717
'jobTitle',
1818
'jobDescriptor',
1919
'jobArea',
20-
'jobType'
20+
'jobType',
21+
'bio'
2122
);
2223

2324
t.describeEach(

0 commit comments

Comments
 (0)