UNPKG

lazy-js-utils

Version:

A collection of lazy-loaded JavaScript utilities for efficient development

520 lines (383 loc) 13.5 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _chunk3KT5TQ4Gjs = require('./chunk-3KT5TQ4G.js'); // src/is/isUndef.ts function isUndef(o) { return typeof o === "undefined"; } // src/is/isDef.ts function isDef(v) { return typeof v !== "undefined"; } // src/is/isFn.ts function isFn(o) { return typeof o === "function"; } // src/utils/common.ts var _toString = Object.prototype.toString; var ESM_STATIC_IMPORT_RE = /(?<=\s|^|;)import\s*(["'\s]*(?<imports>[\w*${}\n\r\t, /]+)from\s*)?["']\s*(?<specifier>(?<=")[^"]*[^"\s](?=\s*")|(?<=')[^']*[^'\s](?=\s*'))\s*["'][\s;]*/gm; var DYNAMIC_IMPORT_RE = /import\s*\((?<expression>(?:[^)(]|\((?:[^)(]|\([^)(]*\))*\))*)\)/g; var EXPORT_DECAL_RE = /\bexport\s+(?<declaration>(async function|function|let|const|var|class))\s+(?<name>[\w$]+)/g; var EXPORT_NAMED_RE = /\bexport\s+\{(?<exports>[^}]+)\}(\s*from\s*["']\s*(?<specifier>(?<=")[^"]*[^"\s](?=\s*")|(?<=')[^']*[^'\s](?=\s*'))\s*["'][^\n]*)?/g; var EXPORT_STAR_RE = /\bexport\s*(\*)(\s*as\s+(?<name>[\w$]+)\s+)?\s*(\s*from\s*["']\s*(?<specifier>(?<=")[^"]*[^"\s](?=\s*")|(?<=')[^']*[^'\s](?=\s*'))\s*["'][^\n]*)?/g; var EXPORT_DEFAULT_RE = /\bexport\s+default\s+/g; // src/is/isPlainObject.ts function isPlainObject(o) { return _toString.call(o) === "[object Object]"; } // src/is/isSet.ts function isSet(o) { return _toString.call(o) === "[object Set]"; } // src/is/isMap.ts function isMap(o) { return _toString.call(o) === "[object Map]"; } // src/is/isReg.ts function isReg(o) { return typeof o === "object" && o.constructor === RegExp; } // src/is/isNaN.ts function isNaN(o) { return Number.isNaN(o); } // src/is/isSymbol.ts function isSymbol(o) { return typeof o === "symbol"; } // src/is/isNum.ts function isNum(o) { return typeof o === "number"; } // src/is/isPromise.ts function isPromise(o) { return _toString.call(o) === "[object Promise]"; } // src/is/isDate.ts function isDate(d) { return d instanceof Date; } // src/is/isWeakMap.ts function isWeakMap(o) { return _toString.call(o) === "[object WeakMap]"; } // src/is/isWeakSet.ts function isWeakSet(o) { return _toString.call(o) === "[object WeakSet]"; } // src/is/isType.ts function isType(s, type) { type = type.toLocaleLowerCase(); if (!type) throw new Error("type is required"); const types = { str: _chunk3KT5TQ4Gjs.isStr, s: _chunk3KT5TQ4Gjs.isStr, string: _chunk3KT5TQ4Gjs.isStr, fn: isFn, f: isFn, function: isFn, object: isPlainObject, o: isPlainObject, array: _chunk3KT5TQ4Gjs.isArray, a: _chunk3KT5TQ4Gjs.isArray, set: isSet, map: isMap, m: isMap, reg: isReg, r: isReg, b: _chunk3KT5TQ4Gjs.isBool, boolean: _chunk3KT5TQ4Gjs.isBool, n: isNum, number: isNum, u: isUndef, undefined: isUndef, null: _chunk3KT5TQ4Gjs.isNull, symbol: isSymbol, nan: isNaN, wm: isWeakMap, ws: isWeakSet, promise: isPromise, weakmap: isWeakMap, weakset: isWeakSet, date: isDate }; return type.split("|").some((item) => { var _a; return (_a = types[item.trim()]) == null ? void 0 : _a.call(types, s); }); } // src/is/isVideo.ts var videoExtension = [ "3g2", "3gp", "aaf", "asf", "avchd", "avi", "drc", "flv", "m2v", "m3u8", "m4p", "m4v", "mkv", "mng", "mov", "mp2", "mp4", "mpe", "mpeg", "mpg", "mpv", "mxf", "nsv", "ogg", "ogv", "qt", "rm", "rmvb", "roq", "svi", "vob", "webm", "wmv", "yuv" ]; function isVideo(filepath) { const last = filepath.lastIndexOf(".") + 1; return videoExtension.includes( filepath.slice(last, filepath.length).toLowerCase() ); } // src/is/isAbsolute.ts function isAbsolute(url) { return /^\/|^\\|^[a-z]:[/\\]/i.test(url); } // src/is/isBlob.ts function isBlob(o) { return _toString.call(o) === "[object Blob]"; } // src/is/isBottom.ts function isBottom(distance = 0) { try { return document.documentElement.clientHeight + window.scrollY + distance >= (document.documentElement.scrollHeight || document.documentElement.clientHeight); } catch (error) { throw new Error(error); } } // src/is/isBrowser.ts var isBrowser = isDef(globalThis == null ? void 0 : globalThis.window); // src/is/isContainCn.ts function isContainCn(s) { return /[\u4E00-\u9FA5]/.test(s); } // src/is/isElement.ts function isElement(element) { return typeof element === "object" && element instanceof HTMLElement; } // src/is/isEqual.ts function isEqual(o1, o2) { if (o1 === o2) return true; if (isPlainObject(o1) && isPlainObject(o2)) { const keys1 = Object.keys(o1); const keys2 = Object.keys(o2); if (keys1.length !== keys2.length) return false; for (const key of keys1) { const res = isEqual(o1[key], o2[key]); if (!res) return false; } return true; } else if (_chunk3KT5TQ4Gjs.isArray.call(void 0, o1) && _chunk3KT5TQ4Gjs.isArray.call(void 0, o2)) { if (o1.length !== o2.length) return false; for (let i = 0; i < o1.length; i++) { const res = isEqual(o1[i], o2[i]); if (!res) return false; } return true; } return false; } // src/is/isEsModule.ts function isESModule(obj) { return obj.__esModule || obj[Symbol.toStringTag] === "Module"; } // src/is/isFalse.ts function isFalse(v) { return v === false; } // src/is/isFileType.ts function isFileType(file, appendix) { const reg = new RegExp(`\\.${appendix}(\\?[^.]+)?$`); return reg.test(file); } // src/is/isIPv4.ts function isIPv4(ip) { return /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/.test( ip ); } // src/is/isIPv6.ts function isIPv6(ip) { return /^([\da-f]{1,4}:){6}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^::([\da-f]{1,4}:){0,4}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^([\da-f]{1,4}:):([\da-f]{1,4}:){0,3}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^([\da-f]{1,4}:){2}:([\da-f]{1,4}:){0,2}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^([\da-f]{1,4}:){3}:([\da-f]{1,4}:)?((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^([\da-f]{1,4}:){4}:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^([\da-f]{1,4}:){7}[\da-f]{1,4}$|^:((:[\da-f]{1,4}){1,6}|:)$|^[\da-f]{1,4}:((:[\da-f]{1,4}){1,5}|:)$|^([\da-f]{1,4}:){2}((:[\da-f]{1,4}){1,4}|:)$|^([\da-f]{1,4}:){3}((:[\da-f]{1,4}){1,3}|:)$|^([\da-f]{1,4}:){4}((:[\da-f]{1,4}){1,2}|:)$|^([\da-f]{1,4}:){5}:([\da-f]{1,4})?$|^([\da-f]{1,4}:){6}:$/i.test( ip ); } // src/is/isIdCard.ts function isIdCard(s) { return /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|12]\d)|3[01])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|12]\d)|3[01])\d{3}([0-9X])$/.test( s ); } // src/is/isLeapYear.ts function isLeapYear(year) { return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0; } // src/is/isMobile.ts function isMobile(s) { return /^((13\d)|(14[5-9])|(15([0-35-9]))|(16[67])|(17[1-8])|(18\d)|(19[1|3])|(19[5|6])|(19[8|9]))\d{8}$/.test( s ); } // src/is/isNil.ts function isNil(value) { return value === null || value === void 0; } // src/is/isObject.ts function isObject(value) { return typeof value === "object"; } // src/is/isPostCode.ts function isPostCode(s) { return /^[1-9]\d{5}$/.test(s.toString()); } // src/is/isRelative.ts function isRelative(str) { return /^(\.\.\/|\.\/)/.test(str); } // src/is/isSameDay.ts function isSameDay(dateLeft, dateRight) { return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth() && dateLeft.getDate() === dateRight.getDate(); } // src/is/isSupportCamera.ts function isSupportCamera() { return !!(navigator && (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia)); } // src/is/isSupportWebp.ts function isSupportWebp() { try { return document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp") === 0; } catch (error) { return false; } } // src/is/isTrue.ts function isTrue(v) { return v === true; } // src/is/isUrl.ts function isUrl(url) { return /^https?:\/\/.*/.test(url); } // src/is/isWin.ts var _process = require('process'); var _process2 = _interopRequireDefault(_process); function isWin() { return _process2.default.platform === "win32"; } // src/is/isSocketUrl.ts function isSocketUrl(url) { return url.startsWith("ws://") || url.startsWith("wss://"); } // src/is/isBase64.ts function isBase64(base64) { return /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([\w!$&',()*+;=\-.~:@/?%\s]*?)\s*/i.test( base64 ); } // src/is/isTrainNumber.ts var isTrainNumber = (s) => /^[GCDZTSPKXLY1-9]\d{1,4}$/.test(s); // src/is/isNameCn.ts var isNameCn = (s) => /^[\u4E00-\u9FA5·]{2,16}$/.test(s); // src/is/isNameEn.ts function isNameEn(s) { return /(^[a-z][a-z\s]{0,20}[a-z]$)/i.test(s); } // src/is/isSoldierId.ts function isSoldierId(s) { return /^[\u4E00-\u9FA5](字第)([0-9a-z]{4,8})(号?)$/i.test(s); } // src/is/isVersion.ts var NUM = /^\d+$/; function isVersion(version) { return version.split(".").every((v) => NUM.test(v)); } // src/is/isDivElement.ts function isDivElement(target) { var _a; return ((_a = target == null ? void 0 : target.tagName) == null ? void 0 : _a.toUpperCase()) === "DIV"; } // src/is/isIFrameElement.ts function isIFrameElement(target) { var _a; return ((_a = target == null ? void 0 : target.tagName) == null ? void 0 : _a.toUpperCase()) === "IFRAME"; } // src/is/isImageElement.ts function isImageElement(target) { var _a; return ((_a = target == null ? void 0 : target.tagName) == null ? void 0 : _a.toUpperCase()) === "IMG"; } // src/is/isNode.ts function isNode(target) { return target instanceof Node || isNum(target == null ? void 0 : target.nodeType); } // src/is/isProxyDocument.ts function isProxyDocument(target) { return toString.call(target) === "[object ProxyDocument]"; } // src/is/isScriptElement.ts function isScriptElement(target) { var _a; return ((_a = target == null ? void 0 : target.tagName) == null ? void 0 : _a.toUpperCase()) === "SCRIPT"; } // src/is/isShadowRoot.ts function isShadowRoot(target) { return typeof ShadowRoot !== "undefined" && target instanceof ShadowRoot; } // src/is/isStyleElement.ts function isStyleElement(target) { var _a; return ((_a = target == null ? void 0 : target.tagName) == null ? void 0 : _a.toUpperCase()) === "STYLE"; } // src/is/isVue.ts function isVue(src) { return src.endsWith(".vue"); } // src/is/isComment.ts function isComment(s) { return /<! -{2}.*?-{2}>/.test(s); } // src/is/isActive.ts function isActive() { return !document.hidden; } // src/is/isFile.ts var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); function isFile(o) { if (_chunk3KT5TQ4Gjs.isStr.call(void 0, o)) { try { return _fs2.default.statSync(o).isFile(); } catch (error) { return false; } } return _toString.call(o) === "[object File]"; } // src/js/parallel.ts function parallel(tasks, fn) { return Promise.all(tasks.map(fn)); } exports.isUndef = isUndef; exports.isDef = isDef; exports.isFn = isFn; exports._toString = _toString; exports.ESM_STATIC_IMPORT_RE = ESM_STATIC_IMPORT_RE; exports.DYNAMIC_IMPORT_RE = DYNAMIC_IMPORT_RE; exports.EXPORT_DECAL_RE = EXPORT_DECAL_RE; exports.EXPORT_NAMED_RE = EXPORT_NAMED_RE; exports.EXPORT_STAR_RE = EXPORT_STAR_RE; exports.EXPORT_DEFAULT_RE = EXPORT_DEFAULT_RE; exports.isPlainObject = isPlainObject; exports.isSet = isSet; exports.isMap = isMap; exports.isReg = isReg; exports.isNaN = isNaN; exports.isSymbol = isSymbol; exports.isNum = isNum; exports.isPromise = isPromise; exports.isDate = isDate; exports.isWeakMap = isWeakMap; exports.isWeakSet = isWeakSet; exports.isType = isType; exports.isVideo = isVideo; exports.isAbsolute = isAbsolute; exports.isBlob = isBlob; exports.isBottom = isBottom; exports.isBrowser = isBrowser; exports.isContainCn = isContainCn; exports.isElement = isElement; exports.isEqual = isEqual; exports.isESModule = isESModule; exports.isFalse = isFalse; exports.isFileType = isFileType; exports.isIPv4 = isIPv4; exports.isIPv6 = isIPv6; exports.isIdCard = isIdCard; exports.isLeapYear = isLeapYear; exports.isMobile = isMobile; exports.isNil = isNil; exports.isObject = isObject; exports.isPostCode = isPostCode; exports.isRelative = isRelative; exports.isSameDay = isSameDay; exports.isSupportCamera = isSupportCamera; exports.isSupportWebp = isSupportWebp; exports.isTrue = isTrue; exports.isUrl = isUrl; exports.isWin = isWin; exports.isSocketUrl = isSocketUrl; exports.isBase64 = isBase64; exports.isTrainNumber = isTrainNumber; exports.isNameCn = isNameCn; exports.isNameEn = isNameEn; exports.isSoldierId = isSoldierId; exports.isVersion = isVersion; exports.isDivElement = isDivElement; exports.isIFrameElement = isIFrameElement; exports.isImageElement = isImageElement; exports.isNode = isNode; exports.isProxyDocument = isProxyDocument; exports.isScriptElement = isScriptElement; exports.isShadowRoot = isShadowRoot; exports.isStyleElement = isStyleElement; exports.isVue = isVue; exports.isComment = isComment; exports.isActive = isActive; exports.isFile = isFile; exports.parallel = parallel;