is-what
Advanced tools
Comparing version 3.4.0 to 3.5.0
@@ -41,3 +41,3 @@ 'use strict'; | ||
return false; | ||
return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype); | ||
return payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype; | ||
} | ||
@@ -128,3 +128,3 @@ /** | ||
function isNumber(payload) { | ||
return (getType(payload) === 'Number' && !isNaN(payload)); | ||
return getType(payload) === 'Number' && !isNaN(payload); | ||
} | ||
@@ -156,3 +156,3 @@ /** | ||
function isSymbol(payload) { | ||
return (getType(payload) === 'Symbol'); | ||
return getType(payload) === 'Symbol'; | ||
} | ||
@@ -166,3 +166,3 @@ /** | ||
function isDate(payload) { | ||
return (getType(payload) === 'Date' && !isNaN(payload)); | ||
return getType(payload) === 'Date' && !isNaN(payload); | ||
} | ||
@@ -202,2 +202,11 @@ /** | ||
/** | ||
* Returns true whether the payload is null or undefined | ||
* | ||
* @param {*} payload | ||
* @returns {(payload is null | undefined)} | ||
*/ | ||
function isNullOrUndefined(payload) { | ||
return isNull(payload) || isUndefined(payload); | ||
} | ||
/** | ||
* Does a generic check to check that the given payload is of a given type. | ||
@@ -222,3 +231,3 @@ * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!); | ||
var name = type.name; | ||
return (getType(payload) === name) || Boolean(payload && (payload.constructor === type)); | ||
return getType(payload) === name || Boolean(payload && payload.constructor === type); | ||
} | ||
@@ -237,2 +246,3 @@ | ||
exports.isNull = isNull; | ||
exports.isNullOrUndefined = isNullOrUndefined; | ||
exports.isNumber = isNumber; | ||
@@ -239,0 +249,0 @@ exports.isObject = isObject; |
@@ -37,3 +37,3 @@ /** | ||
return false; | ||
return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype); | ||
return payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype; | ||
} | ||
@@ -124,3 +124,3 @@ /** | ||
function isNumber(payload) { | ||
return (getType(payload) === 'Number' && !isNaN(payload)); | ||
return getType(payload) === 'Number' && !isNaN(payload); | ||
} | ||
@@ -152,3 +152,3 @@ /** | ||
function isSymbol(payload) { | ||
return (getType(payload) === 'Symbol'); | ||
return getType(payload) === 'Symbol'; | ||
} | ||
@@ -162,3 +162,3 @@ /** | ||
function isDate(payload) { | ||
return (getType(payload) === 'Date' && !isNaN(payload)); | ||
return getType(payload) === 'Date' && !isNaN(payload); | ||
} | ||
@@ -198,2 +198,11 @@ /** | ||
/** | ||
* Returns true whether the payload is null or undefined | ||
* | ||
* @param {*} payload | ||
* @returns {(payload is null | undefined)} | ||
*/ | ||
function isNullOrUndefined(payload) { | ||
return isNull(payload) || isUndefined(payload); | ||
} | ||
/** | ||
* Does a generic check to check that the given payload is of a given type. | ||
@@ -218,5 +227,5 @@ * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!); | ||
var name = type.name; | ||
return (getType(payload) === name) || Boolean(payload && (payload.constructor === type)); | ||
return getType(payload) === name || Boolean(payload && payload.constructor === type); | ||
} | ||
export { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyString, isFile, isFullString, isFunction, isNull, isNumber, isObject, isObjectLike, isPlainObject, isPrimitive, isRegExp, isString, isSymbol, isType, isUndefined }; | ||
export { getType, isAnyObject, isArray, isBlob, isBoolean, isDate, isEmptyString, isFile, isFullString, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isObjectLike, isPlainObject, isPrimitive, isRegExp, isString, isSymbol, isType, isUndefined }; |
{ | ||
"name": "is-what", | ||
"version": "3.4.0", | ||
"version": "3.5.0", | ||
"description": "JS type check (TypeScript supported) functions like `isPlainObject() isArray()` etc. A simple & small integration.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.cjs.js", |
@@ -37,5 +37,5 @@ /** | ||
*/ | ||
export function isPlainObject (payload: any): payload is {[key: string]: any} { | ||
export function isPlainObject (payload: any): payload is { [key: string]: any } { | ||
if (getType(payload) !== 'Object') return false | ||
return (payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype) | ||
return payload.constructor === Object && Object.getPrototypeOf(payload) === Object.prototype | ||
} | ||
@@ -49,3 +49,3 @@ | ||
*/ | ||
export function isObject (payload: any): payload is {[key: string]: any} { | ||
export function isObject (payload: any): payload is { [key: string]: any } { | ||
return isPlainObject(payload) | ||
@@ -60,3 +60,3 @@ } | ||
*/ | ||
export function isAnyObject (payload: any): payload is {[key: string]: any} { | ||
export function isAnyObject (payload: any): payload is { [key: string]: any } { | ||
return getType(payload) === 'Object' | ||
@@ -137,3 +137,3 @@ } | ||
export function isNumber (payload: any): payload is number { | ||
return (getType(payload) === 'Number' && !isNaN(payload)) | ||
return getType(payload) === 'Number' && !isNaN(payload) | ||
} | ||
@@ -168,3 +168,3 @@ | ||
export function isSymbol (payload: any): payload is symbol { | ||
return (getType(payload) === 'Symbol') | ||
return getType(payload) === 'Symbol' | ||
} | ||
@@ -179,3 +179,3 @@ | ||
export function isDate (payload: any): payload is Date { | ||
return (getType(payload) === 'Date' && !isNaN(payload)) | ||
return getType(payload) === 'Date' && !isNaN(payload) | ||
} | ||
@@ -209,3 +209,5 @@ | ||
*/ | ||
export function isPrimitive (payload: any): payload is boolean | null | undefined | number | string | symbol { | ||
export function isPrimitive ( | ||
payload: any | ||
): payload is boolean | null | undefined | number | string | symbol { | ||
return ( | ||
@@ -222,2 +224,12 @@ isBoolean(payload) || | ||
/** | ||
* Returns true whether the payload is null or undefined | ||
* | ||
* @param {*} payload | ||
* @returns {(payload is null | undefined)} | ||
*/ | ||
export function isNullOrUndefined (payload: any): payload is null | undefined { | ||
return isNull(payload) || isUndefined(payload) | ||
} | ||
/** | ||
* Does a generic check to check that the given payload is of a given type. | ||
@@ -242,3 +254,3 @@ * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!); | ||
const name: string | undefined | null = (<any>type).name | ||
return (getType(payload) === name) || Boolean(payload && (payload.constructor === type)) | ||
return getType(payload) === name || Boolean(payload && payload.constructor === type) | ||
} |
@@ -7,2 +7,3 @@ import { | ||
isNull, | ||
isNullOrUndefined, | ||
isFunction, | ||
@@ -27,2 +28,4 @@ isArray, | ||
expect(isNull(null)).toBe(true) | ||
expect(isNullOrUndefined(null)).toBe(true) | ||
expect(isNullOrUndefined(undefined)).toBe(true) | ||
expect(isObject({})).toBe(true) | ||
@@ -64,2 +67,3 @@ expect(isObject(new Object())).toBe(true) | ||
expect(isSymbol(NaN)).toBe(false) | ||
expect(isNullOrUndefined(NaN)).toBe(false) | ||
}) | ||
@@ -137,3 +141,7 @@ | ||
const mySpecialObject = {} | ||
Object.setPrototypeOf(mySpecialObject, {toDate: function () { return new Date() }}) | ||
Object.setPrototypeOf(mySpecialObject, { | ||
toDate: function () { | ||
return new Date() | ||
}, | ||
}) | ||
// IS OBJECT | ||
@@ -140,0 +148,0 @@ // plain object |
@@ -153,2 +153,9 @@ /** | ||
/** | ||
* Returns true whether the payload is null or undefined | ||
* | ||
* @param {*} payload | ||
* @returns {(payload is null | undefined)} | ||
*/ | ||
export declare function isNullOrUndefined(payload: any): payload is null | undefined; | ||
/** | ||
* Does a generic check to check that the given payload is of a given type. | ||
@@ -155,0 +162,0 @@ * In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!); |
41945
14
1122