@semi-kit/utils 1.0.3 → 1.0.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/lib/axios.d.mts CHANGED
@@ -1,7 +1,4 @@
1
1
  import { ParamsSerializerOptions } from "axios";
2
-
3
- //#region src/axios.d.ts
4
-
5
2
  /**
6
3
  * @description: 过滤请求参数:null undefined '' {} []
7
4
  * @param {object} data { name: 'Tom', age: null, link: '', address: undefined, items: [], info: {} }
@@ -14,5 +11,4 @@ declare const useOmitNilRequestParams: (data: object) => object;
14
11
  * @return {*}
15
12
  */
16
13
  declare const useParamsSerializer: () => ParamsSerializerOptions;
17
- //#endregion
18
14
  export { useOmitNilRequestParams, useParamsSerializer };
package/lib/axios.mjs CHANGED
@@ -1,22 +1 @@
1
- import { stringify } from "qs";
2
- import { isNil, omitBy } from "es-toolkit";
3
- import { isEmpty } from "es-toolkit/compat";
4
-
5
- //#region src/axios.ts
6
- /**
7
- * @description: 过滤请求参数:null undefined '' {} []
8
- * @param {object} data { name: 'Tom', age: null, link: '', address: undefined, items: [], info: {} }
9
- * @return {*} { name:'Tom' }
10
- */
11
- const useOmitNilRequestParams = (data) => omitBy(data, (e) => isNil(e) || e === "" || typeof e === "object" && isEmpty(e));
12
- /**
13
- * @description: Axios 参数序列化
14
- * @param {*} ParamsSerializerOptions
15
- * @return {*}
16
- */
17
- const useParamsSerializer = () => {
18
- return { serialize: (params) => stringify(params, { arrayFormat: "repeat" }) };
19
- };
20
-
21
- //#endregion
22
- export { useOmitNilRequestParams, useParamsSerializer };
1
+ import{stringify}from"qs";import{isNil,omitBy}from"es-toolkit";import{isEmpty}from"es-toolkit/compat";const useOmitNilRequestParams=e=>omitBy(e,e=>isNil(e)||e===``||typeof e==`object`&&isEmpty(e)),useParamsSerializer=()=>({serialize:a=>stringify(a,{arrayFormat:`repeat`})});export{useOmitNilRequestParams,useParamsSerializer};
package/lib/color.d.mts CHANGED
@@ -1,4 +1,3 @@
1
- //#region src/color.d.ts
2
1
  declare const hexToRgb: (hex: string) => {
3
2
  r: number;
4
3
  g: number;
@@ -6,5 +5,4 @@ declare const hexToRgb: (hex: string) => {
6
5
  };
7
6
  declare const rgbToHex: (r: number, g: number, b: number) => string;
8
7
  declare const randomHex: () => string;
9
- //#endregion
10
8
  export { hexToRgb, randomHex, rgbToHex };
package/lib/color.mjs CHANGED
@@ -1,14 +1 @@
1
- //#region src/color.ts
2
- const hexToRgb = (hex) => {
3
- const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
4
- return {
5
- r: parseInt(result?.[1] ?? "0", 16),
6
- g: parseInt(result?.[2] ?? "0", 16),
7
- b: parseInt(result?.[3] ?? "0", 16)
8
- };
9
- };
10
- const rgbToHex = (r, g, b) => `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;
11
- const randomHex = () => `#${Math.floor(Math.random() * 16777215).toString(16).padEnd(6, "0")}`;
12
-
13
- //#endregion
14
- export { hexToRgb, randomHex, rgbToHex };
1
+ const hexToRgb=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return{r:parseInt(t?.[1]??`0`,16),g:parseInt(t?.[2]??`0`,16),b:parseInt(t?.[3]??`0`,16)}},rgbToHex=(e,t,n)=>`#${((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1)}`,randomHex=()=>`#${Math.floor(Math.random()*16777215).toString(16).padEnd(6,`0`)}`;export{hexToRgb,randomHex,rgbToHex};
@@ -1,6 +1,4 @@
1
1
  import { DateLike } from "@vueuse/core";
2
-
3
- //#region src/datetime.d.ts
4
2
  interface FormatDateRangeParamsType {
5
3
  endTimeType?: "now" | "full";
6
4
  format?: string;
@@ -42,5 +40,4 @@ declare const useFormatDateRange: (day?: number, {
42
40
  endTimeType,
43
41
  format
44
42
  }?: FormatDateRangeParamsType) => string[];
45
- //#endregion
46
43
  export { FormatDateRangeParamsType, getDayOfYear, isWeekday, useFormatDate, useFormatDateRange, useFormatDateTimeParams, useFormatTime };
package/lib/datetime.mjs CHANGED
@@ -1,64 +1 @@
1
- import { useDateFormat } from "@vueuse/core";
2
-
3
- //#region src/datetime.ts
4
- const getDayOfYear = (date = /* @__PURE__ */ new Date()) => {
5
- if (!date) return;
6
- const startOfYear = new Date(new Date(date).getFullYear(), 0, 0);
7
- const diff = new Date(date).getTime() - startOfYear.getTime();
8
- return Math.floor(diff / (1e3 * 60 * 60 * 24));
9
- };
10
- const isWeekday = (date = /* @__PURE__ */ new Date()) => {
11
- const day = new Date(date).getDay();
12
- return day !== 0 && day !== 6;
13
- };
14
- /**
15
- * @description: 时间转换为标准时间
16
- * @param {*} name:时间戳
17
- * @param {*} type:生成时间格式
18
- * @return {*} 14:25:59
19
- */
20
- const useFormatTime = (time = /* @__PURE__ */ new Date(), type = "HH:mm:ss") => useDateFormat(time, type).value;
21
- /**
22
- * @description: 时间转换为标准日期
23
- * @param {*} name:时间
24
- * @param {*} type:生成时间格式
25
- * @return {*} 2022-11-09
26
- */
27
- const useFormatDate = (time = /* @__PURE__ */ new Date(), type = "YYYY-MM-DD") => useDateFormat(time, type).value;
28
- /**
29
- * @description: 日期时间 -> 日期时间请求参数
30
- * @param {string} timestamp:时间数据
31
- * @param {*} field:日期时间字段名称
32
- * @param {*} start:开始字段名称
33
- * @param {*} end:结束字段名称
34
- * @return {*}
35
- */
36
- const useFormatDateTimeParams = (timestamp, field = "timestamp", start = "startTime", end = "endTime") => {
37
- if (!timestamp) return;
38
- const [startTime, endTime] = timestamp;
39
- return {
40
- [field]: void 0,
41
- [start]: startTime,
42
- [end]: endTime
43
- };
44
- };
45
- /**
46
- * @description: 转换为标准时间范围
47
- * @param {*} day 往前推*天数
48
- * @param {FormatDateRangeParamsType}
49
- * @return {*}
50
- */
51
- const useFormatDateRange = (day = 7, { endTimeType, format } = {
52
- endTimeType: "full",
53
- format: "YYYY-MM-DD HH:mm:ss"
54
- }) => {
55
- const time = +new Date((/* @__PURE__ */ new Date()).toLocaleDateString());
56
- const startTime = time - 3600 * 1e3 * 24 * (day - 1);
57
- const endTime = endTimeType === "full" ? time + 1440 * 60 * 1e3 - 1 : /* @__PURE__ */ new Date();
58
- const start = useDateFormat(startTime, format);
59
- const end = useDateFormat(endTime, format);
60
- return [start.value, end.value];
61
- };
62
-
63
- //#endregion
64
- export { getDayOfYear, isWeekday, useFormatDate, useFormatDateRange, useFormatDateTimeParams, useFormatTime };
1
+ import{useDateFormat}from"@vueuse/core";const getDayOfYear=(e=new Date)=>{if(!e)return;let t=new Date(new Date(e).getFullYear(),0,0),n=new Date(e).getTime()-t.getTime();return Math.floor(n/(1e3*60*60*24))},isWeekday=(e=new Date)=>{let t=new Date(e).getDay();return t!==0&&t!==6},useFormatTime=(t=new Date,n=`HH:mm:ss`)=>useDateFormat(t,n).value,useFormatDate=(t=new Date,n=`YYYY-MM-DD`)=>useDateFormat(t,n).value,useFormatDateTimeParams=(e,t=`timestamp`,n=`startTime`,r=`endTime`)=>{if(!e)return;let[i,a]=e;return{[t]:void 0,[n]:i,[r]:a}},useFormatDateRange=(t=7,{endTimeType:n,format:r}={endTimeType:`full`,format:`YYYY-MM-DD HH:mm:ss`})=>{let i=+new Date(new Date().toLocaleDateString()),a=i-3600*1e3*24*(t-1),o=n===`full`?i+1440*60*1e3-1:new Date,s=useDateFormat(a,r),c=useDateFormat(o,r);return[s.value,c.value]};export{getDayOfYear,isWeekday,useFormatDate,useFormatDateRange,useFormatDateTimeParams,useFormatTime};
package/lib/device.d.mts CHANGED
@@ -1,8 +1,6 @@
1
- //#region src/device.d.ts
2
1
  declare const isAndroidMobile: () => boolean;
3
2
  declare const isAppleMobile: () => boolean;
4
3
  declare const isWeChatBrowser: () => boolean;
5
4
  declare const isQQBrowser: () => boolean;
6
5
  declare const isMobile: () => boolean;
7
- //#endregion
8
6
  export { isAndroidMobile, isAppleMobile, isMobile, isQQBrowser, isWeChatBrowser };
package/lib/device.mjs CHANGED
@@ -1,9 +1 @@
1
- //#region src/device.ts
2
- const isAndroidMobile = () => /android/i.test(navigator.userAgent.toLowerCase());
3
- const isAppleMobile = () => /iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase());
4
- const isWeChatBrowser = () => /MicroMessenger/i.test(navigator.userAgent);
5
- const isQQBrowser = () => /MQQBrowser/i.test(navigator.userAgent);
6
- const isMobile = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
7
-
8
- //#endregion
9
- export { isAndroidMobile, isAppleMobile, isMobile, isQQBrowser, isWeChatBrowser };
1
+ const isAndroidMobile=()=>/android/i.test(navigator.userAgent.toLowerCase()),isAppleMobile=()=>/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()),isWeChatBrowser=()=>/MicroMessenger/i.test(navigator.userAgent),isQQBrowser=()=>/MQQBrowser/i.test(navigator.userAgent),isMobile=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);export{isAndroidMobile,isAppleMobile,isMobile,isQQBrowser,isWeChatBrowser};
package/lib/extra.d.mts CHANGED
@@ -1,5 +1,3 @@
1
- //#region src/extra.d.ts
2
1
  declare const useOmitExtraParams: (sourceData: object, targetData: object) => Pick<object, never>;
3
2
  declare const __: undefined;
4
- //#endregion
5
3
  export { __, useOmitExtraParams };
package/lib/extra.mjs CHANGED
@@ -1,8 +1 @@
1
- import { pick } from "es-toolkit";
2
-
3
- //#region src/extra.ts
4
- const useOmitExtraParams = (sourceData, targetData) => pick(sourceData, Object.keys(targetData));
5
- const __ = void 0;
6
-
7
- //#endregion
8
- export { __, useOmitExtraParams };
1
+ import{pick}from"es-toolkit";const useOmitExtraParams=(t,n)=>pick(t,Object.keys(n)),__=void 0;export{__,useOmitExtraParams};
package/lib/index.mjs CHANGED
@@ -1,9 +1 @@
1
- import { useOmitNilRequestParams, useParamsSerializer } from "./axios.mjs";
2
- import { hexToRgb, randomHex, rgbToHex } from "./color.mjs";
3
- import { getDayOfYear, isWeekday, useFormatDate, useFormatDateRange, useFormatDateTimeParams, useFormatTime } from "./datetime.mjs";
4
- import { isAndroidMobile, isAppleMobile, isMobile, isQQBrowser, isWeChatBrowser } from "./device.mjs";
5
- import { __, useOmitExtraParams } from "./extra.mjs";
6
- import { clearLocalStorage, getLocalStorage, removeLocalStorage, setLocalStorage } from "./localstorage.mjs";
7
- import { formatNumberWithCommas, formatPhoneNumber, getRandomNum, isEven, maskedPhoneNumber } from "./number.mjs";
8
-
9
- export { __, clearLocalStorage, formatNumberWithCommas, formatPhoneNumber, getDayOfYear, getLocalStorage, getRandomNum, hexToRgb, isAndroidMobile, isAppleMobile, isEven, isMobile, isQQBrowser, isWeChatBrowser, isWeekday, maskedPhoneNumber, randomHex, removeLocalStorage, rgbToHex, setLocalStorage, useFormatDate, useFormatDateRange, useFormatDateTimeParams, useFormatTime, useOmitExtraParams, useOmitNilRequestParams, useParamsSerializer };
1
+ import{useOmitNilRequestParams,useParamsSerializer}from"./axios.mjs";import{hexToRgb,randomHex,rgbToHex}from"./color.mjs";import{getDayOfYear,isWeekday,useFormatDate,useFormatDateRange,useFormatDateTimeParams,useFormatTime}from"./datetime.mjs";import{isAndroidMobile,isAppleMobile,isMobile,isQQBrowser,isWeChatBrowser}from"./device.mjs";import{__,useOmitExtraParams}from"./extra.mjs";import{clearLocalStorage,getLocalStorage,removeLocalStorage,setLocalStorage}from"./localstorage.mjs";import{formatNumberWithCommas,formatPhoneNumber,getRandomNum,isEven,maskedPhoneNumber}from"./number.mjs";export{__,clearLocalStorage,formatNumberWithCommas,formatPhoneNumber,getDayOfYear,getLocalStorage,getRandomNum,hexToRgb,isAndroidMobile,isAppleMobile,isEven,isMobile,isQQBrowser,isWeChatBrowser,isWeekday,maskedPhoneNumber,randomHex,removeLocalStorage,rgbToHex,setLocalStorage,useFormatDate,useFormatDateRange,useFormatDateTimeParams,useFormatTime,useOmitExtraParams,useOmitNilRequestParams,useParamsSerializer};
@@ -1,7 +1,5 @@
1
- //#region src/localstorage.d.ts
2
1
  declare const setLocalStorage: (key: string, value: any) => void;
3
2
  declare const getLocalStorage: <T>(key: string) => T | null;
4
3
  declare const removeLocalStorage: (key: string) => void;
5
4
  declare const clearLocalStorage: () => void;
6
- //#endregion
7
5
  export { clearLocalStorage, getLocalStorage, removeLocalStorage, setLocalStorage };
@@ -1,12 +1 @@
1
- //#region src/localstorage.ts
2
- const setLocalStorage = (key, value) => localStorage.setItem(key, JSON.stringify(value));
3
- const getLocalStorage = (key) => {
4
- const data = localStorage.getItem(key);
5
- if (data) return JSON.parse(data);
6
- return null;
7
- };
8
- const removeLocalStorage = (key) => localStorage.removeItem(key);
9
- const clearLocalStorage = () => localStorage.clear();
10
-
11
- //#endregion
12
- export { clearLocalStorage, getLocalStorage, removeLocalStorage, setLocalStorage };
1
+ const setLocalStorage=(e,r)=>localStorage.setItem(e,JSON.stringify(r)),getLocalStorage=e=>{let r=localStorage.getItem(e);return r?JSON.parse(r):null},removeLocalStorage=e=>localStorage.removeItem(e),clearLocalStorage=()=>localStorage.clear();export{clearLocalStorage,getLocalStorage,removeLocalStorage,setLocalStorage};
package/lib/number.d.mts CHANGED
@@ -1,8 +1,6 @@
1
- //#region src/number.d.ts
2
1
  declare const formatNumberWithCommas: (val: number) => string;
3
2
  declare const getRandomNum: (min: number, max: number) => number;
4
3
  declare const maskedPhoneNumber: (phone: string | number) => string;
5
4
  declare const formatPhoneNumber: (phone: string, separator?: string) => string;
6
5
  declare const isEven: (val: number) => boolean;
7
- //#endregion
8
6
  export { formatNumberWithCommas, formatPhoneNumber, getRandomNum, isEven, maskedPhoneNumber };
package/lib/number.mjs CHANGED
@@ -1,9 +1 @@
1
- //#region src/number.ts
2
- const formatNumberWithCommas = (val) => val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
3
- const getRandomNum = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
4
- const maskedPhoneNumber = (phone) => phone?.toString()?.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
5
- const formatPhoneNumber = (phone, separator = "-") => phone.replace(/(\W|\s)/g, "").split(/^(\d{3})(\d{4})(\d{4})$/).filter((item) => item).join(separator);
6
- const isEven = (val) => val % 2 === 0;
7
-
8
- //#endregion
9
- export { formatNumberWithCommas, formatPhoneNumber, getRandomNum, isEven, maskedPhoneNumber };
1
+ const formatNumberWithCommas=e=>e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,`,`),getRandomNum=(e,i)=>Math.floor(Math.random()*(i-e+1))+e,maskedPhoneNumber=e=>e?.toString()?.replace(/(\d{3})\d{4}(\d{4})/,`$1****$2`),formatPhoneNumber=(e,i=`-`)=>e.replace(/(\W|\s)/g,``).split(/^(\d{3})(\d{4})(\d{4})$/).filter(e=>e).join(i),isEven=e=>e%2==0;export{formatNumberWithCommas,formatPhoneNumber,getRandomNum,isEven,maskedPhoneNumber};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semi-kit/utils",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "General-purpose tool function library",
5
5
  "type": "module",
6
6
  "license": "MIT",