@maiyunnet/kebab 2.0.1 → 2.0.3

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.
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MOD_CWD = exports.FTMP_CWD = exports.IND_CWD = exports.WWW_CWD = exports.LOG_CWD = exports.LIB_CWD = exports.VHOST_CWD = exports.CERT_CWD = exports.CONF_CWD = exports.ROOT_CWD = exports.SYS_PATH = exports.LIB_PATH = exports.ROOT_PATH = exports.VER = void 0;
4
- exports.VER = '2.0.1';
4
+ exports.VER = '2.0.3';
5
5
  const dirname = __dirname.replace(/\\/g, '/');
6
6
  exports.ROOT_PATH = dirname + '/';
7
7
  exports.LIB_PATH = exports.ROOT_PATH + 'lib/';
package/index.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  /** --- 当前系统版本号 --- */
9
- export const VER = '2.0.1';
9
+ export const VER = '2.0.3';
10
10
 
11
11
  // --- 服务端用的路径 ---
12
12
 
package/lib/sql.js CHANGED
@@ -477,9 +477,7 @@ class Sql {
477
477
  return this;
478
478
  }
479
479
  _whereSub(s, data) {
480
- if (!data) {
481
- data = this._data;
482
- }
480
+ data ??= this._data;
483
481
  s = aoMix(s);
484
482
  let sql = '';
485
483
  for (const k in s) {
package/lib/sql.ts CHANGED
@@ -664,9 +664,7 @@ export class Sql {
664
664
  }
665
665
 
666
666
  private _whereSub(s: types.Json, data?: any[]): string {
667
- if (!data) {
668
- data = this._data;
669
- }
667
+ data ??= this._data;
670
668
  s = aoMix(s);
671
669
  let sql = '';
672
670
  for (const k in s) {
package/lib/text.js CHANGED
@@ -56,6 +56,8 @@ exports.getFilename = getFilename;
56
56
  exports.stringifyResult = stringifyResult;
57
57
  exports.parseJson = parseJson;
58
58
  exports.stringifyJson = stringifyJson;
59
+ exports.isFalsy = isFalsy;
60
+ exports.logicalOr = logicalOr;
59
61
  exports.str2int = str2int;
60
62
  exports.int2str = int2str;
61
63
  const kebab = __importStar(require("~/index"));
@@ -427,6 +429,12 @@ function stringifyJson(obj, space) {
427
429
  return v;
428
430
  }, space).replace(/"-mybigint-([-+0-9]+?)"/g, '$1');
429
431
  }
432
+ function isFalsy(val) {
433
+ return (val === null) || (val === undefined) || (val === '') || (val === false) || (val === 0);
434
+ }
435
+ function logicalOr(v1, v2) {
436
+ return (isFalsy(v1) ? v2 : v1);
437
+ }
430
438
  function str2int(str, digits = 3) {
431
439
  const num = parseFloat(str);
432
440
  const factor = Math.pow(10, digits);
package/lib/text.ts CHANGED
@@ -551,6 +551,25 @@ export function stringifyJson(obj: types.Json, space?: string | number): string
551
551
  }, space).replace(/"-mybigint-([-+0-9]+?)"/g, '$1');
552
552
  }
553
553
 
554
+ type TFalsy = false | '' | 0 | null | undefined | typeof NaN;
555
+
556
+ /**
557
+ * --- 判断一个值是否是虚假的(为 null/undefined/空字符串/false/0) ---
558
+ * @param val 要判断的值
559
+ */
560
+ export function isFalsy(val: any): val is TFalsy {
561
+ return (val === null) || (val === undefined) || (val === '') || (val === false) || (val === 0);
562
+ }
563
+
564
+ /**
565
+ * --- 类似 || 运算符的效果 ---
566
+ * @param v1 比对值
567
+ * @param v2 比对值
568
+ */
569
+ export function logicalOr<T, T2>(v1: T, v2: T2): [T] extends [TFalsy] ? T2 : T {
570
+ return (isFalsy(v1) ? v2 : v1) as any;
571
+ }
572
+
554
573
  /**
555
574
  * --- 为解决精度问题,将字符串数字转换为整数显示 ---
556
575
  * --- 以下几个示例都是当 digits 为 2 时 ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maiyunnet/kebab",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Simple, easy-to-use, and fully-featured Node.js framework that is ready-to-use out of the box.",
5
5
  "keywords": [
6
6
  "kebab",