@cowave-cli/utils 2.5.3 → 2.5.5

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/dist/node.cjs CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var fs = require('fs');
4
4
  var path = require('path');
5
+ var pkg = require('lodash');
5
6
  var axios = require('axios');
6
7
 
7
8
  /*
@@ -390,6 +391,7 @@ const getTime = () => _local_time() + _time_diff;
390
391
  * |mm |00-59 |分钟,2 位数字|
391
392
  * |s |0-59| 秒钟|
392
393
  * |ss |00-59 |秒钟,2 位数字|
394
+ * |x| | 时间戳 |
393
395
  */
394
396
  const getDate = (date, formatStr) => {
395
397
  if (!date)
@@ -399,6 +401,8 @@ const getDate = (date, formatStr) => {
399
401
  }
400
402
  if (!formatStr)
401
403
  return new Date(date);
404
+ if (formatStr === 'x')
405
+ return new Date(date).getTime();
402
406
  let ret;
403
407
  let d = {
404
408
  year: date.getFullYear().toString(),
@@ -407,11 +411,19 @@ const getDate = (date, formatStr) => {
407
411
  hour: date.getHours().toString(),
408
412
  minutes: date.getMinutes().toString(),
409
413
  seconds: date.getSeconds().toString(),
410
- week: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][date.getDay()],
414
+ week: [
415
+ '星期日',
416
+ '星期一',
417
+ '星期二',
418
+ '星期三',
419
+ '星期四',
420
+ '星期五',
421
+ '星期六',
422
+ ][date.getDay()],
411
423
  };
412
424
  let keys = {
413
- 'YYYY': d.year,
414
- 'YY': d.year.slice(2),
425
+ YYYY: d.year,
426
+ YY: d.year.slice(2),
415
427
  'M+': d.month,
416
428
  'D+': d.day,
417
429
  '[Hh]+': d.hour,
@@ -434,6 +446,10 @@ const getDate = (date, formatStr) => {
434
446
  *
435
447
  * dateType:
436
448
  *
449
+ * - daybefore —— 一天前
450
+ *
451
+ * - dayafter —— 一天后
452
+ *
437
453
  * - weekstart —— 本周起始日期
438
454
  *
439
455
  * - weekend —— 本周结束日期
@@ -461,27 +477,12 @@ const getDate = (date, formatStr) => {
461
477
  * @returns {Date | string}
462
478
  */
463
479
  const getSpecialDate = (dateType, date, formatter) => {
464
- // 是否为开始时间
465
- let isStart = true;
466
480
  let time = new Date(date || getTime());
467
- const setTime = () => {
468
- if (isStart) {
469
- time.setHours(0);
470
- time.setMinutes(0);
471
- time.setSeconds(0);
472
- }
473
- else {
474
- time.setHours(23);
475
- time.setMinutes(59);
476
- time.setSeconds(59);
477
- }
478
- };
479
481
  switch (dateType) {
480
482
  case 'daybefore':
481
483
  time = new Date(time.getTime() - 24 * 60 * 60 * 1000);
482
484
  break;
483
485
  case 'dayafter':
484
- isStart = false;
485
486
  time = new Date(time.getTime() + 24 * 60 * 60 * 1000);
486
487
  break;
487
488
  case 'weekstart':
@@ -491,28 +492,24 @@ const getSpecialDate = (dateType, date, formatter) => {
491
492
  time = new Date(time.getTime() - time.getDay() * 24 * 60 * 60 * 1000);
492
493
  break;
493
494
  case 'weekend':
494
- isStart = false;
495
495
  time = new Date(time.getTime() + (7 - time.getDay()) * 24 * 60 * 60 * 1000);
496
496
  break;
497
497
  case 'weekbefore':
498
498
  time = new Date(time.getTime() - 7 * 24 * 60 * 60 * 1000);
499
499
  break;
500
500
  case 'weekafter':
501
- isStart = false;
502
- time = (new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000));
501
+ time = new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000);
503
502
  break;
504
503
  case 'monthstart':
505
- time = (new Date(time.getFullYear(), time.getMonth(), 1));
504
+ time = new Date(time.getFullYear(), time.getMonth(), 1);
506
505
  break;
507
506
  case 'monthend':
508
- isStart = false;
509
507
  time = new Date(time.getFullYear(), time.getMonth() + 1, 0);
510
508
  break;
511
509
  case 'monthbefore':
512
510
  time.setMonth(time.getMonth() - 1);
513
511
  break;
514
512
  case 'monthafter':
515
- isStart = false;
516
513
  time.setMonth(time.getMonth() + 1);
517
514
  break;
518
515
  case 'yearstart':
@@ -520,7 +517,6 @@ const getSpecialDate = (dateType, date, formatter) => {
520
517
  time.setDate(1);
521
518
  break;
522
519
  case 'yearend':
523
- isStart = false;
524
520
  time.setMonth(11);
525
521
  time.setDate(31);
526
522
  break;
@@ -528,14 +524,13 @@ const getSpecialDate = (dateType, date, formatter) => {
528
524
  time.setFullYear(time.getFullYear() - 1);
529
525
  break;
530
526
  case 'yearafter':
531
- isStart = false;
532
527
  time.setFullYear(time.getFullYear() + 1);
533
528
  break;
534
529
  }
535
- setTime();
536
530
  return getDate(time, formatter);
537
531
  };
538
532
 
533
+ const { cloneDeep } = pkg;
539
534
  /*
540
535
  * @Description: 对象处理
541
536
  * @Author: Zye
@@ -551,7 +546,9 @@ const getSpecialDate = (dateType, date, formatter) => {
551
546
  */
552
547
  const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
553
548
  // 使用find方法查找数组中匹配的元素,如果未找到则返回一个空对象
554
- let obj = objectArr.find((v) => (typeof keyValue == 'function' ? keyValue(v[keyName]) : v[keyName] == keyValue)) || new Object();
549
+ let obj = objectArr.find((v) => typeof keyValue == 'function'
550
+ ? keyValue(v[keyName])
551
+ : v[keyName] == keyValue) || new Object();
555
552
  // 根据是否指定了foundKeyName返回不同的结果
556
553
  return foundKeyName ? obj[foundKeyName] : obj;
557
554
  };
@@ -566,12 +563,7 @@ const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
566
563
  * @template T 目标对象和源对象的类型,该类型必须是可深度写入的对象类型。
567
564
  */
568
565
  const assignObject = (dist, src) => {
569
- const obj = {};
570
- for (const [key, value] of Object.entries(dist)) {
571
- if (typeof value !== 'object' || value === null) {
572
- obj[key] = value;
573
- }
574
- }
566
+ const obj = cloneDeep(dist);
575
567
  for (const [key, value] of Object.entries(src)) {
576
568
  if (!dist[key] || typeof value !== 'object' || value === null) {
577
569
  obj[key] = value;
@@ -608,6 +600,7 @@ const expose = (option, ...refs) => {
608
600
  return ref.value?.[prop];
609
601
  }
610
602
  }
603
+ return option[prop];
611
604
  },
612
605
  has(_, prop) {
613
606
  for (const ref of refs) {
@@ -615,8 +608,11 @@ const expose = (option, ...refs) => {
615
608
  return true;
616
609
  }
617
610
  }
611
+ if (prop in option) {
612
+ return true;
613
+ }
618
614
  return false;
619
- }
615
+ },
620
616
  });
621
617
  };
622
618
  /**
@@ -631,7 +627,7 @@ const on = (emit, emitStrs) => {
631
627
  if (!Array.isArray(emitStrs)) {
632
628
  emitStrs = Object.keys(emitStrs);
633
629
  }
634
- emitStrs.forEach(key => {
630
+ emitStrs.forEach((key) => {
635
631
  emits[key] = (...args) => {
636
632
  emit(key, ...args);
637
633
  };
@@ -789,9 +785,12 @@ function addPx(px) {
789
785
  * @param reject 响应错误拦截 (正常情况用不到)
790
786
  * @returns
791
787
  */
792
- const createHttp = ({ config = {}, request = config => config, response = data => data, reject = error => Promise.reject(error), }) => {
788
+ const createHttp = ({ config = {}, request = (config) => config, response = (data) => data, reject = (error) => Promise.reject(error), }) => {
793
789
  // 创建Axios
794
- const axiosClone = axios.create({ timeout: 1000 * 60 * 5, ...(config || {}) });
790
+ const axiosClone = axios.create({
791
+ timeout: 1000 * 60 * 5,
792
+ ...(config || {}),
793
+ });
795
794
  // 请求
796
795
  axiosClone.interceptors.request.use((config) => {
797
796
  return request(config);
@@ -800,10 +799,11 @@ const createHttp = ({ config = {}, request = config => config, response = data =
800
799
  axiosClone.interceptors.response.use((res) => {
801
800
  // 处理文件
802
801
  const contentType = res.headers['content-type'];
803
- if ((contentType && contentType.includes('application/octet-stream')) || contentType.includes('file'))
802
+ if ((contentType && contentType.includes('application/octet-stream')) ||
803
+ contentType.includes('file'))
804
804
  return res.data;
805
805
  // 处理数据
806
- return response(res.data, res);
806
+ return response(res?.data, res);
807
807
  }, (error) => {
808
808
  return Promise.reject(reject(error));
809
809
  });
@@ -812,17 +812,17 @@ const createHttp = ({ config = {}, request = config => config, response = data =
812
812
  return axiosClone(config);
813
813
  };
814
814
  const get = (method) => {
815
- return http[method] = (url, params = {}, config = {}) => {
815
+ return (http[method] = (url, params = {}, config = {}) => {
816
816
  return axiosClone[method](url, {
817
817
  ...config,
818
818
  params,
819
819
  });
820
- };
820
+ });
821
821
  };
822
822
  const post = (method) => {
823
- return http[method] = (url, data = {}, config = {}) => {
823
+ return (http[method] = (url, data = {}, config = {}) => {
824
824
  return axiosClone[method](url, data, config);
825
- };
825
+ });
826
826
  };
827
827
  http.get = get('get');
828
828
  http.delete = get('delete');
package/dist/node.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { mkdirSync, readdirSync, statSync, readFileSync, existsSync, writeFileSync, lstatSync, copyFileSync, rmdirSync, unlinkSync } from 'fs';
2
2
  import { join, dirname } from 'path';
3
+ import pkg from 'lodash';
3
4
  import axios from 'axios';
4
5
 
5
6
  /*
@@ -388,6 +389,7 @@ const getTime = () => _local_time() + _time_diff;
388
389
  * |mm |00-59 |分钟,2 位数字|
389
390
  * |s |0-59| 秒钟|
390
391
  * |ss |00-59 |秒钟,2 位数字|
392
+ * |x| | 时间戳 |
391
393
  */
392
394
  const getDate = (date, formatStr) => {
393
395
  if (!date)
@@ -397,6 +399,8 @@ const getDate = (date, formatStr) => {
397
399
  }
398
400
  if (!formatStr)
399
401
  return new Date(date);
402
+ if (formatStr === 'x')
403
+ return new Date(date).getTime();
400
404
  let ret;
401
405
  let d = {
402
406
  year: date.getFullYear().toString(),
@@ -405,11 +409,19 @@ const getDate = (date, formatStr) => {
405
409
  hour: date.getHours().toString(),
406
410
  minutes: date.getMinutes().toString(),
407
411
  seconds: date.getSeconds().toString(),
408
- week: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][date.getDay()],
412
+ week: [
413
+ '星期日',
414
+ '星期一',
415
+ '星期二',
416
+ '星期三',
417
+ '星期四',
418
+ '星期五',
419
+ '星期六',
420
+ ][date.getDay()],
409
421
  };
410
422
  let keys = {
411
- 'YYYY': d.year,
412
- 'YY': d.year.slice(2),
423
+ YYYY: d.year,
424
+ YY: d.year.slice(2),
413
425
  'M+': d.month,
414
426
  'D+': d.day,
415
427
  '[Hh]+': d.hour,
@@ -432,6 +444,10 @@ const getDate = (date, formatStr) => {
432
444
  *
433
445
  * dateType:
434
446
  *
447
+ * - daybefore —— 一天前
448
+ *
449
+ * - dayafter —— 一天后
450
+ *
435
451
  * - weekstart —— 本周起始日期
436
452
  *
437
453
  * - weekend —— 本周结束日期
@@ -459,27 +475,12 @@ const getDate = (date, formatStr) => {
459
475
  * @returns {Date | string}
460
476
  */
461
477
  const getSpecialDate = (dateType, date, formatter) => {
462
- // 是否为开始时间
463
- let isStart = true;
464
478
  let time = new Date(date || getTime());
465
- const setTime = () => {
466
- if (isStart) {
467
- time.setHours(0);
468
- time.setMinutes(0);
469
- time.setSeconds(0);
470
- }
471
- else {
472
- time.setHours(23);
473
- time.setMinutes(59);
474
- time.setSeconds(59);
475
- }
476
- };
477
479
  switch (dateType) {
478
480
  case 'daybefore':
479
481
  time = new Date(time.getTime() - 24 * 60 * 60 * 1000);
480
482
  break;
481
483
  case 'dayafter':
482
- isStart = false;
483
484
  time = new Date(time.getTime() + 24 * 60 * 60 * 1000);
484
485
  break;
485
486
  case 'weekstart':
@@ -489,28 +490,24 @@ const getSpecialDate = (dateType, date, formatter) => {
489
490
  time = new Date(time.getTime() - time.getDay() * 24 * 60 * 60 * 1000);
490
491
  break;
491
492
  case 'weekend':
492
- isStart = false;
493
493
  time = new Date(time.getTime() + (7 - time.getDay()) * 24 * 60 * 60 * 1000);
494
494
  break;
495
495
  case 'weekbefore':
496
496
  time = new Date(time.getTime() - 7 * 24 * 60 * 60 * 1000);
497
497
  break;
498
498
  case 'weekafter':
499
- isStart = false;
500
- time = (new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000));
499
+ time = new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000);
501
500
  break;
502
501
  case 'monthstart':
503
- time = (new Date(time.getFullYear(), time.getMonth(), 1));
502
+ time = new Date(time.getFullYear(), time.getMonth(), 1);
504
503
  break;
505
504
  case 'monthend':
506
- isStart = false;
507
505
  time = new Date(time.getFullYear(), time.getMonth() + 1, 0);
508
506
  break;
509
507
  case 'monthbefore':
510
508
  time.setMonth(time.getMonth() - 1);
511
509
  break;
512
510
  case 'monthafter':
513
- isStart = false;
514
511
  time.setMonth(time.getMonth() + 1);
515
512
  break;
516
513
  case 'yearstart':
@@ -518,7 +515,6 @@ const getSpecialDate = (dateType, date, formatter) => {
518
515
  time.setDate(1);
519
516
  break;
520
517
  case 'yearend':
521
- isStart = false;
522
518
  time.setMonth(11);
523
519
  time.setDate(31);
524
520
  break;
@@ -526,14 +522,13 @@ const getSpecialDate = (dateType, date, formatter) => {
526
522
  time.setFullYear(time.getFullYear() - 1);
527
523
  break;
528
524
  case 'yearafter':
529
- isStart = false;
530
525
  time.setFullYear(time.getFullYear() + 1);
531
526
  break;
532
527
  }
533
- setTime();
534
528
  return getDate(time, formatter);
535
529
  };
536
530
 
531
+ const { cloneDeep } = pkg;
537
532
  /*
538
533
  * @Description: 对象处理
539
534
  * @Author: Zye
@@ -549,7 +544,9 @@ const getSpecialDate = (dateType, date, formatter) => {
549
544
  */
550
545
  const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
551
546
  // 使用find方法查找数组中匹配的元素,如果未找到则返回一个空对象
552
- let obj = objectArr.find((v) => (typeof keyValue == 'function' ? keyValue(v[keyName]) : v[keyName] == keyValue)) || new Object();
547
+ let obj = objectArr.find((v) => typeof keyValue == 'function'
548
+ ? keyValue(v[keyName])
549
+ : v[keyName] == keyValue) || new Object();
553
550
  // 根据是否指定了foundKeyName返回不同的结果
554
551
  return foundKeyName ? obj[foundKeyName] : obj;
555
552
  };
@@ -564,12 +561,7 @@ const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
564
561
  * @template T 目标对象和源对象的类型,该类型必须是可深度写入的对象类型。
565
562
  */
566
563
  const assignObject = (dist, src) => {
567
- const obj = {};
568
- for (const [key, value] of Object.entries(dist)) {
569
- if (typeof value !== 'object' || value === null) {
570
- obj[key] = value;
571
- }
572
- }
564
+ const obj = cloneDeep(dist);
573
565
  for (const [key, value] of Object.entries(src)) {
574
566
  if (!dist[key] || typeof value !== 'object' || value === null) {
575
567
  obj[key] = value;
@@ -606,6 +598,7 @@ const expose = (option, ...refs) => {
606
598
  return ref.value?.[prop];
607
599
  }
608
600
  }
601
+ return option[prop];
609
602
  },
610
603
  has(_, prop) {
611
604
  for (const ref of refs) {
@@ -613,8 +606,11 @@ const expose = (option, ...refs) => {
613
606
  return true;
614
607
  }
615
608
  }
609
+ if (prop in option) {
610
+ return true;
611
+ }
616
612
  return false;
617
- }
613
+ },
618
614
  });
619
615
  };
620
616
  /**
@@ -629,7 +625,7 @@ const on = (emit, emitStrs) => {
629
625
  if (!Array.isArray(emitStrs)) {
630
626
  emitStrs = Object.keys(emitStrs);
631
627
  }
632
- emitStrs.forEach(key => {
628
+ emitStrs.forEach((key) => {
633
629
  emits[key] = (...args) => {
634
630
  emit(key, ...args);
635
631
  };
@@ -787,9 +783,12 @@ function addPx(px) {
787
783
  * @param reject 响应错误拦截 (正常情况用不到)
788
784
  * @returns
789
785
  */
790
- const createHttp = ({ config = {}, request = config => config, response = data => data, reject = error => Promise.reject(error), }) => {
786
+ const createHttp = ({ config = {}, request = (config) => config, response = (data) => data, reject = (error) => Promise.reject(error), }) => {
791
787
  // 创建Axios
792
- const axiosClone = axios.create({ timeout: 1000 * 60 * 5, ...(config || {}) });
788
+ const axiosClone = axios.create({
789
+ timeout: 1000 * 60 * 5,
790
+ ...(config || {}),
791
+ });
793
792
  // 请求
794
793
  axiosClone.interceptors.request.use((config) => {
795
794
  return request(config);
@@ -798,10 +797,11 @@ const createHttp = ({ config = {}, request = config => config, response = data =
798
797
  axiosClone.interceptors.response.use((res) => {
799
798
  // 处理文件
800
799
  const contentType = res.headers['content-type'];
801
- if ((contentType && contentType.includes('application/octet-stream')) || contentType.includes('file'))
800
+ if ((contentType && contentType.includes('application/octet-stream')) ||
801
+ contentType.includes('file'))
802
802
  return res.data;
803
803
  // 处理数据
804
- return response(res.data, res);
804
+ return response(res?.data, res);
805
805
  }, (error) => {
806
806
  return Promise.reject(reject(error));
807
807
  });
@@ -810,17 +810,17 @@ const createHttp = ({ config = {}, request = config => config, response = data =
810
810
  return axiosClone(config);
811
811
  };
812
812
  const get = (method) => {
813
- return http[method] = (url, params = {}, config = {}) => {
813
+ return (http[method] = (url, params = {}, config = {}) => {
814
814
  return axiosClone[method](url, {
815
815
  ...config,
816
816
  params,
817
817
  });
818
- };
818
+ });
819
819
  };
820
820
  const post = (method) => {
821
- return http[method] = (url, data = {}, config = {}) => {
821
+ return (http[method] = (url, data = {}, config = {}) => {
822
822
  return axiosClone[method](url, data, config);
823
- };
823
+ });
824
824
  };
825
825
  http.get = get('get');
826
826
  http.delete = get('delete');