@semi-kit/utils 1.0.3 → 1.0.6
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 +0 -4
- package/lib/axios.mjs +1 -22
- package/lib/color.d.mts +0 -2
- package/lib/color.mjs +1 -14
- package/lib/datetime.d.mts +0 -3
- package/lib/datetime.mjs +1 -64
- package/lib/device.d.mts +0 -2
- package/lib/device.mjs +1 -9
- package/lib/extra.d.mts +0 -2
- package/lib/extra.mjs +1 -8
- package/lib/index.mjs +1 -9
- package/lib/localstorage.d.mts +0 -2
- package/lib/localstorage.mjs +1 -12
- package/lib/number.d.mts +0 -2
- package/lib/number.mjs +1 -9
- package/package.json +1 -1
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
|
|
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
|
-
|
|
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};
|
package/lib/datetime.d.mts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
package/lib/extra.mjs
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
import
|
|
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
|
|
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};
|
package/lib/localstorage.d.mts
CHANGED
|
@@ -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 };
|
package/lib/localstorage.mjs
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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};
|