From 47982af117f1c4929860b27ba5c7af6de981ec58 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 5 Oct 2017 11:20:39 +0700 Subject: [PATCH 1/4] Fix silly `null` check mistake Fixes #13 --- index.js | 2 +- test.js | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 045577f..6ee2179 100644 --- a/index.js +++ b/index.js @@ -7,7 +7,7 @@ const isOfType = type => x => typeof x === type; // eslint-disable-line valid-ty const isObjectOfType = type => x => getObjectType(x) === type; const is = value => { - if (value == null) { // eslint-disable-line no-eq-null, eqeqeq + if (value === null) { return 'null'; } diff --git a/test.js b/test.js index b4b50e6..7fac42f 100644 --- a/test.js +++ b/test.js @@ -112,6 +112,13 @@ const testType = (t, type, exclude) => { } }; +test('is', t => { + t.is(m(null), 'null'); + t.is(m(undefined), 'undefined'); + + // TODO: Expand this to all the supported types. Maybe reuse `testType()` somehow. +}); + test('is.undefined', t => { testType(t, 'undefined', ['nullOrUndefined']); }); From 11b98171c82991416c3ff82f076d963b0c775184 Mon Sep 17 00:00:00 2001 From: Sindre Sorhus Date: Thu, 5 Oct 2017 11:21:46 +0700 Subject: [PATCH 2/4] 0.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9174f2e..40412cd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@sindresorhus/is", - "version": "0.2.0", + "version": "0.2.1", "description": "Type check values: `is.string('🦄') //=> true`", "license": "MIT", "repository": "sindresorhus/is", From 24c964a7c7f0bf2c73a56e7b023afcb46eefd359 Mon Sep 17 00:00:00 2001 From: Melvin Philips Date: Thu, 5 Oct 2017 00:18:25 -0700 Subject: [PATCH 3/4] Add is.infinite() --- index.js | 2 ++ readme.md | 4 ++++ test.js | 12 ++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 6ee2179..b3d52b9 100644 --- a/index.js +++ b/index.js @@ -161,4 +161,6 @@ is.inRange = (x, range) => { throw new TypeError(`Invalid range: ${util.inspect(range)}`); }; +is.infinite = x => x === Infinity || x === -Infinity; + module.exports = is; diff --git a/readme.md b/readme.md index be284c4..fab01c1 100644 --- a/readme.md +++ b/readme.md @@ -145,6 +145,10 @@ Check if `value` (number) is in the range of `0` to `upperBound`. is.inRange(3, 10); ``` +##### .infinite(value) + +Check if `value` is `Infinity` or `-Infinity`. + ## FAQ diff --git a/test.js b/test.js index 7fac42f..a2c4337 100644 --- a/test.js +++ b/test.js @@ -89,7 +89,11 @@ const types = new Map([ Object.create(null), new Object() // eslint-disable-line no-new-object ]], - ['integer', 6] + ['integer', 6], + ['infinite', [ + Infinity, + -Infinity + ]] ]); // This ensures a certain method matches only the types @@ -132,7 +136,7 @@ test('is.string', t => { }); test('is.number', t => { - testType(t, 'number', ['nan', 'integer']); + testType(t, 'number', ['nan', 'integer', 'infinite']); }); test('is.boolean', t => { @@ -365,3 +369,7 @@ test('is.inRange', t => { m.inRange(0, [1, 2, 3]); }); }); + +test('is.infinite', t => { + testType(t, 'infinite', ['number']); +}); From ee8f5d16f849e8e45f160c3ea5f0fa1ed265d1b8 Mon Sep 17 00:00:00 2001 From: Khaled Al-Ansari Date: Thu, 5 Oct 2017 16:50:15 +0300 Subject: [PATCH 4/4] Update `is.boolean()` method (#15) --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index b3d52b9..f7a16fd 100644 --- a/index.js +++ b/index.js @@ -61,7 +61,7 @@ is.undefined = isOfType('undefined'); is.null = x => x === null; is.string = isOfType('string'); is.number = isOfType('number'); -is.boolean = isOfType('boolean'); +is.boolean = x => x === true || x === false; is.symbol = isOfType('symbol'); is.array = Array.isArray;