index.js 718 B

12345678910111213141516171819202122232425262728293031
  1. 'use strict';
  2. var isString = require('is-string');
  3. var isNumber = require('is-number-object');
  4. var isBoolean = require('is-boolean-object');
  5. var isSymbol = require('is-symbol');
  6. var isBigInt = require('is-bigint');
  7. /** @type {import('.')} */
  8. // eslint-disable-next-line consistent-return
  9. module.exports = function whichBoxedPrimitive(value) {
  10. // eslint-disable-next-line eqeqeq
  11. if (value == null || (typeof value !== 'object' && typeof value !== 'function')) {
  12. return null;
  13. }
  14. if (isString(value)) {
  15. return 'String';
  16. }
  17. if (isNumber(value)) {
  18. return 'Number';
  19. }
  20. if (isBoolean(value)) {
  21. return 'Boolean';
  22. }
  23. if (isSymbol(value)) {
  24. return 'Symbol';
  25. }
  26. if (isBigInt(value)) {
  27. return 'BigInt';
  28. }
  29. };