'use strict';
|
|
Object.defineProperty(exports, '__esModule', {
|
value: true
|
});
|
exports.getType = getType;
|
exports.isPrimitive = void 0;
|
|
/**
|
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
*
|
* This source code is licensed under the MIT license found in the
|
* LICENSE file in the root directory of this source tree.
|
*/
|
// get the type of a value with handling the edge cases like `typeof []`
|
// and `typeof null`
|
function getType(value) {
|
if (value === undefined) {
|
return 'undefined';
|
} else if (value === null) {
|
return 'null';
|
} else if (Array.isArray(value)) {
|
return 'array';
|
} else if (typeof value === 'boolean') {
|
return 'boolean';
|
} else if (typeof value === 'function') {
|
return 'function';
|
} else if (typeof value === 'number') {
|
return 'number';
|
} else if (typeof value === 'string') {
|
return 'string';
|
} else if (typeof value === 'bigint') {
|
return 'bigint';
|
} else if (typeof value === 'object') {
|
if (value != null) {
|
if (value.constructor === RegExp) {
|
return 'regexp';
|
} else if (value.constructor === Map) {
|
return 'map';
|
} else if (value.constructor === Set) {
|
return 'set';
|
} else if (value.constructor === Date) {
|
return 'date';
|
}
|
}
|
|
return 'object';
|
} else if (typeof value === 'symbol') {
|
return 'symbol';
|
}
|
|
throw new Error(`value of unknown type: ${value}`);
|
}
|
|
const isPrimitive = value => Object(value) !== value;
|
|
exports.isPrimitive = isPrimitive;
|