diff --git a/CHANGELOG.md b/CHANGELOG.md index 075f33d..34c0cde 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ + +# [2.1.0](https://github.com/faker-javascript/age) (2022-01-11) +* Added xo, tsd, c8. +* Improved tests. + # [2.0.0](https://github.com/faker-javascript/age) (2022-01-09) diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..057fbb1 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,4 @@ +interface Options { + type: string; +} +export default function age(options?: Options): number; diff --git a/index.js b/index.js index bccf470..ea25133 100644 --- a/index.js +++ b/index.js @@ -4,31 +4,32 @@ export default function age(options) { let max = 100; switch (options.type) { case 'child': - min = 0; + min = 0; max = 12; break; case 'teen': - min = 13; + min = 13; max = 19; break; case 'adult': - min = 18; + min = 18; max = 65; break; case 'senior': - min = 65; + min = 65; max = 100; break; case 'all': - min = 0; + min = 0; max = 100; break; default: - min = 0; + min = 0; max = 100; break; } + min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; -}; \ No newline at end of file +} diff --git a/index.test-d.ts b/index.test-d.ts new file mode 100644 index 0000000..3782e36 --- /dev/null +++ b/index.test-d.ts @@ -0,0 +1,9 @@ +import {expectType} from 'tsd'; +import age from './index.js'; + +expectType(age()); +expectType(age({type: 'child'})); +expectType(age({type: 'teen'})); +expectType(age({type: 'adult'})); +expectType(age({type: 'senior'})); +expectType(age({type: 'all'})); diff --git a/package.json b/package.json index 143d7d9..6155d03 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fakerjs/age", - "version": "2.0.0", + "version": "2.1.0", "description": "Age package provides functionality to generate a fake age value.", "license": "MIT", "repository": "faker-javascript/age", @@ -15,14 +15,17 @@ "node": ">=12" }, "scripts": { - "test": "c8 ava" + "test": "c8 ava; xo --space 4; tsd;" }, "devDependencies": { - "ava": "^3.15.0", - "c8": "^7.11.0" + "ava": "^4.0.0", + "c8": "^7.11.0", + "tsd": "^0.19.1", + "xo": "^0.47.0" }, "files": [ - "index.js" + "index.js", + "index.d.ts" ], "keywords": [ "fakerjs", diff --git a/test.js b/test.js index 66890e1..a9e6968 100644 --- a/test.js +++ b/test.js @@ -1,31 +1,31 @@ -import age from './index.js'; import test from 'ava'; +import age from './index.js'; test('age return type to be number', t => { - t.is(typeof age(), 'number'); + t.is(typeof age(), 'number'); }); test('age with type child less than 13 and more than -1', t => { - t.true(age({type: 'child'}) < 13); - t.true(age({type: 'child'}) > -1); + t.true(age({type: 'child'}) < 13); + t.true(age({type: 'child'}) > -1); }); test('age with type teen less than 20 and more than 12', t => { - t.true(age({type: 'teen'}) < 20); - t.true(age({type: 'teen'}) > 12); + t.true(age({type: 'teen'}) < 20); + t.true(age({type: 'teen'}) > 12); }); test('age with type adult less than 69 and more than 17', t => { - t.true(age({type: 'adult'}) < 69); - t.true(age({type: 'adult'}) > 17); + t.true(age({type: 'adult'}) < 69); + t.true(age({type: 'adult'}) > 17); }); test('age with type senior less than 101 and more than 64', t => { - t.true(age({type: 'senior'}) < 101); - t.true(age({type: 'senior'}) > 64); + t.true(age({type: 'senior'}) < 101); + t.true(age({type: 'senior'}) > 64); }); test('age with type all less than 101 and more than -1', t => { - t.true(age({type: 'all'}) < 101); - t.true(age({type: 'all'}) > -1); -}); \ No newline at end of file + t.true(age({type: 'all'}) < 101); + t.true(age({type: 'all'}) > -1); +});