UNPKG

6.49 kBJavaScriptView Raw
1"use strict";
2// Javascript Primitive
3// https://developer.mozilla.org/en-US/docs/Glossary/Primitive
4Object.defineProperty(exports, "__esModule", { value: true });
5exports.isFinite = exports.isNaN = exports.isDouble = exports.isSafeInteger = exports.isLong = exports.isInteger32 = exports.isInteger = exports.isPrimitive = exports.isNullable = exports.isNull = exports.isUndefined = exports.isSymbol = exports.isBigInt = exports.isBoolean = exports.isNumber = exports.isString = void 0;
6const MAX_INT_31 = Math.pow(2, 31);
7/**
8 * returns true if val is string, not `String` object
9 */
10function isString(val) {
11 return typeof val === 'string';
12}
13exports.isString = isString;
14/**
15 * returns true if val is number, not `Number` object
16 */
17function isNumber(val) {
18 return typeof val === 'number';
19}
20exports.isNumber = isNumber;
21/**
22 * returns true if val is boolean, not `Boolean` object
23 */
24function isBoolean(val) {
25 return typeof val === 'boolean';
26}
27exports.isBoolean = isBoolean;
28/**
29 * returns true if val is bigint
30 */
31function isBigInt(val) {
32 return typeof val === 'bigint';
33}
34exports.isBigInt = isBigInt;
35/**
36 * returns true if val is symbol
37 */
38function isSymbol(val) {
39 return typeof val === 'symbol';
40}
41exports.isSymbol = isSymbol;
42/**
43 * returns true if val is undefined
44 */
45function isUndefined(val) {
46 return typeof val === 'undefined';
47}
48exports.isUndefined = isUndefined;
49/**
50 * returns true if val is null
51 */
52function isNull(val) {
53 return val === null;
54}
55exports.isNull = isNull;
56/**
57 * returns true if val is null or undefined
58 */
59function isNullable(val) {
60 return val == null;
61}
62exports.isNullable = isNullable;
63/**
64 * returns true if val is primitive
65 */
66function isPrimitive(val) {
67 return val === null ||
68 typeof val === 'boolean' ||
69 typeof val === 'number' ||
70 typeof val === 'string' ||
71 typeof val === 'symbol' ||
72 typeof val === 'bigint' ||
73 typeof val === 'undefined';
74}
75exports.isPrimitive = isPrimitive;
76// Number Extension
77/**
78 * returns true if val is integer
79 */
80function isInteger(val) {
81 if (isNullable(val))
82 return false;
83 return Number.isInteger(val);
84}
85exports.isInteger = isInteger;
86/**
87 * returns true if val is integer, and between -2 ** 31 and 2 ** 31 - 1
88 */
89function isInteger32(val) {
90 if (!isInteger(val))
91 return false;
92 return val >= -MAX_INT_31 && val <= MAX_INT_31 - 1;
93}
94exports.isInteger32 = isInteger32;
95/**
96 * returns true if val is integer, and < -2 ** 31, and > 2 ** 31 - 1
97 */
98function isLong(val) {
99 if (!isInteger(val))
100 return false;
101 return val < -MAX_INT_31 || val > MAX_INT_31 - 1;
102}
103exports.isLong = isLong;
104/**
105 * returns true if val is integer, and between -(2 ** 53 - 1) and 2 ** 53 - 1
106 * @see {Number.isSafeInteger}
107 */
108function isSafeInteger(val) {
109 return Number.isSafeInteger(val);
110}
111exports.isSafeInteger = isSafeInteger;
112/**
113 * returns true if val is Double
114 */
115function isDouble(val) {
116 if (isNullable(val))
117 return false;
118 return isNumber(val)
119 && !isNaN(val)
120 && val % 1 !== 0;
121}
122exports.isDouble = isDouble;
123/**
124 * returns true if val is NaN
125 * @see {Number.isNaN}
126 */
127function isNaN(val) {
128 return Number.isNaN(val);
129}
130exports.isNaN = isNaN;
131/**
132 * returns true if val is finite
133 * @see {Number.isFinite}
134 */
135function isFinite(val) {
136 return Number.isFinite(val);
137}
138exports.isFinite = isFinite;
139//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3ByaW1pdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUJBQXVCO0FBQ3ZCLDhEQUE4RDs7O0FBSzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRW5DOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQWE7SUFDcEMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDakMsQ0FBQztBQUZELDRCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDO0FBRkQsNEJBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxHQUFhO0lBQ3JDLE9BQU8sT0FBTyxHQUFHLEtBQUssU0FBUyxDQUFDO0FBQ2xDLENBQUM7QUFGRCw4QkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQWE7SUFDcEMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDakMsQ0FBQztBQUZELDRCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDO0FBRkQsNEJBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxHQUFhO0lBQ3ZDLE9BQU8sT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDO0FBQ3BDLENBQUM7QUFGRCxrQ0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLEdBQWE7SUFDbEMsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDO0FBQ3RCLENBQUM7QUFGRCx3QkFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEdBQWE7SUFDdEMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDO0FBQ3JCLENBQUM7QUFGRCxnQ0FFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEdBQWE7SUFDdkMsT0FBTyxHQUFHLEtBQUssSUFBSTtRQUNqQixPQUFPLEdBQUcsS0FBSyxTQUFTO1FBQ3hCLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDdkIsT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQ3ZCLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFDdkIsT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDO0FBQy9CLENBQUM7QUFSRCxrQ0FRQztBQUVELG1CQUFtQjtBQUVuQjs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxHQUFhO0lBQ3JDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2xDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBSEQsOEJBR0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxHQUFhO0lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDbEMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUhELGtDQUdDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixNQUFNLENBQUMsR0FBYTtJQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2xDLE9BQU8sR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLEdBQUcsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFIRCx3QkFHQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxHQUFhO0lBQ3pDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRkQsc0NBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFhO0lBQ3BDLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2xDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQztXQUNmLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztXQUNYLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JCLENBQUM7QUFMRCw0QkFLQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLEtBQUssQ0FBQyxHQUFhO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsc0JBRUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixRQUFRLENBQUMsR0FBYTtJQUNwQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUZELDRCQUVDIn0=
\No newline at end of file