is-type-of
Version:
complete type checking for node
120 lines • 5.57 kB
JavaScript
// Javascript Primitive
// https://developer.mozilla.org/en-US/docs/Glossary/Primitive
const MAX_INT_31 = Math.pow(2, 31);
/**
* returns true if val is string, not `String` object
*/
export function isString(val) {
return typeof val === 'string';
}
/**
* returns true if val is number, not `Number` object
*/
export function isNumber(val) {
return typeof val === 'number';
}
/**
* returns true if val is boolean, not `Boolean` object
*/
export function isBoolean(val) {
return typeof val === 'boolean';
}
/**
* returns true if val is bigint
*/
export function isBigInt(val) {
return typeof val === 'bigint';
}
/**
* returns true if val is symbol
*/
export function isSymbol(val) {
return typeof val === 'symbol';
}
/**
* returns true if val is undefined
*/
export function isUndefined(val) {
return typeof val === 'undefined';
}
/**
* returns true if val is null
*/
export function isNull(val) {
return val === null;
}
/**
* returns true if val is null or undefined
*/
export function isNullable(val) {
return val == null;
}
/**
* returns true if val is primitive
*/
export function isPrimitive(val) {
return val === null ||
typeof val === 'boolean' ||
typeof val === 'number' ||
typeof val === 'string' ||
typeof val === 'symbol' ||
typeof val === 'bigint' ||
typeof val === 'undefined';
}
// Number Extension
/**
* returns true if val is integer
*/
export function isInteger(val) {
if (isNullable(val))
return false;
return Number.isInteger(val);
}
/**
* returns true if val is integer, and between -2 ** 31 and 2 ** 31 - 1
*/
export function isInteger32(val) {
if (!isInteger(val))
return false;
return val >= -MAX_INT_31 && val <= MAX_INT_31 - 1;
}
/**
* returns true if val is integer, and < -2 ** 31, and > 2 ** 31 - 1
*/
export function isLong(val) {
if (!isInteger(val))
return false;
return val < -MAX_INT_31 || val > MAX_INT_31 - 1;
}
/**
* returns true if val is integer, and between -(2 ** 53 - 1) and 2 ** 53 - 1
* @see {Number.isSafeInteger}
*/
export function isSafeInteger(val) {
return Number.isSafeInteger(val);
}
/**
* returns true if val is Double
*/
export function isDouble(val) {
if (isNullable(val))
return false;
return isNumber(val)
&& !isNaN(val)
&& val % 1 !== 0;
}
/**
* returns true if val is NaN
* @see {Number.isNaN}
*/
export function isNaN(val) {
return Number.isNaN(val);
}
/**
* returns true if val is finite
* @see {Number.isFinite}
*/
export function isFinite(val) {
return Number.isFinite(val);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL3ByaW1pdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsOERBQThEO0FBSzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFhO0lBQ3BDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQWE7SUFDckMsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDbEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFhO0lBQ3BDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWE7SUFDdkMsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUFhO0lBQ2xDLE9BQU8sR0FBRyxLQUFLLElBQUksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQWE7SUFDdEMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBYTtJQUN2QyxPQUFPLEdBQUcsS0FBSyxJQUFJO1FBQ2pCLE9BQU8sR0FBRyxLQUFLLFNBQVM7UUFDeEIsT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQ3ZCLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDdkIsT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDL0IsQ0FBQztBQUVELG1CQUFtQjtBQUVuQjs7R0FFRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBYTtJQUNyQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNsQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFhO0lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUFhO0lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBYTtJQUN6QyxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFhO0lBQ3BDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2xDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQztXQUNmLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztXQUNYLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQWE7SUFDakMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQWE7SUFDcEMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLENBQUMifQ==