From f55c0bd445b43dafccbcae7a1f32dbc78bd2e60f Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 19 六月 2024 10:48:04 +0800 Subject: [PATCH] 登录更新 --- src/utils/is.ts | 159 ++++++++++++++++++++++++----------------------------- 1 files changed, 72 insertions(+), 87 deletions(-) diff --git a/src/utils/is.ts b/src/utils/is.ts index 9f47d93..7080731 100644 --- a/src/utils/is.ts +++ b/src/utils/is.ts @@ -1,3 +1,48 @@ +import { isEmpty } from 'lodash-es'; + +/* + * @Description: file content + * @Author: your name + * @version: + * @Date: 2024-06-17 14:51:26 + * @LastEditors: your name + * @LastEditTime: 2024-06-17 15:43:58 + */ +export { + isArguments, + isArrayBuffer, + isArrayLike, + isArrayLikeObject, + isBuffer, + isBoolean, + isDate, + isElement, + isEmpty, + isEqual, + isEqualWith, + isError, + isFunction, + isFinite, + isLength, + isMap, + isMatch, + isMatchWith, + isNative, + isNil, + isNumber, + 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) { @@ -8,74 +53,12 @@ return typeof val !== 'undefined'; } -export function isUnDef<T = unknown>(val?: T): val is T { - return !isDef(val); -} - +// TODO 姝ゅ isObject 瀛樺湪姝т箟 export function isObject(val: any): val is Record<any, any> { return val !== null && is(val, 'Object'); } -export function isEmpty<T = unknown>(val: T): val is T { - if (isArray(val) || isString(val)) { - return val.length === 0; - } - - if (val instanceof Map || val instanceof Set) { - return val.size === 0; - } - - if (isObject(val)) { - return Object.keys(val).length === 0; - } - - return false; -} - -export function isDate(val: unknown): val is Date { - return is(val, 'Date'); -} - -export function isNull(val: unknown): val is null { - return val === null; -} - -export function isNullAndUnDef(val: unknown): val is null | undefined { - return isUnDef(val) && isNull(val); -} - -export function isNullOrUnDef(val: unknown): val is null | undefined { - return isUnDef(val) || isNull(val); -} - -export function isNullOrEmpty(val: unknown): val is null | undefined { - return isNullOrUnDef(val) || isEmpty(val); -} - -export function isNumber(val: unknown): val is number { - return is(val, 'Number'); -} - -export function isPromise<T = any>(val: unknown): val is Promise<T> { - return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch); -} - -export function isString(val: unknown): val is string { - return is(val, 'String'); -} - -export function isFunction(val: unknown): val is Function { - return typeof val === 'function'; -} - -export function isBoolean(val: unknown): val is boolean { - return is(val, 'Boolean'); -} - -export function isRegExp(val: unknown): val is RegExp { - return is(val, 'RegExp'); -} - +// TODO 姝ゅ isArray 瀛樺湪姝т箟 export function isArray(val: any): val is Array<any> { return val && Array.isArray(val); } @@ -84,33 +67,23 @@ return typeof window !== 'undefined' && is(val, 'Window'); } -export function isElement(val: unknown): val is Element { - return isObject(val) && !!val.tagName; -} - -export function isMap(val: unknown): val is Map<any, any> { - return is(val, 'Map'); -} - export const isServer = typeof window === 'undefined'; export const isClient = !isServer; -export function isUrl(path: string): boolean { +export function isHttpUrl(path: string): boolean { const reg = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/; return reg.test(path); } -export function isTime(value: any): value is Date { - return value instanceof Date && !isNaN(value.getTime()); +export function isPascalCase(str: string): boolean { + const regex = /^[A-Z][A-Za-z]*$/; + return regex.test(str); } -export function isTimeViaConstructor(value: any): boolean { - return value instanceof Date || value.constructor === Date; -} -export function isTimeViaRegExp(value: any): boolean { - return /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/.test(value.toString()); +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 { @@ -126,12 +99,24 @@ } } -// // 绀轰緥 -// const time1 = new Date(); -// console.log(isTime(time1)); // true +export function isDef2<T = unknown>(val?: T): val is T { + return typeof val !== 'undefined'; +} -// const time2 = '2023-04-01T12:00:00Z'; -// console.log(isTimeViaRegExp(time2)); // true +export function isUnDef<T = unknown>(val?: T): val is T { + return !isDef(val); +} -// const notTime = 'hello world'; -// console.log(isTime(notTime)); // false +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) || isEmpty(val); +} + + -- Gitblit v1.9.3