@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.
@@ -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};
@@ -0,0 +1,8 @@
1
+ declare const hexToRgb: (hex: string) => {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ };
6
+ declare const rgbToHex: (r: number, g: number, b: number) => string;
7
+ declare const randomHex: () => string;
8
+ export { hexToRgb, randomHex, rgbToHex };
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 };
@@ -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};
@@ -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};
@@ -0,0 +1,3 @@
1
+ declare const useOmitExtraParams: (sourceData: object, targetData: object) => Pick<object, never>;
2
+ declare const __: undefined;
3
+ export { __, useOmitExtraParams };
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};
@@ -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};
@@ -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.2",
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
- "dist"
9
+ "lib"
10
10
  ],
11
11
  "publishConfig": {
12
12
  "access": "public"