@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/js/time.d.ts CHANGED
@@ -38,8 +38,9 @@ declare const getTime: () => number;
38
38
  * |mm |00-59 |分钟,2 位数字|
39
39
  * |s |0-59| 秒钟|
40
40
  * |ss |00-59 |秒钟,2 位数字|
41
+ * |x| | 时间戳 |
41
42
  */
42
- declare const getDate: (date: Date | string | number | null | undefined, formatStr?: string) => string | Date;
43
+ declare const getDate: (date: Date | string | number | null | undefined, formatStr?: string) => string | number | Date;
43
44
  /** 获取特殊时间节点
44
45
  *
45
46
  * @param {'weekstart' | 'weekend' | 'monthstart' | 'monthend' | 'yearstart' | 'yearend' | 'weekbefore' |'weekafter'| 'monthbefore' | 'yearbefore' | 'yearafter'} dateType 获取特殊时间
@@ -47,6 +48,10 @@ declare const getDate: (date: Date | string | number | null | undefined, formatS
47
48
  *
48
49
  * dateType:
49
50
  *
51
+ * - daybefore —— 一天前
52
+ *
53
+ * - dayafter —— 一天后
54
+ *
50
55
  * - weekstart —— 本周起始日期
51
56
  *
52
57
  * - weekend —— 本周结束日期
package/dist/js.cjs CHANGED
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var pkg = require('lodash');
3
4
  var axios = require('axios');
4
5
 
5
6
  /*
@@ -168,6 +169,7 @@ const getTime = () => _local_time() + _time_diff;
168
169
  * |mm |00-59 |分钟,2 位数字|
169
170
  * |s |0-59| 秒钟|
170
171
  * |ss |00-59 |秒钟,2 位数字|
172
+ * |x| | 时间戳 |
171
173
  */
172
174
  const getDate = (date, formatStr) => {
173
175
  if (!date)
@@ -177,6 +179,8 @@ const getDate = (date, formatStr) => {
177
179
  }
178
180
  if (!formatStr)
179
181
  return new Date(date);
182
+ if (formatStr === 'x')
183
+ return new Date(date).getTime();
180
184
  let ret;
181
185
  let d = {
182
186
  year: date.getFullYear().toString(),
@@ -185,11 +189,19 @@ const getDate = (date, formatStr) => {
185
189
  hour: date.getHours().toString(),
186
190
  minutes: date.getMinutes().toString(),
187
191
  seconds: date.getSeconds().toString(),
188
- week: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][date.getDay()],
192
+ week: [
193
+ '星期日',
194
+ '星期一',
195
+ '星期二',
196
+ '星期三',
197
+ '星期四',
198
+ '星期五',
199
+ '星期六',
200
+ ][date.getDay()],
189
201
  };
190
202
  let keys = {
191
- 'YYYY': d.year,
192
- 'YY': d.year.slice(2),
203
+ YYYY: d.year,
204
+ YY: d.year.slice(2),
193
205
  'M+': d.month,
194
206
  'D+': d.day,
195
207
  '[Hh]+': d.hour,
@@ -212,6 +224,10 @@ const getDate = (date, formatStr) => {
212
224
  *
213
225
  * dateType:
214
226
  *
227
+ * - daybefore —— 一天前
228
+ *
229
+ * - dayafter —— 一天后
230
+ *
215
231
  * - weekstart —— 本周起始日期
216
232
  *
217
233
  * - weekend —— 本周结束日期
@@ -239,27 +255,12 @@ const getDate = (date, formatStr) => {
239
255
  * @returns {Date | string}
240
256
  */
241
257
  const getSpecialDate = (dateType, date, formatter) => {
242
- // 是否为开始时间
243
- let isStart = true;
244
258
  let time = new Date(date || getTime());
245
- const setTime = () => {
246
- if (isStart) {
247
- time.setHours(0);
248
- time.setMinutes(0);
249
- time.setSeconds(0);
250
- }
251
- else {
252
- time.setHours(23);
253
- time.setMinutes(59);
254
- time.setSeconds(59);
255
- }
256
- };
257
259
  switch (dateType) {
258
260
  case 'daybefore':
259
261
  time = new Date(time.getTime() - 24 * 60 * 60 * 1000);
260
262
  break;
261
263
  case 'dayafter':
262
- isStart = false;
263
264
  time = new Date(time.getTime() + 24 * 60 * 60 * 1000);
264
265
  break;
265
266
  case 'weekstart':
@@ -269,28 +270,24 @@ const getSpecialDate = (dateType, date, formatter) => {
269
270
  time = new Date(time.getTime() - time.getDay() * 24 * 60 * 60 * 1000);
270
271
  break;
271
272
  case 'weekend':
272
- isStart = false;
273
273
  time = new Date(time.getTime() + (7 - time.getDay()) * 24 * 60 * 60 * 1000);
274
274
  break;
275
275
  case 'weekbefore':
276
276
  time = new Date(time.getTime() - 7 * 24 * 60 * 60 * 1000);
277
277
  break;
278
278
  case 'weekafter':
279
- isStart = false;
280
- time = (new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000));
279
+ time = new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000);
281
280
  break;
282
281
  case 'monthstart':
283
- time = (new Date(time.getFullYear(), time.getMonth(), 1));
282
+ time = new Date(time.getFullYear(), time.getMonth(), 1);
284
283
  break;
285
284
  case 'monthend':
286
- isStart = false;
287
285
  time = new Date(time.getFullYear(), time.getMonth() + 1, 0);
288
286
  break;
289
287
  case 'monthbefore':
290
288
  time.setMonth(time.getMonth() - 1);
291
289
  break;
292
290
  case 'monthafter':
293
- isStart = false;
294
291
  time.setMonth(time.getMonth() + 1);
295
292
  break;
296
293
  case 'yearstart':
@@ -298,7 +295,6 @@ const getSpecialDate = (dateType, date, formatter) => {
298
295
  time.setDate(1);
299
296
  break;
300
297
  case 'yearend':
301
- isStart = false;
302
298
  time.setMonth(11);
303
299
  time.setDate(31);
304
300
  break;
@@ -306,14 +302,13 @@ const getSpecialDate = (dateType, date, formatter) => {
306
302
  time.setFullYear(time.getFullYear() - 1);
307
303
  break;
308
304
  case 'yearafter':
309
- isStart = false;
310
305
  time.setFullYear(time.getFullYear() + 1);
311
306
  break;
312
307
  }
313
- setTime();
314
308
  return getDate(time, formatter);
315
309
  };
316
310
 
311
+ const { cloneDeep } = pkg;
317
312
  /*
318
313
  * @Description: 对象处理
319
314
  * @Author: Zye
@@ -329,7 +324,9 @@ const getSpecialDate = (dateType, date, formatter) => {
329
324
  */
330
325
  const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
331
326
  // 使用find方法查找数组中匹配的元素,如果未找到则返回一个空对象
332
- let obj = objectArr.find((v) => (typeof keyValue == 'function' ? keyValue(v[keyName]) : v[keyName] == keyValue)) || new Object();
327
+ let obj = objectArr.find((v) => typeof keyValue == 'function'
328
+ ? keyValue(v[keyName])
329
+ : v[keyName] == keyValue) || new Object();
333
330
  // 根据是否指定了foundKeyName返回不同的结果
334
331
  return foundKeyName ? obj[foundKeyName] : obj;
335
332
  };
@@ -344,12 +341,7 @@ const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
344
341
  * @template T 目标对象和源对象的类型,该类型必须是可深度写入的对象类型。
345
342
  */
346
343
  const assignObject = (dist, src) => {
347
- const obj = {};
348
- for (const [key, value] of Object.entries(dist)) {
349
- if (typeof value !== 'object' || value === null) {
350
- obj[key] = value;
351
- }
352
- }
344
+ const obj = cloneDeep(dist);
353
345
  for (const [key, value] of Object.entries(src)) {
354
346
  if (!dist[key] || typeof value !== 'object' || value === null) {
355
347
  obj[key] = value;
@@ -386,6 +378,7 @@ const expose = (option, ...refs) => {
386
378
  return ref.value?.[prop];
387
379
  }
388
380
  }
381
+ return option[prop];
389
382
  },
390
383
  has(_, prop) {
391
384
  for (const ref of refs) {
@@ -393,8 +386,11 @@ const expose = (option, ...refs) => {
393
386
  return true;
394
387
  }
395
388
  }
389
+ if (prop in option) {
390
+ return true;
391
+ }
396
392
  return false;
397
- }
393
+ },
398
394
  });
399
395
  };
400
396
  /**
@@ -409,7 +405,7 @@ const on = (emit, emitStrs) => {
409
405
  if (!Array.isArray(emitStrs)) {
410
406
  emitStrs = Object.keys(emitStrs);
411
407
  }
412
- emitStrs.forEach(key => {
408
+ emitStrs.forEach((key) => {
413
409
  emits[key] = (...args) => {
414
410
  emit(key, ...args);
415
411
  };
@@ -567,9 +563,12 @@ function addPx(px) {
567
563
  * @param reject 响应错误拦截 (正常情况用不到)
568
564
  * @returns
569
565
  */
570
- const createHttp = ({ config = {}, request = config => config, response = data => data, reject = error => Promise.reject(error), }) => {
566
+ const createHttp = ({ config = {}, request = (config) => config, response = (data) => data, reject = (error) => Promise.reject(error), }) => {
571
567
  // 创建Axios
572
- const axiosClone = axios.create({ timeout: 1000 * 60 * 5, ...(config || {}) });
568
+ const axiosClone = axios.create({
569
+ timeout: 1000 * 60 * 5,
570
+ ...(config || {}),
571
+ });
573
572
  // 请求
574
573
  axiosClone.interceptors.request.use((config) => {
575
574
  return request(config);
@@ -578,10 +577,11 @@ const createHttp = ({ config = {}, request = config => config, response = data =
578
577
  axiosClone.interceptors.response.use((res) => {
579
578
  // 处理文件
580
579
  const contentType = res.headers['content-type'];
581
- if ((contentType && contentType.includes('application/octet-stream')) || contentType.includes('file'))
580
+ if ((contentType && contentType.includes('application/octet-stream')) ||
581
+ contentType.includes('file'))
582
582
  return res.data;
583
583
  // 处理数据
584
- return response(res.data, res);
584
+ return response(res?.data, res);
585
585
  }, (error) => {
586
586
  return Promise.reject(reject(error));
587
587
  });
@@ -590,17 +590,17 @@ const createHttp = ({ config = {}, request = config => config, response = data =
590
590
  return axiosClone(config);
591
591
  };
592
592
  const get = (method) => {
593
- return http[method] = (url, params = {}, config = {}) => {
593
+ return (http[method] = (url, params = {}, config = {}) => {
594
594
  return axiosClone[method](url, {
595
595
  ...config,
596
596
  params,
597
597
  });
598
- };
598
+ });
599
599
  };
600
600
  const post = (method) => {
601
- return http[method] = (url, data = {}, config = {}) => {
601
+ return (http[method] = (url, data = {}, config = {}) => {
602
602
  return axiosClone[method](url, data, config);
603
- };
603
+ });
604
604
  };
605
605
  http.get = get('get');
606
606
  http.delete = get('delete');
package/dist/js.js CHANGED
@@ -1,3 +1,4 @@
1
+ import pkg from 'lodash';
1
2
  import axios from 'axios';
2
3
 
3
4
  /*
@@ -166,6 +167,7 @@ const getTime = () => _local_time() + _time_diff;
166
167
  * |mm |00-59 |分钟,2 位数字|
167
168
  * |s |0-59| 秒钟|
168
169
  * |ss |00-59 |秒钟,2 位数字|
170
+ * |x| | 时间戳 |
169
171
  */
170
172
  const getDate = (date, formatStr) => {
171
173
  if (!date)
@@ -175,6 +177,8 @@ const getDate = (date, formatStr) => {
175
177
  }
176
178
  if (!formatStr)
177
179
  return new Date(date);
180
+ if (formatStr === 'x')
181
+ return new Date(date).getTime();
178
182
  let ret;
179
183
  let d = {
180
184
  year: date.getFullYear().toString(),
@@ -183,11 +187,19 @@ const getDate = (date, formatStr) => {
183
187
  hour: date.getHours().toString(),
184
188
  minutes: date.getMinutes().toString(),
185
189
  seconds: date.getSeconds().toString(),
186
- week: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][date.getDay()],
190
+ week: [
191
+ '星期日',
192
+ '星期一',
193
+ '星期二',
194
+ '星期三',
195
+ '星期四',
196
+ '星期五',
197
+ '星期六',
198
+ ][date.getDay()],
187
199
  };
188
200
  let keys = {
189
- 'YYYY': d.year,
190
- 'YY': d.year.slice(2),
201
+ YYYY: d.year,
202
+ YY: d.year.slice(2),
191
203
  'M+': d.month,
192
204
  'D+': d.day,
193
205
  '[Hh]+': d.hour,
@@ -210,6 +222,10 @@ const getDate = (date, formatStr) => {
210
222
  *
211
223
  * dateType:
212
224
  *
225
+ * - daybefore —— 一天前
226
+ *
227
+ * - dayafter —— 一天后
228
+ *
213
229
  * - weekstart —— 本周起始日期
214
230
  *
215
231
  * - weekend —— 本周结束日期
@@ -237,27 +253,12 @@ const getDate = (date, formatStr) => {
237
253
  * @returns {Date | string}
238
254
  */
239
255
  const getSpecialDate = (dateType, date, formatter) => {
240
- // 是否为开始时间
241
- let isStart = true;
242
256
  let time = new Date(date || getTime());
243
- const setTime = () => {
244
- if (isStart) {
245
- time.setHours(0);
246
- time.setMinutes(0);
247
- time.setSeconds(0);
248
- }
249
- else {
250
- time.setHours(23);
251
- time.setMinutes(59);
252
- time.setSeconds(59);
253
- }
254
- };
255
257
  switch (dateType) {
256
258
  case 'daybefore':
257
259
  time = new Date(time.getTime() - 24 * 60 * 60 * 1000);
258
260
  break;
259
261
  case 'dayafter':
260
- isStart = false;
261
262
  time = new Date(time.getTime() + 24 * 60 * 60 * 1000);
262
263
  break;
263
264
  case 'weekstart':
@@ -267,28 +268,24 @@ const getSpecialDate = (dateType, date, formatter) => {
267
268
  time = new Date(time.getTime() - time.getDay() * 24 * 60 * 60 * 1000);
268
269
  break;
269
270
  case 'weekend':
270
- isStart = false;
271
271
  time = new Date(time.getTime() + (7 - time.getDay()) * 24 * 60 * 60 * 1000);
272
272
  break;
273
273
  case 'weekbefore':
274
274
  time = new Date(time.getTime() - 7 * 24 * 60 * 60 * 1000);
275
275
  break;
276
276
  case 'weekafter':
277
- isStart = false;
278
- time = (new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000));
277
+ time = new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000);
279
278
  break;
280
279
  case 'monthstart':
281
- time = (new Date(time.getFullYear(), time.getMonth(), 1));
280
+ time = new Date(time.getFullYear(), time.getMonth(), 1);
282
281
  break;
283
282
  case 'monthend':
284
- isStart = false;
285
283
  time = new Date(time.getFullYear(), time.getMonth() + 1, 0);
286
284
  break;
287
285
  case 'monthbefore':
288
286
  time.setMonth(time.getMonth() - 1);
289
287
  break;
290
288
  case 'monthafter':
291
- isStart = false;
292
289
  time.setMonth(time.getMonth() + 1);
293
290
  break;
294
291
  case 'yearstart':
@@ -296,7 +293,6 @@ const getSpecialDate = (dateType, date, formatter) => {
296
293
  time.setDate(1);
297
294
  break;
298
295
  case 'yearend':
299
- isStart = false;
300
296
  time.setMonth(11);
301
297
  time.setDate(31);
302
298
  break;
@@ -304,14 +300,13 @@ const getSpecialDate = (dateType, date, formatter) => {
304
300
  time.setFullYear(time.getFullYear() - 1);
305
301
  break;
306
302
  case 'yearafter':
307
- isStart = false;
308
303
  time.setFullYear(time.getFullYear() + 1);
309
304
  break;
310
305
  }
311
- setTime();
312
306
  return getDate(time, formatter);
313
307
  };
314
308
 
309
+ const { cloneDeep } = pkg;
315
310
  /*
316
311
  * @Description: 对象处理
317
312
  * @Author: Zye
@@ -327,7 +322,9 @@ const getSpecialDate = (dateType, date, formatter) => {
327
322
  */
328
323
  const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
329
324
  // 使用find方法查找数组中匹配的元素,如果未找到则返回一个空对象
330
- let obj = objectArr.find((v) => (typeof keyValue == 'function' ? keyValue(v[keyName]) : v[keyName] == keyValue)) || new Object();
325
+ let obj = objectArr.find((v) => typeof keyValue == 'function'
326
+ ? keyValue(v[keyName])
327
+ : v[keyName] == keyValue) || new Object();
331
328
  // 根据是否指定了foundKeyName返回不同的结果
332
329
  return foundKeyName ? obj[foundKeyName] : obj;
333
330
  };
@@ -342,12 +339,7 @@ const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
342
339
  * @template T 目标对象和源对象的类型,该类型必须是可深度写入的对象类型。
343
340
  */
344
341
  const assignObject = (dist, src) => {
345
- const obj = {};
346
- for (const [key, value] of Object.entries(dist)) {
347
- if (typeof value !== 'object' || value === null) {
348
- obj[key] = value;
349
- }
350
- }
342
+ const obj = cloneDeep(dist);
351
343
  for (const [key, value] of Object.entries(src)) {
352
344
  if (!dist[key] || typeof value !== 'object' || value === null) {
353
345
  obj[key] = value;
@@ -384,6 +376,7 @@ const expose = (option, ...refs) => {
384
376
  return ref.value?.[prop];
385
377
  }
386
378
  }
379
+ return option[prop];
387
380
  },
388
381
  has(_, prop) {
389
382
  for (const ref of refs) {
@@ -391,8 +384,11 @@ const expose = (option, ...refs) => {
391
384
  return true;
392
385
  }
393
386
  }
387
+ if (prop in option) {
388
+ return true;
389
+ }
394
390
  return false;
395
- }
391
+ },
396
392
  });
397
393
  };
398
394
  /**
@@ -407,7 +403,7 @@ const on = (emit, emitStrs) => {
407
403
  if (!Array.isArray(emitStrs)) {
408
404
  emitStrs = Object.keys(emitStrs);
409
405
  }
410
- emitStrs.forEach(key => {
406
+ emitStrs.forEach((key) => {
411
407
  emits[key] = (...args) => {
412
408
  emit(key, ...args);
413
409
  };
@@ -565,9 +561,12 @@ function addPx(px) {
565
561
  * @param reject 响应错误拦截 (正常情况用不到)
566
562
  * @returns
567
563
  */
568
- const createHttp = ({ config = {}, request = config => config, response = data => data, reject = error => Promise.reject(error), }) => {
564
+ const createHttp = ({ config = {}, request = (config) => config, response = (data) => data, reject = (error) => Promise.reject(error), }) => {
569
565
  // 创建Axios
570
- const axiosClone = axios.create({ timeout: 1000 * 60 * 5, ...(config || {}) });
566
+ const axiosClone = axios.create({
567
+ timeout: 1000 * 60 * 5,
568
+ ...(config || {}),
569
+ });
571
570
  // 请求
572
571
  axiosClone.interceptors.request.use((config) => {
573
572
  return request(config);
@@ -576,10 +575,11 @@ const createHttp = ({ config = {}, request = config => config, response = data =
576
575
  axiosClone.interceptors.response.use((res) => {
577
576
  // 处理文件
578
577
  const contentType = res.headers['content-type'];
579
- if ((contentType && contentType.includes('application/octet-stream')) || contentType.includes('file'))
578
+ if ((contentType && contentType.includes('application/octet-stream')) ||
579
+ contentType.includes('file'))
580
580
  return res.data;
581
581
  // 处理数据
582
- return response(res.data, res);
582
+ return response(res?.data, res);
583
583
  }, (error) => {
584
584
  return Promise.reject(reject(error));
585
585
  });
@@ -588,17 +588,17 @@ const createHttp = ({ config = {}, request = config => config, response = data =
588
588
  return axiosClone(config);
589
589
  };
590
590
  const get = (method) => {
591
- return http[method] = (url, params = {}, config = {}) => {
591
+ return (http[method] = (url, params = {}, config = {}) => {
592
592
  return axiosClone[method](url, {
593
593
  ...config,
594
594
  params,
595
595
  });
596
- };
596
+ });
597
597
  };
598
598
  const post = (method) => {
599
- return http[method] = (url, data = {}, config = {}) => {
599
+ return (http[method] = (url, data = {}, config = {}) => {
600
600
  return axiosClone[method](url, data, config);
601
- };
601
+ });
602
602
  };
603
603
  http.get = get('get');
604
604
  http.delete = get('delete');