@maiyunnet/kebab 2.0.2 → 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.2';
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.2';
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
@@ -57,6 +57,7 @@ exports.stringifyResult = stringifyResult;
57
57
  exports.parseJson = parseJson;
58
58
  exports.stringifyJson = stringifyJson;
59
59
  exports.isFalsy = isFalsy;
60
+ exports.logicalOr = logicalOr;
60
61
  exports.str2int = str2int;
61
62
  exports.int2str = int2str;
62
63
  const kebab = __importStar(require("~/index"));
@@ -429,7 +430,10 @@ function stringifyJson(obj, space) {
429
430
  }, space).replace(/"-mybigint-([-+0-9]+?)"/g, '$1');
430
431
  }
431
432
  function isFalsy(val) {
432
- return (val === null || val === undefined || val === '' || val === false || val === 0) ? true : false;
433
+ return (val === null) || (val === undefined) || (val === '') || (val === false) || (val === 0);
434
+ }
435
+ function logicalOr(v1, v2) {
436
+ return (isFalsy(v1) ? v2 : v1);
433
437
  }
434
438
  function str2int(str, digits = 3) {
435
439
  const num = parseFloat(str);
package/lib/text.ts CHANGED
@@ -551,12 +551,23 @@ 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
+
554
556
  /**
555
- * --- 判断一个值是否是虚假的(为 null/undefined/空字符串/false/0 等) ---
557
+ * --- 判断一个值是否是虚假的(为 null/undefined/空字符串/false/0 ---
556
558
  * @param val 要判断的值
557
559
  */
558
- export function isFalsy(val: any): boolean {
559
- return (val === null || val === undefined || val === '' || val === false || val === 0) ? true : false;
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;
560
571
  }
561
572
 
562
573
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maiyunnet/kebab",
3
- "version": "2.0.2",
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",