Skip to content

Commit

Permalink
Letter 2.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Awilum committed Jan 19, 2022
1 parent 7f49aa8 commit 8217476
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 8 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Global
node_modules/
coverage
package-lock.json

# OS Generated
.DS_Store*
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
<a name="2.2.1"></a>
# [2.2.1](https://github.com/faker-javascript/letter) (2022-01-19)
* Add locales folder for genders.

<a name="2.1.1"></a>
# [2.1.1](https://github.com/faker-javascript/letter) (2022-01-15)
* Typo updates.
Expand Down
19 changes: 13 additions & 6 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
/* eslint camelcase: ["error", {properties: "never"}] */
import path from 'node:path';
import {loadJsonFileSync} from 'load-json-file';

export default function letter(options) {
options = options || {};
const keyspace = {
en_US: 'abcdefghijklmnopqrstuvwxyz',
ru_RU: 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя',
};
const locale = options.locale || 'en_US';
const letter = keyspace[locale].charAt(Math.floor(Math.random() * keyspace[locale].length));
const filePath = `./locales/${locale}/letters.json`;
let letters = [];

try {
letters = loadJsonFileSync(filePath);
} catch {
letters = loadJsonFileSync(path.resolve('node_modules/@fakerjs/letter/', filePath));
}

const letter = letters[0].charAt(Math.floor(Math.random() * letters[0].length));
return (options.casing === 'upper' ? letter.toUpperCase() : letter);
}
2 changes: 1 addition & 1 deletion index.test-d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ import letter from './index.js';

expectType<string>(letter());
expectType<string>(letter({casing: 'upper'}));
expectType<string>(letter({casing: 'upper', locale: 'en_US'}));
expectType<string>(letter({casing: 'upper', locale: 'en_US'}));
3 changes: 3 additions & 0 deletions locales/en_US/letters.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[
"abcdefghijklmnopqrstuvwxyz"
]
3 changes: 3 additions & 0 deletions locales/ru_RU/letters.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[
"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
]
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fakerjs/letter",
"version": "2.1.1",
"version": "2.2.1",
"description": "Letter package provides functionality to generate a fake letter value.",
"license": "MIT",
"repository": "faker-javascript/letter",
Expand All @@ -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",
Expand Down

0 comments on commit 8217476

Please sign in to comment.