@cainiaofe/cn-utils
Version:
菜鸟前端基础工具库
81 lines (80 loc) • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidTimestamp = exports.isImage = exports.isObject = exports.isError = exports.isPlainObject = exports.isNaN = exports.isNumber = exports.isObjectLike = void 0;
/**
* Gets the `toStringTag` of `value`.
*
* @private
* @param {*} value The value to query.
* @returns {string} Returns the `toStringTag`.
*/
var path_browserify_1 = require("path-browserify");
var const_1 = require("./const");
function getTag(value) {
if (value == null) {
return value === undefined ? '[object Undefined]' : '[object Null]';
}
return Object.prototype.toString.call(value);
}
var isObjectLike = function (value) {
return typeof value === 'object' && value !== null;
};
exports.isObjectLike = isObjectLike;
var isNumber = function (value) {
return typeof value === 'number' || ((0, exports.isObjectLike)(value) && getTag(value) == '[object Number]');
};
exports.isNumber = isNumber;
var isNaN = function (value) {
return (0, exports.isNumber)(value) && value != +value;
};
exports.isNaN = isNaN;
var isPlainObject = function (value) {
if (!(0, exports.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;
};
exports.isPlainObject = isPlainObject;
var isError = function (value) {
if (!(0, exports.isObjectLike)(value)) {
return false;
}
var tag = getTag(value);
return (tag == '[object Error]' ||
tag == '[object DOMException]' ||
(typeof value.message === 'string' && typeof value.name === 'string' && !(0, exports.isPlainObject)(value)));
};
exports.isError = isError;
var isObject = function (value) {
var type = typeof value;
return value != null && (type === 'object' || type === 'function');
};
exports.isObject = isObject;
var isImage = function (filePath) { return const_1.imageExtensions.has((0, path_browserify_1.extname)(filePath).slice(1).toLowerCase()); };
exports.isImage = isImage;
/**
*判断 timestamp 是否合法
* @param timestamp 时间戳
* @returns
*/
var isValidTimestamp = function (timestamp) {
// 检查是否是数字
if (typeof timestamp !== 'number' || (0, exports.isNaN)(timestamp)) {
return false;
}
// 检查是否大于0
if (timestamp <= 0) {
return false;
}
// 创建日期对象并验证其有效性
var date = new Date(timestamp);
return date instanceof Date && !(0, exports.isNaN)(date.getTime());
};
exports.isValidTimestamp = isValidTimestamp;