-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils.js
37 lines (25 loc) · 915 Bytes
/
utils.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
let ToString = arr => ({}).toString.call(arr)
let isObject = obj => obj != null && typeof obj === 'object' && !isArray (obj) && ToString(obj) === '[object Object]'
let isNumber = num => typeof num === 'number'
let isNegativeZero = num => num === 0 && (1 / num < 0)
let isString = str => typeof str === 'string'
let isBoolean = bool => typeof bool === 'boolean'
let isNoop = noop => noop === null || noop === undefined
let isNanVal = val => val !== val && isNaN(val)
let isArray = arr => ToString(arr) === '[object Array]'
let isArguments = arr => ToString(arr) === '[object Arguments]'
let isArrOrArg = arr => isArray(arr) || isArguments(arr)
let isPrimitiveType = val => isNumber(val) || isString(val) || isBoolean(val) || isNoop(val)
module.exports = {
isObject,
isNumber,
isNegativeZero,
isString,
isBoolean,
isNoop,
isNanVal,
isArray,
isArguments,
isArrOrArg,
isPrimitiveType
}