@jhqn/utils-core 0.0.1-beta.20 → 0.0.1-beta.21

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/index.cjs CHANGED
@@ -1,6 +1,23 @@
1
1
  'use strict';
2
2
 
3
3
  const detectBrowser = require('detect-browser');
4
+ const dayjs = require('dayjs/esm');
5
+ const localeData = require('dayjs/esm/plugin/localeData');
6
+ const duration = require('dayjs/esm/plugin/duration');
7
+ const relativeTime = require('dayjs/esm/plugin/relativeTime');
8
+ const customParseFormat = require('dayjs/esm/plugin/customParseFormat');
9
+ const objectSupport = require('dayjs/esm/plugin/objectSupport');
10
+ const zhCN = require('dayjs/esm/locale/zh-cn');
11
+
12
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
13
+
14
+ const dayjs__default = /*#__PURE__*/_interopDefaultCompat(dayjs);
15
+ const localeData__default = /*#__PURE__*/_interopDefaultCompat(localeData);
16
+ const duration__default = /*#__PURE__*/_interopDefaultCompat(duration);
17
+ const relativeTime__default = /*#__PURE__*/_interopDefaultCompat(relativeTime);
18
+ const customParseFormat__default = /*#__PURE__*/_interopDefaultCompat(customParseFormat);
19
+ const objectSupport__default = /*#__PURE__*/_interopDefaultCompat(objectSupport);
20
+ const zhCN__default = /*#__PURE__*/_interopDefaultCompat(zhCN);
4
21
 
5
22
  const snake2Kebab = (str) => str.replace(/_([a-z])/g, (_, letter) => `-${letter.toLowerCase()}`);
6
23
  const snake2Pascal = (str) => str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase()).replace(/^[a-z]/, (letter) => letter.toUpperCase());
@@ -232,11 +249,47 @@ const reviver = (_, value) => {
232
249
  };
233
250
  const filterObj = (obj, keys, reverse = false) => Object.fromEntries(Object.entries(obj).filter(([key]) => reverse ? !keys.includes(key) : keys.includes(key)));
234
251
 
252
+ dayjs__default.extend(localeData__default).locale("zh-cn", zhCN__default);
253
+ dayjs__default.extend(duration__default);
254
+ dayjs__default.extend(relativeTime__default);
255
+ dayjs__default.extend(customParseFormat__default);
256
+ dayjs__default.extend(objectSupport__default);
257
+ const dateFmt = (date, format = "YYYY-MM-DD HH:mm:ss") => {
258
+ const dd = dayjs__default(date);
259
+ let fmt = format;
260
+ if (!isDef(date) || !dd.isValid())
261
+ return "";
262
+ if (format === "date")
263
+ fmt = "YYYY-MM-DD";
264
+ if (format === "datetime")
265
+ fmt = "YYYY-MM-DD HH:mm:ss";
266
+ return dd.format(fmt);
267
+ };
268
+ const dateDuration = (start, end) => {
269
+ const startDay = dayjs__default(start);
270
+ const endDay = dayjs__default(end);
271
+ if (!isDef(start) || !startDay.isValid() || !isDef(end) || !endDay.isValid())
272
+ return "";
273
+ const dd = dayjs__default.duration(endDay.diff(startDay));
274
+ const year = dd.years();
275
+ const month = dd.months();
276
+ const day = dd.days();
277
+ const format = [
278
+ year === 0 ? "" : "Y\u5E74",
279
+ month === 0 ? "" : "M\u4E2A\u6708",
280
+ day === 0 ? "" : `${day < 10 && (year !== 0 || month !== 0) ? "\u96F6" : ""}D\u5929`
281
+ ].join("");
282
+ return dd.format(format);
283
+ };
284
+
285
+ exports.dayjs = dayjs__default;
235
286
  exports.camel2Kebab = camel2Kebab;
236
287
  exports.camel2Pascal = camel2Pascal;
237
288
  exports.camel2Snake = camel2Snake;
238
289
  exports.camel2Title = camel2Title;
239
290
  exports.checkImg = checkImg;
291
+ exports.dateDuration = dateDuration;
292
+ exports.dateFmt = dateFmt;
240
293
  exports.filterObj = filterObj;
241
294
  exports.fixiOSInputAutoZoomIn = fixiOSInputAutoZoomIn;
242
295
  exports.getHostEnv = getHostEnv;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import * as detect_browser from 'detect-browser';
2
+ import { ConfigType } from 'dayjs/esm';
3
+ export { Dayjs, default as dayjs } from 'dayjs/esm';
2
4
 
3
5
  /**
4
6
  * snake2Kebab
@@ -477,6 +479,20 @@ declare const filterObj: (obj: Record<string, any>, keys: string[], reverse?: bo
477
479
  [k: string]: any;
478
480
  };
479
481
 
482
+ /**
483
+ * 格式化时间
484
+ * @param {import('dayjs/esm').ConfigType} date 时间
485
+ * @param {string} format 格式
486
+ * @returns {string} 格式化后的时间
487
+ */
488
+ declare const dateFmt: (date: ConfigType, format?: string | 'date' | 'datetime') => string;
489
+ /**
490
+ * 格式化时间间隔
491
+ * @param {import('dayjs/esm').ConfigType} start 开始时间
492
+ * @param {import('dayjs/esm').ConfigType} end 结束时间
493
+ */
494
+ declare const dateDuration: (start: ConfigType, end: ConfigType) => string;
495
+
480
496
  /**
481
497
  * 是否有意义的值
482
498
  * @param val
@@ -556,4 +572,4 @@ declare const isValidArrRes: (res: Res<any[]>) => boolean;
556
572
  */
557
573
  declare const isValidPageRes: (res: PageRes) => boolean;
558
574
 
559
- export { NullOrUndefinable, Nullable, Numeric, PageRes, PageResData, Res, Undefinable, camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, filterObj, fixiOSInputAutoZoomIn, getHostEnv, hideCardNo, hideMiddle, hideName, hidePhone, hideThird, inBrowser, isArrStr, isDef, isEmail, isIdCard, isJSONStr, isNumeric, isPhone, isTel, isValidArrRes, isValidKey, isValidPageRes, isValidRes, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, replacer, reviver, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, userAgent, waitTime };
575
+ export { NullOrUndefinable, Nullable, Numeric, PageRes, PageResData, Res, Undefinable, camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, dateDuration, dateFmt, filterObj, fixiOSInputAutoZoomIn, getHostEnv, hideCardNo, hideMiddle, hideName, hidePhone, hideThird, inBrowser, isArrStr, isDef, isEmail, isIdCard, isJSONStr, isNumeric, isPhone, isTel, isValidArrRes, isValidKey, isValidPageRes, isValidRes, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, replacer, reviver, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, userAgent, waitTime };
package/dist/index.mjs CHANGED
@@ -1,4 +1,12 @@
1
1
  import { detect } from 'detect-browser';
2
+ import dayjs from 'dayjs/esm';
3
+ export { default as dayjs } from 'dayjs/esm';
4
+ import localeData from 'dayjs/esm/plugin/localeData';
5
+ import duration from 'dayjs/esm/plugin/duration';
6
+ import relativeTime from 'dayjs/esm/plugin/relativeTime';
7
+ import customParseFormat from 'dayjs/esm/plugin/customParseFormat';
8
+ import objectSupport from 'dayjs/esm/plugin/objectSupport';
9
+ import zhCN from 'dayjs/esm/locale/zh-cn';
2
10
 
3
11
  const snake2Kebab = (str) => str.replace(/_([a-z])/g, (_, letter) => `-${letter.toLowerCase()}`);
4
12
  const snake2Pascal = (str) => str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase()).replace(/^[a-z]/, (letter) => letter.toUpperCase());
@@ -230,4 +238,37 @@ const reviver = (_, value) => {
230
238
  };
231
239
  const filterObj = (obj, keys, reverse = false) => Object.fromEntries(Object.entries(obj).filter(([key]) => reverse ? !keys.includes(key) : keys.includes(key)));
232
240
 
233
- export { camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, filterObj, fixiOSInputAutoZoomIn, getHostEnv, hideCardNo, hideMiddle, hideName, hidePhone, hideThird, inBrowser, isArrStr, isDef, isEmail, isIdCard, isJSONStr, isNumeric, isPhone, isTel, isValidArrRes, isValidKey, isValidPageRes, isValidRes, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, replacer, reviver, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, userAgent, waitTime };
241
+ dayjs.extend(localeData).locale("zh-cn", zhCN);
242
+ dayjs.extend(duration);
243
+ dayjs.extend(relativeTime);
244
+ dayjs.extend(customParseFormat);
245
+ dayjs.extend(objectSupport);
246
+ const dateFmt = (date, format = "YYYY-MM-DD HH:mm:ss") => {
247
+ const dd = dayjs(date);
248
+ let fmt = format;
249
+ if (!isDef(date) || !dd.isValid())
250
+ return "";
251
+ if (format === "date")
252
+ fmt = "YYYY-MM-DD";
253
+ if (format === "datetime")
254
+ fmt = "YYYY-MM-DD HH:mm:ss";
255
+ return dd.format(fmt);
256
+ };
257
+ const dateDuration = (start, end) => {
258
+ const startDay = dayjs(start);
259
+ const endDay = dayjs(end);
260
+ if (!isDef(start) || !startDay.isValid() || !isDef(end) || !endDay.isValid())
261
+ return "";
262
+ const dd = dayjs.duration(endDay.diff(startDay));
263
+ const year = dd.years();
264
+ const month = dd.months();
265
+ const day = dd.days();
266
+ const format = [
267
+ year === 0 ? "" : "Y\u5E74",
268
+ month === 0 ? "" : "M\u4E2A\u6708",
269
+ day === 0 ? "" : `${day < 10 && (year !== 0 || month !== 0) ? "\u96F6" : ""}D\u5929`
270
+ ].join("");
271
+ return dd.format(format);
272
+ };
273
+
274
+ export { camel2Kebab, camel2Pascal, camel2Snake, camel2Title, checkImg, dateDuration, dateFmt, filterObj, fixiOSInputAutoZoomIn, getHostEnv, hideCardNo, hideMiddle, hideName, hidePhone, hideThird, inBrowser, isArrStr, isDef, isEmail, isIdCard, isJSONStr, isNumeric, isPhone, isTel, isValidArrRes, isValidKey, isValidPageRes, isValidRes, jClear, jDebug, jError, jGroup, jGroupC, jGroupE, jInfo, jLog, jTime, jTimeEnd, jWarn, kebab2Camel, kebab2Pascal, kebab2Snake, kebab2Title, nonASCII, parseToJSON, pascal2Camel, pascal2Kebab, pascal2Snake, pascal2Title, replacer, reviver, snake2Camel, snake2Kebab, snake2Pascal, snake2Title, title2Camel, title2Kebab, title2Pascal, title2Snake, userAgent, waitTime };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jhqn/utils-core",
3
3
  "type": "module",
4
- "version": "0.0.1-beta.20",
4
+ "version": "0.0.1-beta.21",
5
5
  "author": "jade-gjz <jiangang.zhang@jaderd.com>",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/jaderd-jh/utils/tree/main/packages/core#readme",
@@ -32,6 +32,7 @@
32
32
  "dist"
33
33
  ],
34
34
  "dependencies": {
35
+ "dayjs": "^1.11.9",
35
36
  "detect-browser": "^5.3.0"
36
37
  },
37
38
  "scripts": {