[d24f17c] | 1 | import { bind, curryN } from 'ramda';
|
---|
| 2 |
|
---|
| 3 | import isFunction from './isFunction';
|
---|
| 4 | import ponyfill from './internal/ponyfills/Number.isSafeInteger';
|
---|
| 5 |
|
---|
| 6 | export const isSafeIntegerPonyfill = curryN(1, ponyfill);
|
---|
| 7 |
|
---|
| 8 | /**
|
---|
| 9 | * Checks whether the passed value is a safe `integer`.
|
---|
| 10 | *
|
---|
| 11 | * @func isSafeInteger
|
---|
| 12 | * @memberOf RA
|
---|
| 13 | * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
|
---|
| 14 | * @category Type
|
---|
| 15 | * @sig * -> Boolean
|
---|
| 16 | * @param {*} val The value to test
|
---|
| 17 | * @return {boolean}
|
---|
| 18 | * @example
|
---|
| 19 | *
|
---|
| 20 | * RA.isSafeInteger(3); //=> true
|
---|
| 21 | * RA.isSafeInteger(Math.pow(2, 53)) //=> false
|
---|
| 22 | * RA.isSafeInteger(Math.pow(2, 53) - 1); //=> true
|
---|
| 23 | * RA.isSafeInteger(NaN); //=> false
|
---|
| 24 | * RA.isSafeInteger(Infinity); //=> false
|
---|
| 25 | * RA.isSafeInteger('3') //=> false
|
---|
| 26 | * RA.isSafeInteger(3.1); //=> false
|
---|
| 27 | * RA.isSafeInteger(3.0); //=> true
|
---|
| 28 | * RA.isSafeInteger('string'); //=> false
|
---|
| 29 | * RA.isSafeInteger(null); //=> false
|
---|
| 30 | * RA.isSafeInteger(undefined); //=> false
|
---|
| 31 | * RA.isSafeInteger({}); //=> false
|
---|
| 32 | * RA.isSafeInteger(() => { }); //=> false
|
---|
| 33 | * RA.isSafeInteger(true); //=> false
|
---|
| 34 | */
|
---|
| 35 |
|
---|
| 36 | const isSafeInteger = isFunction(Number.isSafeInteger)
|
---|
| 37 | ? curryN(1, bind(Number.isSafeInteger, Number))
|
---|
| 38 | : isSafeIntegerPonyfill;
|
---|
| 39 |
|
---|
| 40 | export default isSafeInteger;
|
---|