sussy-util
Version:
Util package made by me
40 lines (39 loc) • 1.35 kB
JavaScript
;
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';
}
};