|
/*
|
* @Description: file content
|
* @Author: your name
|
* @version:
|
* @Date: 2024-06-17 14:51:26
|
* @LastEditors: Ben Lin
|
* @LastEditTime: 2024-08-28 21:38:19
|
*/
|
export {
|
isArguments,
|
isArrayBuffer,
|
isArrayLike,
|
isArrayLikeObject,
|
isBuffer,
|
isBoolean,
|
isDate,
|
isElement,
|
isEmpty,
|
isEqual,
|
isEqualWith,
|
isError,
|
isFunction,
|
isFinite,
|
isLength,
|
isMap,
|
isMatch,
|
isMatchWith,
|
isNative,
|
isNil,
|
isNull,
|
isObjectLike,
|
isPlainObject,
|
isRegExp,
|
isSafeInteger,
|
isSet,
|
isString,
|
isSymbol,
|
isTypedArray,
|
isUndefined,
|
isWeakMap,
|
isWeakSet,
|
} from 'lodash-es';
|
const toString = Object.prototype.toString;
|
|
export function is(val: unknown, type: string) {
|
return toString.call(val) === `[object ${type}]`;
|
}
|
|
export function isDef<T = unknown>(val?: T): val is T {
|
return typeof val !== 'undefined';
|
}
|
|
// TODO 此处 isObject 存在歧义
|
export function isObject(val: any): val is Record<any, any> {
|
return val !== null && is(val, 'Object');
|
}
|
|
// TODO 此处 isArray 存在歧义
|
export function isArray(val: any): val is Array<any> {
|
return val && Array.isArray(val);
|
}
|
|
export function isWindow(val: any): val is Window {
|
return typeof window !== 'undefined' && is(val, 'Window');
|
}
|
|
export const isServer = typeof window === 'undefined';
|
|
export const isClient = !isServer;
|
|
export function isHttpUrl(path: string): boolean {
|
const reg = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/;
|
return reg.test(path);
|
}
|
|
export function isPascalCase(str: string): boolean {
|
const regex = /^[A-Z][A-Za-z]*$/;
|
return regex.test(str);
|
}
|
|
export function isNumber(str: string): boolean{
|
const regex = /^[0-9]*$/;
|
return regex.test(str);
|
}
|
|
|
export function isTimeViaRegExp8601(value: any): boolean {
|
return /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(value.toString());
|
}
|
|
export function isTimeType(value: string): boolean {
|
return !isNaN(Date.parse(value));
|
}
|
|
export function isValidJSON(text: string): boolean {
|
try {
|
JSON.parse(text);
|
return true;
|
} catch (error) {
|
return false;
|
}
|
}
|
|
export function isDef2<T = unknown>(val?: T): val is T {
|
return typeof val !== 'undefined';
|
}
|
|
export function isUnDef<T = unknown>(val?: T): val is T {
|
return !isDef(val);
|
}
|
|
export function isNull2(val: unknown): val is null {
|
return val === null;
|
}
|
|
export function isNullOrUnDef(val: unknown): val is null | undefined {
|
return isUnDef(val) || isNull2(val);
|
}
|
|
export function isNullOrEmpty(val: unknown): val is null | undefined {
|
return isNullOrUnDef(val) || isEmpty2(val);
|
}
|
|
export function isEmpty2(value: any): boolean {
|
if (value === null || value === undefined) {
|
return true;
|
}
|
if (typeof value === 'string' && value.trim() === '') {
|
return true;
|
}
|
if (Array.isArray(value) && value.length === 0) {
|
return true;
|
}
|
if (typeof value === 'object' && value !== null && Object.keys(value).length === 0) {
|
return true;
|
}
|
return false;
|
}
|