From 045b8d60a984976b088d8bc28dc61798e9cad2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leyla=20J=C3=A4hnig?= Date: Sat, 18 Jun 2022 16:48:32 +0200 Subject: refactor(name.findName): allow prefix and suffix (#1080) --- src/modules/name/index.ts | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'src/modules') diff --git a/src/modules/name/index.ts b/src/modules/name/index.ts index f1d357e7..009b35fc 100644 --- a/src/modules/name/index.ts +++ b/src/modules/name/index.ts @@ -148,33 +148,33 @@ export class Name { * faker.name.findName(undefined, undefined, 'male') // 'Fernando Schaefer' */ findName(firstName?: string, lastName?: string, gender?: GenderType): string { - const variant = this.faker.datatype.number(8); - let prefix = ''; - let suffix = ''; - const normalizedGender: GenderType = gender ?? this.faker.helpers.arrayElement(['female', 'male']); firstName = firstName || this.firstName(normalizedGender); lastName = lastName || this.lastName(normalizedGender); - switch (variant) { - // TODO @Shinigami92 2022-03-21: Add possibility to have a prefix together with a suffix - case 0: - prefix = this.prefix(gender); - if (prefix) { - return `${prefix} ${firstName} ${lastName}`; - } - // TODO @Shinigami92 2022-01-21: Not sure if this fallthrough is wanted - // eslint-disable-next-line no-fallthrough - case 1: - suffix = this.suffix(); - if (suffix) { - return `${firstName} ${lastName} ${suffix}`; - } + const nameParts: string[] = []; + const prefix = this.faker.helpers.maybe(() => this.prefix(gender), { + probability: 0.125, + }); + if (prefix) { + nameParts.push(prefix); } - return `${firstName} ${lastName}`; + nameParts.push(firstName); + nameParts.push(lastName); + + const suffix = this.faker.helpers.maybe(() => this.suffix(), { + probability: 0.125, + }); + if (suffix) { + nameParts.push(suffix); + } + + const fullName = nameParts.join(' '); + + return fullName; } /** -- cgit v1.2.3