@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.
@@ -242,7 +242,7 @@ System.register('Utils', [], (function (exports) {
242
242
  const setInterval = (...args) => loadOrReturnBroker().setInterval(...args);
243
243
  const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
244
244
 
245
- const version = "2.9.11";
245
+ const version = "2.9.12";
246
246
 
247
247
  /* eslint-disable */
248
248
  // ==UserScript==
@@ -1476,40 +1476,55 @@ System.register('Utils', [], (function (exports) {
1476
1476
  isNull(...args) {
1477
1477
  let result = true;
1478
1478
  const checkList = [...args];
1479
- for (const objItem of checkList) {
1480
- let itemResult = false;
1481
- if (objItem === null || objItem === undefined) {
1482
- itemResult = true;
1479
+ for (const obj of checkList) {
1480
+ let flag = false;
1481
+ if (obj === null || obj === undefined) {
1482
+ // null undefined
1483
+ flag = true;
1483
1484
  }
1484
1485
  else {
1485
- switch (typeof objItem) {
1486
+ switch (typeof obj) {
1486
1487
  case "object":
1487
- if (typeof objItem[Symbol.iterator] === "function") {
1488
- /* 可迭代 */
1489
- itemResult = objItem.length === 0;
1488
+ if (typeof obj[Symbol.iterator] === "function") {
1489
+ // 可迭代
1490
+ // Map Array NodeList HTMLCollection
1491
+ if (obj instanceof Map) {
1492
+ flag = obj.size === 0;
1493
+ }
1494
+ else {
1495
+ const length = obj.length;
1496
+ if (typeof length === "number") {
1497
+ flag = length === 0;
1498
+ }
1499
+ }
1490
1500
  }
1491
1501
  else {
1492
- itemResult = Object.keys(objItem).length === 0;
1502
+ if (obj?.toString() === "[object Object]") {
1503
+ // {}
1504
+ flag = Object.keys(obj).length === 0;
1505
+ }
1493
1506
  }
1494
1507
  break;
1495
1508
  case "number":
1496
- itemResult = objItem === 0;
1509
+ flag = isNaN(obj) ? true : obj === 0;
1497
1510
  break;
1498
- case "string":
1499
- itemResult = objItem.trim() === "" || objItem === "null" || objItem === "undefined";
1511
+ case "string": {
1512
+ const trimStr = obj.trim();
1513
+ flag = trimStr.trim() === "" || trimStr === "null" || trimStr === "undefined";
1500
1514
  break;
1515
+ }
1501
1516
  case "boolean":
1502
- itemResult = !objItem;
1517
+ flag = !obj;
1503
1518
  break;
1504
1519
  case "function": {
1505
- const funcStr = objItem.toString().replace(/\s/g, "");
1520
+ const funcStr = obj.toString().replace(/\s/g, "");
1506
1521
  /* 排除()=>{}、(xxx="")=>{}、function(){}、function(xxx=""){} */
1507
- itemResult = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1522
+ flag = Boolean(funcStr.match(/^\(.*?\)=>\{\}$|^function.*?\(.*?\)\{\}$/));
1508
1523
  break;
1509
1524
  }
1510
1525
  }
1511
1526
  }
1512
- result = result && itemResult;
1527
+ result = result && flag;
1513
1528
  }
1514
1529
  return result;
1515
1530
  }