UNPKG

yhtml5-test

Version:

A test framework for front-end projects

60 lines (42 loc) 1.26 kB
/** * Copyright (c) 2014-present, Facebook, Inc. 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. * * */ 'use strict'; // get the type of a value with handling the edge cases like `typeof []` // and `typeof null` const getType = value => { if (typeof 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 === 'object') { if (value.constructor === RegExp) { return 'regexp'; } else if (value.constructor === Map) { return 'map'; } else if (value.constructor === Set) { return 'set'; } return 'object'; // $FlowFixMe https://github.com/facebook/flow/issues/1015 } else if (typeof value === 'symbol') { return 'symbol'; } throw new Error(`value of unknown type: ${value}`); }; module.exports = getType;