lazy-js-utils
Version:
A collection of lazy-loaded JavaScript utilities for efficient development
520 lines (383 loc) • 13.5 kB
JavaScript
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;
;