123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- '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;
|