@whitesev/utils 2.9.11 → 2.9.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -240,7 +240,7 @@ var Utils = (function () {
240
240
  const setInterval = (...args) => loadOrReturnBroker().setInterval(...args);
241
241
  const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
242
242
 
243
- const version = "2.9.11";
243
+ const version = "2.9.12";
244
244
 
245
245
  /* eslint-disable */
246
246
  // ==UserScript==
@@ -1474,40 +1474,55 @@ var Utils = (function () {
1474
1474
  isNull(...args) {
1475
1475
  let result = true;
1476
1476
  const checkList = [...args];
1477
- for (const objItem of checkList) {
1478
- let itemResult = false;
1479
- if (objItem === null || objItem === undefined) {
1480
- itemResult = true;
1477
+ for (const obj of checkList) {
1478
+ let flag = false;
1479
+ if (obj === null || obj === undefined) {
1480
+ // null undefined
1481
+ flag = true;
1481
1482
  }
1482
1483
  else {
1483
- switch (typeof objItem) {
1484
+ switch (typeof obj) {
1484
1485
  case "object":
1485
- if (typeof objItem[Symbol.iterator] === "function") {
1486
- /* 可迭代 */
1487
- itemResult = objItem.length === 0;
1486
+ if (typeof obj[Symbol.iterator] === "function") {
1487
+ // 可迭代
1488
+ // Map Array NodeList HTMLCollection
1489
+ if (obj instanceof Map) {
1490
+ flag = obj.size === 0;
1491
+ }
1492
+ else {
1493
+ const length = obj.length;
1494
+ if (typeof length === "number") {
1495
+ flag = length === 0;
1496
+ }
1497
+ }
1488
1498
  }
1489
1499
  else {
1490
- itemResult = Object.keys(objItem).length === 0;
1500
+ if (obj?.toString() === "[object Object]") {
1501
+ // {}
1502
+ flag = Object.keys(obj).length === 0;
1503
+ }
1491
1504
  }
1492
1505
  break;
1493
1506
  case "number":
1494
- itemResult = objItem === 0;
1507
+ flag = isNaN(obj) ? true : obj === 0;
1495
1508
  break;
1496
- case "string":
1497
- itemResult = objItem.trim() === "" || objItem === "null" || objItem === "undefined";
1509
+ case "string": {
1510
+ const trimStr = obj.trim();
1511
+ flag = trimStr.trim() === "" || trimStr === "null" || trimStr === "undefined";
1498
1512
  break;
1513
+ }
1499
1514
  case "boolean":
1500
- itemResult = !objItem;
1515
+ flag = !obj;
1501
1516
  break;
1502
1517
  case "function": {
1503
- const funcStr = objItem.toString().replace(/\s/g, "");
1518
+ const funcStr = obj.toString().replace(/\s/g, "");
1504
1519
  /* 排除()=>{}、(xxx="")=>{}、function(){}、function(xxx=""){} */
1505
- itemResult = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1520
+ flag = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1506
1521
  break;
1507
1522
  }
1508
1523
  }
1509
1524
  }
1510
- result = result && itemResult;
1525
+ result = result && flag;
1511
1526
  }
1512
1527
  return result;
1513
1528
  }