Skip to content

Commit 1325460

Browse files
committed
Letter 2.1.0
1 parent 196b966 commit 1325460

File tree

8 files changed

+47
-30
lines changed

8 files changed

+47
-30
lines changed

.editorconfig

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
# EditorConfig: http://EditorConfig.org
1+
# EditorConfig is awesome: https://EditorConfig.org
22

3-
# top-most EditorConfig file
43
root = true
54

6-
# Unix-style newlines with a newline ending every file
75
[*]
8-
charset = utf-8
96
end_of_line = lf
10-
trim_trailing_whitespace = true
117
insert_final_newline = true
8+
9+
[*.{js,d.ts,ts}]
10+
charset = utf-8
11+
trim_trailing_whitespace = true
1212
indent_style = space
1313
indent_size = 4
1414

15-
# 2 space indentation
16-
[*.yaml, *.yml]
15+
[package.json,*.yaml]
1716
indent_style = space
1817
indent_size = 2

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* text=auto eol=lf

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Global
22
node_modules/
3+
coverage
34

45
# OS Generated
56
.DS_Store*

index.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
interface Options {
2+
casing?: string;
3+
locale?: string;
4+
}
5+
export default function letter(options?: Options): string;

index.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
/* eslint camelcase: ["error", {properties: "never"}] */
12
export default function letter(options) {
23
options = options || {};
3-
let keyspace = {
4-
"en_US": "abcdefghijklmnopqrstuvwxyz",
5-
"ru_RU": "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
4+
const keyspace = {
5+
en_US: 'abcdefghijklmnopqrstuvwxyz',
6+
ru_RU: 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя',
67
};
7-
let locale = options.locale || 'en_US';
8-
let letter = keyspace[locale].charAt(Math.floor(Math.random() * keyspace[locale].length));
8+
const locale = options.locale || 'en_US';
9+
const letter = keyspace[locale].charAt(Math.floor(Math.random() * keyspace[locale].length));
910
return (options.casing === 'upper' ? letter.toUpperCase() : letter);
10-
};
11+
}

index.test-d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import {expectType} from 'tsd';
2+
import letter from './index.js';
3+
4+
expectType<string>(letter());
5+
expectType<string>(letter({casing: 'upper'}));
6+
expectType<string>(letter({casing: 'upper', locale: 'en_US'}));

package.json

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fakerjs/letter",
3-
"version": "2.0.1",
3+
"version": "2.1.0",
44
"description": "Letter package provides functionality to generate a fake letter value.",
55
"license": "MIT",
66
"repository": "faker-javascript/letter",
@@ -15,13 +15,17 @@
1515
"node": ">=12"
1616
},
1717
"scripts": {
18-
"test": "ava"
18+
"test": "c8 ava; xo --space 4; tsd;"
1919
},
2020
"devDependencies": {
21-
"ava": "^3.15.0"
21+
"ava": "^4.0.0",
22+
"c8": "^7.11.0",
23+
"tsd": "^0.19.1",
24+
"xo": "^0.47.0"
2225
},
2326
"files": [
24-
"index.js"
27+
"index.js",
28+
"index.d.ts"
2529
],
2630
"keywords": [
2731
"fakerjs",

test.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
import letter from './index.js';
21
import test from 'ava';
2+
import letter from './index.js';
33

44
test('letter return type to be string', t => {
5-
t.is(typeof letter(), 'string');
5+
t.is(typeof letter(), 'string');
66
});
77

88
test('letter length casing eq 1', t => {
9-
t.is(letter().length, 1);
10-
t.is(letter({ casing: 'upper' }).length, 1);
11-
t.is(letter({ casing: 'lower' }).length, 1);
9+
t.is(letter().length, 1);
10+
t.is(letter({casing: 'upper'}).length, 1);
11+
t.is(letter({casing: 'lower'}).length, 1);
1212
});
1313

1414
test('letter with locale ru_RU includes', t => {
15-
t.true('абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.includes(letter({ locale: 'ru_RU' })));
16-
t.false('абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.includes('z'));
15+
t.true('абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.includes(letter({locale: 'ru_RU'})));
16+
t.false('абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.includes('z'));
1717
});
1818

1919
test('letter with locale en_US includes', t => {
20-
t.true('abcdefghijklmnopqrstuvwxyz'.includes(letter({ locale: 'en_US' })));
21-
t.false('abcdefghijklmnopqrstuvwxyz'.includes('я'));
20+
t.true('abcdefghijklmnopqrstuvwxyz'.includes(letter({locale: 'en_US'})));
21+
t.false('abcdefghijklmnopqrstuvwxyz'.includes('я'));
2222
});
2323

2424
test('letter with casing and locale ru_RU length eq 1', t => {
25-
t.is(letter().length, 1);
26-
t.is(letter({ casing: 'upper', locale: 'ru_RU' }).length, 1);
27-
t.is(letter({ casing: 'lower', locale: 'ru_RU' }).length, 1);
28-
});
25+
t.is(letter().length, 1);
26+
t.is(letter({casing: 'upper', locale: 'ru_RU'}).length, 1);
27+
t.is(letter({casing: 'lower', locale: 'ru_RU'}).length, 1);
28+
});

0 commit comments

Comments
 (0)