Add is.safeInteger() (#22)
This commit is contained in:
parent
dc3b6ff86b
commit
00974a2fe9
3 changed files with 18 additions and 2 deletions
1
index.js
1
index.js
|
|
@ -124,6 +124,7 @@ const primitiveTypes = new Set([
|
|||
is.primitive = x => is.null(x) || primitiveTypes.has(typeof x);
|
||||
|
||||
is.integer = Number.isInteger;
|
||||
is.safeInteger = Number.isSafeInteger;
|
||||
|
||||
is.plainObject = x => {
|
||||
// From: https://github.com/sindresorhus/is-plain-obj/blob/master/index.js
|
||||
|
|
|
|||
|
|
@ -128,6 +128,11 @@ is.asyncFunction(() => {});
|
|||
JavaScript primitives are as follows: `null`, `undefined`, `string`, `number`, `boolean`, `symbol`.
|
||||
|
||||
##### .integer(value)
|
||||
|
||||
##### .safeInteger(value)
|
||||
|
||||
Returns `true` if `value` is a [safe integer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger).
|
||||
|
||||
##### .plainObject(value)
|
||||
|
||||
An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`.
|
||||
|
|
|
|||
14
test.js
14
test.js
|
|
@ -98,6 +98,10 @@ const types = new Map([
|
|||
new Object() // eslint-disable-line no-new-object
|
||||
]],
|
||||
['integer', 6],
|
||||
['safeInteger', [
|
||||
Math.pow(2, 53) - 1,
|
||||
-Math.pow(2, 53) + 1
|
||||
]],
|
||||
['domElement', [
|
||||
'div',
|
||||
'input',
|
||||
|
|
@ -160,7 +164,7 @@ test('is.string', t => {
|
|||
});
|
||||
|
||||
test('is.number', t => {
|
||||
testType(t, 'number', ['nan', 'integer', 'infinite']);
|
||||
testType(t, 'number', ['nan', 'integer', 'safeInteger', 'infinite']);
|
||||
});
|
||||
|
||||
test('is.boolean', t => {
|
||||
|
|
@ -312,10 +316,16 @@ test('is.primitive', t => {
|
|||
});
|
||||
|
||||
test('is.integer', t => {
|
||||
testType(t, 'integer', ['number']);
|
||||
testType(t, 'integer', ['number', 'safeInteger']);
|
||||
t.false(m.integer(1.4));
|
||||
});
|
||||
|
||||
test('is.safeInteger', t => {
|
||||
testType(t, 'safeInteger', ['number', 'integer']);
|
||||
t.false(m.safeInteger(Math.pow(2, 53)));
|
||||
t.false(m.safeInteger(-Math.pow(2, 53)));
|
||||
});
|
||||
|
||||
test('is.plainObject', t => {
|
||||
testType(t, 'plainObject', ['object', 'promise']);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue