@semi-kit/utils 1.0.2 → 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 +14 -0
- package/lib/axios.mjs +1 -0
- package/lib/color.d.mts +8 -0
- package/lib/color.mjs +1 -0
- package/lib/datetime.d.mts +43 -0
- package/lib/datetime.mjs +1 -0
- package/lib/device.d.mts +6 -0
- package/lib/device.mjs +1 -0
- package/lib/extra.d.mts +3 -0
- package/lib/extra.mjs +1 -0
- package/lib/index.d.mts +8 -0
- package/lib/index.mjs +1 -0
- package/lib/localstorage.d.mts +5 -0
- package/lib/localstorage.mjs +1 -0
- package/lib/number.d.mts +6 -0
- package/lib/number.mjs +1 -0
- package/package.json +2 -2
package/lib/axios.d.mts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ParamsSerializerOptions } from "axios";
|
|
2
|
+
/**
|
|
3
|
+
* @description: 过滤请求参数:null undefined '' {} []
|
|
4
|
+
* @param {object} data { name: 'Tom', age: null, link: '', address: undefined, items: [], info: {} }
|
|
5
|
+
* @return {*} { name:'Tom' }
|
|
6
|
+
*/
|
|
7
|
+
declare const useOmitNilRequestParams: (data: object) => object;
|
|
8
|
+
/**
|
|
9
|
+
* @description: Axios 参数序列化
|
|
10
|
+
* @param {*} ParamsSerializerOptions
|
|
11
|
+
* @return {*}
|
|
12
|
+
*/
|
|
13
|
+
declare const useParamsSerializer: () => ParamsSerializerOptions;
|
|
14
|
+
export { useOmitNilRequestParams, useParamsSerializer };
|
package/lib/axios.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
package/lib/color.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { DateLike } from "@vueuse/core";
|
|
2
|
+
interface FormatDateRangeParamsType {
|
|
3
|
+
endTimeType?: "now" | "full";
|
|
4
|
+
format?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const getDayOfYear: (date?: DateLike) => number | undefined;
|
|
7
|
+
declare const isWeekday: (date?: DateLike) => boolean;
|
|
8
|
+
/**
|
|
9
|
+
* @description: 时间转换为标准时间
|
|
10
|
+
* @param {*} name:时间戳
|
|
11
|
+
* @param {*} type:生成时间格式
|
|
12
|
+
* @return {*} 14:25:59
|
|
13
|
+
*/
|
|
14
|
+
declare const useFormatTime: (time?: DateLike, type?: string) => string;
|
|
15
|
+
/**
|
|
16
|
+
* @description: 时间转换为标准日期
|
|
17
|
+
* @param {*} name:时间
|
|
18
|
+
* @param {*} type:生成时间格式
|
|
19
|
+
* @return {*} 2022-11-09
|
|
20
|
+
*/
|
|
21
|
+
declare const useFormatDate: (time?: DateLike, type?: string) => string;
|
|
22
|
+
/**
|
|
23
|
+
* @description: 日期时间 -> 日期时间请求参数
|
|
24
|
+
* @param {string} timestamp:时间数据
|
|
25
|
+
* @param {*} field:日期时间字段名称
|
|
26
|
+
* @param {*} start:开始字段名称
|
|
27
|
+
* @param {*} end:结束字段名称
|
|
28
|
+
* @return {*}
|
|
29
|
+
*/
|
|
30
|
+
declare const useFormatDateTimeParams: (timestamp: string[] | null | undefined, field?: string, start?: string, end?: string) => {
|
|
31
|
+
[x: string]: string | undefined;
|
|
32
|
+
} | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* @description: 转换为标准时间范围
|
|
35
|
+
* @param {*} day 往前推*天数
|
|
36
|
+
* @param {FormatDateRangeParamsType}
|
|
37
|
+
* @return {*}
|
|
38
|
+
*/
|
|
39
|
+
declare const useFormatDateRange: (day?: number, {
|
|
40
|
+
endTimeType,
|
|
41
|
+
format
|
|
42
|
+
}?: FormatDateRangeParamsType) => string[];
|
|
43
|
+
export { FormatDateRangeParamsType, getDayOfYear, isWeekday, useFormatDate, useFormatDateRange, useFormatDateTimeParams, useFormatTime };
|
package/lib/datetime.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const isAndroidMobile: () => boolean;
|
|
2
|
+
declare const isAppleMobile: () => boolean;
|
|
3
|
+
declare const isWeChatBrowser: () => boolean;
|
|
4
|
+
declare const isQQBrowser: () => boolean;
|
|
5
|
+
declare const isMobile: () => boolean;
|
|
6
|
+
export { isAndroidMobile, isAppleMobile, isMobile, isQQBrowser, isWeChatBrowser };
|
package/lib/device.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
package/lib/extra.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pick}from"es-toolkit";const useOmitExtraParams=(t,n)=>pick(t,Object.keys(n)),__=void 0;export{__,useOmitExtraParams};
|
package/lib/index.d.mts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useOmitNilRequestParams, useParamsSerializer } from "./axios.mjs";
|
|
2
|
+
import { hexToRgb, randomHex, rgbToHex } from "./color.mjs";
|
|
3
|
+
import { FormatDateRangeParamsType, 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
|
+
export { FormatDateRangeParamsType, __, 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/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const setLocalStorage: (key: string, value: any) => void;
|
|
2
|
+
declare const getLocalStorage: <T>(key: string) => T | null;
|
|
3
|
+
declare const removeLocalStorage: (key: string) => void;
|
|
4
|
+
declare const clearLocalStorage: () => void;
|
|
5
|
+
export { clearLocalStorage, getLocalStorage, removeLocalStorage, setLocalStorage };
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const formatNumberWithCommas: (val: number) => string;
|
|
2
|
+
declare const getRandomNum: (min: number, max: number) => number;
|
|
3
|
+
declare const maskedPhoneNumber: (phone: string | number) => string;
|
|
4
|
+
declare const formatPhoneNumber: (phone: string, separator?: string) => string;
|
|
5
|
+
declare const isEven: (val: number) => boolean;
|
|
6
|
+
export { formatNumberWithCommas, formatPhoneNumber, getRandomNum, isEven, maskedPhoneNumber };
|
package/lib/number.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
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,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semi-kit/utils",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "General-purpose tool function library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "lijiaheng <jahnli@163.com>",
|
|
8
8
|
"files": [
|
|
9
|
-
"
|
|
9
|
+
"lib"
|
|
10
10
|
],
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|