From b04dc914eec44ec3c5ae760976b616ce1d2584e1 Mon Sep 17 00:00:00 2001 From: ST-DDT Date: Tue, 5 Apr 2022 23:35:01 +0200 Subject: feat: use street address templates from locales (#754) --- src/address.ts | 45 +++++++++++++---------------- src/definitions/address.ts | 22 ++++++++++++++ src/locales/ar/address/street_address.ts | 5 +++- src/locales/az/address/street_address.ts | 5 +++- src/locales/cz/address/street_address.ts | 5 +++- src/locales/de/address/street_address.ts | 5 +++- src/locales/de_AT/address/street_address.ts | 5 +++- src/locales/en/address/street_address.ts | 5 +++- src/locales/en_GH/address/street_address.ts | 5 +++- src/locales/es/address/street_address.ts | 8 ++--- src/locales/es_MX/address/street_address.ts | 8 ++--- src/locales/fa/address/street_address.ts | 8 ++--- src/locales/fr/address/street_address.ts | 5 +++- src/locales/fr_BE/address/street_address.ts | 5 +++- src/locales/ge/address/street_address.ts | 5 +++- src/locales/he/address/street_address.ts | 5 +++- src/locales/hr/address/street_address.ts | 5 +++- src/locales/hy/address/street_address.ts | 5 +++- src/locales/id_ID/address/street_address.ts | 5 +++- src/locales/it/address/street_address.ts | 8 ++--- src/locales/lv/address/street_address.ts | 8 ++--- src/locales/mk/address/street_address.ts | 5 +++- src/locales/nb_NO/address/street_address.ts | 5 +++- src/locales/nl/address/street_address.ts | 5 +++- src/locales/nl_BE/address/street_address.ts | 5 +++- src/locales/pl/address/street_address.ts | 5 +++- src/locales/pt_PT/address/street_address.ts | 5 +++- src/locales/ro/address/street_address.ts | 5 +++- src/locales/ru/address/street_address.ts | 5 +++- src/locales/sk/address/street_address.ts | 5 +++- src/locales/sv/address/street_address.ts | 5 +++- src/locales/tr/address/street_address.ts | 5 +++- src/locales/uk/address/street_address.ts | 5 +++- src/locales/ur/address/street_address.ts | 5 +++- src/locales/zh_CN/address/street_address.ts | 5 +++- src/locales/zh_TW/address/street_address.ts | 5 +++- 36 files changed, 178 insertions(+), 74 deletions(-) (limited to 'src') diff --git a/src/address.ts b/src/address.ts index f7ceeddc..5c862f5c 100644 --- a/src/address.ts +++ b/src/address.ts @@ -206,6 +206,20 @@ export class Address { ); } + /** + * Generates a random building number. + * + * @example + * faker.address.buildingNumber() // '379' + */ + buildingNumber(): string { + const format = this.faker.random.arrayElement( + this.faker.definitions.address.building_number + ); + + return this.faker.helpers.replaceSymbolWithNumber(format); + } + /** * Generates a random localized street name. * @@ -242,30 +256,10 @@ export class Address { * faker.address.streetAddress(false) // '34830 Erdman Hollow' */ streetAddress(useFullAddress: boolean = false): string { - let address = ''; - switch (this.faker.datatype.number(2)) { - case 0: - address = - this.faker.helpers.replaceSymbolWithNumber('#####') + - ' ' + - this.faker.address.streetName(); - break; - case 1: - address = - this.faker.helpers.replaceSymbolWithNumber('####') + - ' ' + - this.faker.address.streetName(); - break; - case 2: - address = - this.faker.helpers.replaceSymbolWithNumber('###') + - ' ' + - this.faker.address.streetName(); - break; - } - return useFullAddress - ? address + ' ' + this.faker.address.secondaryAddress() - : address; + const formats = this.faker.definitions.address.street_address; + const format = formats[useFullAddress ? 'full' : 'normal']; + + return this.faker.fake(format); } /** @@ -293,7 +287,8 @@ export class Address { } /** - * Generates a random localized secondary address. + * Generates a random localized secondary address. This refers to a specific location at a given address + * such as an apartment or room number. * * @example * faker.address.secondaryAddress() // 'Apt. 861' diff --git a/src/definitions/address.ts b/src/definitions/address.ts index 24f9b7cc..c5d5409f 100644 --- a/src/definitions/address.ts +++ b/src/definitions/address.ts @@ -54,6 +54,11 @@ export interface AddressDefinitions { */ direction_abbr: string[]; + /** + * The pattern used to generate building numbers. + */ + building_number: string[]; + /** * Common street prefixes */ @@ -63,6 +68,20 @@ export interface AddressDefinitions { */ street_suffix: string[]; + /** + * The pattern used to generate street addresses. + */ + street_address: { + /** + * The fake pattern to generate only the street address. + */ + normal: string; + /** + * The fake pattern to generate the full street address including the secondary address. + */ + full: string; + }; + /** * The address "inside" an address/e.g. an apartment or office. */ @@ -100,9 +119,12 @@ export const ADDRESS = allOf()( 'direction_abbr', 'direction', + 'building_number', + 'street_prefix', 'street_suffix', + 'street_address', 'secondary_address', 'country_code', diff --git a/src/locales/ar/address/street_address.ts b/src/locales/ar/address/street_address.ts index 0fcaf469..d6c5878a 100644 --- a/src/locales/ar/address/street_address.ts +++ b/src/locales/ar/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{building_number} #{street_name}']; +export default { + normal: '{{address.buildingNumber}} {{address.streetName}}', + full: '{{address.buildingNumber}} {{address.streetName}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/az/address/street_address.ts b/src/locales/az/address/street_address.ts index a6c7cff8..73037a5c 100644 --- a/src/locales/az/address/street_address.ts +++ b/src/locales/az/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name}, #{building_number}']; +export default { + normal: '{{address.streetName}}, {{address.buildingNumber}}', + full: '{{address.streetName}}, {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/cz/address/street_address.ts b/src/locales/cz/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/cz/address/street_address.ts +++ b/src/locales/cz/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/de/address/street_address.ts b/src/locales/de/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/de/address/street_address.ts +++ b/src/locales/de/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/de_AT/address/street_address.ts b/src/locales/de_AT/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/de_AT/address/street_address.ts +++ b/src/locales/de_AT/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/en/address/street_address.ts b/src/locales/en/address/street_address.ts index 0fcaf469..d6c5878a 100644 --- a/src/locales/en/address/street_address.ts +++ b/src/locales/en/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{building_number} #{street_name}']; +export default { + normal: '{{address.buildingNumber}} {{address.streetName}}', + full: '{{address.buildingNumber}} {{address.streetName}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/en_GH/address/street_address.ts b/src/locales/en_GH/address/street_address.ts index 0fcaf469..d6c5878a 100644 --- a/src/locales/en_GH/address/street_address.ts +++ b/src/locales/en_GH/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{building_number} #{street_name}']; +export default { + normal: '{{address.buildingNumber}} {{address.streetName}}', + full: '{{address.buildingNumber}} {{address.streetName}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/es/address/street_address.ts b/src/locales/es/address/street_address.ts index b313d432..36449d0b 100644 --- a/src/locales/es/address/street_address.ts +++ b/src/locales/es/address/street_address.ts @@ -1,4 +1,4 @@ -export default [ - '#{street_name}#{building_number}', - '#{street_name}#{building_number} #{secondary_address}', -]; +export default { + normal: '{{address.streetName}}{{address.buildingNumber}}', + full: '{{address.streetName}}{{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/es_MX/address/street_address.ts b/src/locales/es_MX/address/street_address.ts index b313d432..36449d0b 100644 --- a/src/locales/es_MX/address/street_address.ts +++ b/src/locales/es_MX/address/street_address.ts @@ -1,4 +1,4 @@ -export default [ - '#{street_name}#{building_number}', - '#{street_name}#{building_number} #{secondary_address}', -]; +export default { + normal: '{{address.streetName}}{{address.buildingNumber}}', + full: '{{address.streetName}}{{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/fa/address/street_address.ts b/src/locales/fa/address/street_address.ts index 22ab96e3..74133d40 100644 --- a/src/locales/fa/address/street_address.ts +++ b/src/locales/fa/address/street_address.ts @@ -1,4 +1,4 @@ -export default [ - '#{street_name}, پلاک #{building_number}', - '#{street_name}, #{street_name}, پلاک #{building_number}', -]; +export default { + normal: '{{address.streetName}}, پلاک {{address.buildingNumber}}', + full: '{{address.streetName}}, پلاک {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/fr/address/street_address.ts b/src/locales/fr/address/street_address.ts index 0fcaf469..d6c5878a 100644 --- a/src/locales/fr/address/street_address.ts +++ b/src/locales/fr/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{building_number} #{street_name}']; +export default { + normal: '{{address.buildingNumber}} {{address.streetName}}', + full: '{{address.buildingNumber}} {{address.streetName}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/fr_BE/address/street_address.ts b/src/locales/fr_BE/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/fr_BE/address/street_address.ts +++ b/src/locales/fr_BE/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/ge/address/street_address.ts b/src/locales/ge/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/ge/address/street_address.ts +++ b/src/locales/ge/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/he/address/street_address.ts b/src/locales/he/address/street_address.ts index 0fcaf469..d6c5878a 100644 --- a/src/locales/he/address/street_address.ts +++ b/src/locales/he/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{building_number} #{street_name}']; +export default { + normal: '{{address.buildingNumber}} {{address.streetName}}', + full: '{{address.buildingNumber}} {{address.streetName}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/hr/address/street_address.ts b/src/locales/hr/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/hr/address/street_address.ts +++ b/src/locales/hr/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/hy/address/street_address.ts b/src/locales/hy/address/street_address.ts index 41ed0474..aaf5810e 100644 --- a/src/locales/hy/address/street_address.ts +++ b/src/locales/hy/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{address.street_name} #{address.building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/id_ID/address/street_address.ts b/src/locales/id_ID/address/street_address.ts index 33d2e0ce..1a4028a2 100644 --- a/src/locales/id_ID/address/street_address.ts +++ b/src/locales/id_ID/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} no #{building_number}']; +export default { + normal: '{{address.streetName}} no {{address.buildingNumber}}', + full: '{{address.streetName}} no {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/it/address/street_address.ts b/src/locales/it/address/street_address.ts index 98c792d0..fc1a70df 100644 --- a/src/locales/it/address/street_address.ts +++ b/src/locales/it/address/street_address.ts @@ -1,4 +1,4 @@ -export default [ - '#{street_name} #{building_number}', - '#{street_name} #{building_number}, #{secondary_address}', -]; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}}, {{address.secondaryAddress}}', +}; diff --git a/src/locales/lv/address/street_address.ts b/src/locales/lv/address/street_address.ts index 5987b430..aaf5810e 100644 --- a/src/locales/lv/address/street_address.ts +++ b/src/locales/lv/address/street_address.ts @@ -1,4 +1,4 @@ -export default [ - '#{street_name} #{building_number}', - '#{street_name} #{building_number} #{secondary_address}', -]; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/mk/address/street_address.ts b/src/locales/mk/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/mk/address/street_address.ts +++ b/src/locales/mk/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/nb_NO/address/street_address.ts b/src/locales/nb_NO/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/nb_NO/address/street_address.ts +++ b/src/locales/nb_NO/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/nl/address/street_address.ts b/src/locales/nl/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/nl/address/street_address.ts +++ b/src/locales/nl/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/nl_BE/address/street_address.ts b/src/locales/nl_BE/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/nl_BE/address/street_address.ts +++ b/src/locales/nl_BE/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/pl/address/street_address.ts b/src/locales/pl/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/pl/address/street_address.ts +++ b/src/locales/pl/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/pt_PT/address/street_address.ts b/src/locales/pt_PT/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/pt_PT/address/street_address.ts +++ b/src/locales/pt_PT/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/ro/address/street_address.ts b/src/locales/ro/address/street_address.ts index 4a09fa36..b8624265 100644 --- a/src/locales/ro/address/street_address.ts +++ b/src/locales/ro/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name}, #{building_number}, #{secondary_address}']; +export default { + normal: '{{address.streetName}}, {{address.buildingNumber}}', + full: '{{address.streetName}}, {{address.buildingNumber}}, {{address.secondaryAddress}}', +}; diff --git a/src/locales/ru/address/street_address.ts b/src/locales/ru/address/street_address.ts index a6c7cff8..73037a5c 100644 --- a/src/locales/ru/address/street_address.ts +++ b/src/locales/ru/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name}, #{building_number}']; +export default { + normal: '{{address.streetName}}, {{address.buildingNumber}}', + full: '{{address.streetName}}, {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/sk/address/street_address.ts b/src/locales/sk/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/sk/address/street_address.ts +++ b/src/locales/sk/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/sv/address/street_address.ts b/src/locales/sv/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/sv/address/street_address.ts +++ b/src/locales/sv/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/tr/address/street_address.ts b/src/locales/tr/address/street_address.ts index 51642bdd..aaf5810e 100644 --- a/src/locales/tr/address/street_address.ts +++ b/src/locales/tr/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name} #{building_number}']; +export default { + normal: '{{address.streetName}} {{address.buildingNumber}}', + full: '{{address.streetName}} {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/uk/address/street_address.ts b/src/locales/uk/address/street_address.ts index a6c7cff8..73037a5c 100644 --- a/src/locales/uk/address/street_address.ts +++ b/src/locales/uk/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name}, #{building_number}']; +export default { + normal: '{{address.streetName}}, {{address.buildingNumber}}', + full: '{{address.streetName}}, {{address.buildingNumber}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/ur/address/street_address.ts b/src/locales/ur/address/street_address.ts index 0fcaf469..d6c5878a 100644 --- a/src/locales/ur/address/street_address.ts +++ b/src/locales/ur/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{building_number} #{street_name}']; +export default { + normal: '{{address.buildingNumber}} {{address.streetName}}', + full: '{{address.buildingNumber}} {{address.streetName}} {{address.secondaryAddress}}', +}; diff --git a/src/locales/zh_CN/address/street_address.ts b/src/locales/zh_CN/address/street_address.ts index ad30a40d..4b760343 100644 --- a/src/locales/zh_CN/address/street_address.ts +++ b/src/locales/zh_CN/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name}#{building_number}号']; +export default { + normal: '{{address.streetName}}{{address.buildingNumber}}号', + full: '{{address.streetName}}{{address.buildingNumber}}号 {{address.secondaryAddress}}', +}; diff --git a/src/locales/zh_TW/address/street_address.ts b/src/locales/zh_TW/address/street_address.ts index cb37c30c..21e95473 100644 --- a/src/locales/zh_TW/address/street_address.ts +++ b/src/locales/zh_TW/address/street_address.ts @@ -1 +1,4 @@ -export default ['#{street_name}#{building_number}號']; +export default { + normal: '{{address.streetName}}{{address.buildingNumber}}號', + full: '{{address.streetName}}{{address.buildingNumber}}號 {{address.secondaryAddress}}', +}; -- cgit v1.2.3