UNPKG

sussy-util

Version:
40 lines (39 loc) 1.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const IsSomething_1 = __importDefault(require("../Classes/IsSomething")); /** * Determine the data type of given variable. * @param {any} arg - The value to be tested. * @returns {string} A string representing the data type of the given variable. */ exports.default = (arg) => { // Check for primitive data types if (['boolean', 'number', 'string', 'symbol', 'bigint', 'undefined'].includes(typeof arg)) { return typeof arg; } // Check for null if (arg === null) { return 'null'; } // Check for specific types using IsSomething module if (IsSomething_1.default.isDate(arg)) { return 'Date'; } if (IsSomething_1.default.isError(arg)) { return 'Error'; } if (IsSomething_1.default.isRegExp(arg)) { return 'RegExp'; } // Check for functions and classes if (typeof arg === 'function') { return IsSomething_1.default.isClass(arg) ? arg.constructor.name : 'function'; } // Check for arrays and objects if (typeof arg === 'object') { return IsSomething_1.default.isArray(arg) ? 'array' : 'object'; } };