UNPKG

@cainiaofe/cn-utils

Version:

菜鸟前端基础工具库

70 lines (69 loc) 2.22 kB
/** * Gets the `toStringTag` of `value`. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ import { extname } from 'path-browserify'; import { imageExtensions } from './const'; function getTag(value) { if (value == null) { return value === undefined ? '[object Undefined]' : '[object Null]'; } return Object.prototype.toString.call(value); } export var isObjectLike = function (value) { return typeof value === 'object' && value !== null; }; export var isNumber = function (value) { return typeof value === 'number' || (isObjectLike(value) && getTag(value) == '[object Number]'); }; export var isNaN = function (value) { return isNumber(value) && value != +value; }; export var isPlainObject = function (value) { if (!isObjectLike(value) || getTag(value) != '[object Object]') { return false; } if (Object.getPrototypeOf(value) === null) { return true; } var proto = value; while (Object.getPrototypeOf(proto) !== null) { proto = Object.getPrototypeOf(proto); } return Object.getPrototypeOf(value) === proto; }; export var isError = function (value) { if (!isObjectLike(value)) { return false; } var tag = getTag(value); return (tag == '[object Error]' || tag == '[object DOMException]' || (typeof value.message === 'string' && typeof value.name === 'string' && !isPlainObject(value))); }; export var isObject = function (value) { var type = typeof value; return value != null && (type === 'object' || type === 'function'); }; export var isImage = function (filePath) { return imageExtensions.has(extname(filePath).slice(1).toLowerCase()); }; /** *判断 timestamp 是否合法 * @param timestamp 时间戳 * @returns */ export var isValidTimestamp = function (timestamp) { // 检查是否是数字 if (typeof timestamp !== 'number' || isNaN(timestamp)) { return false; } // 检查是否大于0 if (timestamp <= 0) { return false; } // 创建日期对象并验证其有效性 var date = new Date(timestamp); return date instanceof Date && !isNaN(date.getTime()); };