From ceec2fbdcf1f412bd8b3dce4919bacfaad40d05b Mon Sep 17 00:00:00 2001 From: Sergey Romanenko Date: Wed, 19 Jan 2022 10:51:41 +0300 Subject: [PATCH] Gender 2.2.0 --- .gitignore | 1 + CHANGELOG.md | 4 ++++ index.js | 25 +++++++++++++------------ locales/en_US/gender.json | 4 ++++ locales/ru_RU/gender.json | 4 ++++ package.json | 5 ++++- 6 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 locales/en_US/gender.json create mode 100644 locales/ru_RU/gender.json diff --git a/.gitignore b/.gitignore index bac2cd5..46ce66f 100755 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # Global node_modules/ coverage +package-lock.json # OS Generated .DS_Store* diff --git a/CHANGELOG.md b/CHANGELOG.md index ba664f0..6f534d3 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ + +# [2.2.0](https://github.com/faker-javascript/gender) (2022-01-19) +* Add locales folder for genders. + # [2.1.1](https://github.com/faker-javascript/gender) (2022-01-15) * Typo updates. diff --git a/index.js b/index.js index af3a5da..e39a714 100644 --- a/index.js +++ b/index.js @@ -1,18 +1,19 @@ -/* eslint camelcase: ["error", {properties: "never"}] */ +import path from 'node:path'; +import {loadJsonFileSync} from 'load-json-file'; + export default function gender(options) { options = options || {}; - const genders = { - en_US: [ - 'Male', - 'Female', - ], - ru_RU: [ - 'Мужской', - 'Женский', - ], - }; const locale = options.locale || 'en_US'; - const gendersWithExtra = [...genders[locale], ...options.extra || []]; + const filePath = `./locales/${locale}/gender.json`; + let genders = []; + + try { + genders = loadJsonFileSync(filePath); + } catch { + genders = loadJsonFileSync(path.resolve('node_modules/@fakerjs/gender/', filePath)); + } + + const gendersWithExtra = [...genders, ...options.extra || []]; const randomGender = gendersWithExtra[Math.floor(Math.random() * gendersWithExtra.length)]; return randomGender; } diff --git a/locales/en_US/gender.json b/locales/en_US/gender.json new file mode 100644 index 0000000..f4f30ad --- /dev/null +++ b/locales/en_US/gender.json @@ -0,0 +1,4 @@ +[ + "Male", + "Female" +] \ No newline at end of file diff --git a/locales/ru_RU/gender.json b/locales/ru_RU/gender.json new file mode 100644 index 0000000..88ec7ff --- /dev/null +++ b/locales/ru_RU/gender.json @@ -0,0 +1,4 @@ +[ + "Мужской", + "Женский" +] \ No newline at end of file diff --git a/package.json b/package.json index c16064a..8f2e2a1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fakerjs/gender", - "version": "2.1.1", + "version": "2.2.0", "description": "Gender package provides functionality to generate a fake gender value.", "license": "MIT", "repository": "faker-javascript/gender", @@ -17,6 +17,9 @@ "scripts": { "test": "c8 ava; xo --space 4; tsd;" }, + "dependencies": { + "load-json-file": "^7.0.1" + }, "devDependencies": { "ava": "^4.0.0", "c8": "^7.11.0",