@wyfex/iutils 0.25.0 → 0.35.0

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 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>Array.isArray(e),t=e=>e==null,n=e=>!t(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,r=e=>typeof e==`boolean`,i=e=>r(e)||e===`true`||e===`false`,a=n=>t(n)?!1:s(n)?n.trim().length>0:o(n)?!0:e(n)?n.length>0:l(n)?Object.keys(n).length>0:!1,o=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),s=e=>Object.prototype.toString.call(e)===`[object String]`,c=e=>o(e)||s(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),l=e=>Object.prototype.toString.call(e)===`[object Object]`,u=t=>!e(t)||t.length===0?!1:t.every(e=>l(e)),d=(t,n,r=`children`)=>{if(!e(t))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...t];let o=(t,n)=>{for(let a of n){if(a[i]===t)return a;let n=a[r];if(e(n)){let e=o(t,n);if(e)return e}}};return e(a)?a.map(e=>o(e,t)).filter(Boolean):o(a,t)},f=(t,n)=>{if(!e(t))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...t];let a=e=>t.findIndex(t=>t[r]===e);return e(i)?i.map(a):a(i)},p=(t,n,r)=>{if(!e(t))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...t];let o=t.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...t];let s=[...t],c=e(r)?r:[r];return s.splice(o+1,0,...c),s},m=(t,n,r=1)=>{if(!e(t))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...t];let o=t.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...t];let s=o+1;if(s>=t.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...t];let c=[...t];return c.splice(s,r),c},h=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},g=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},_=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},v=e=>l(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},y=t=>{if(!l(t))return{};let n={...t};for(let t in n){let r=n[t];if(t.includes(`,`)&&e(r)){let e=t.split(`,`),i=r;e.forEach((e,t)=>{n[e]=i[t]}),delete n[t]}}return n},b=(t,n)=>{if(!l(t))return{};let r=e(n)?n:[n],i={...t};return r.forEach(e=>{delete i[e]}),i},x=(t,n=`_`)=>{if(t==null)return t;if(e(t))return t.map(e=>x(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof t!=`object`||t instanceof Date||t instanceof RegExp)return t;let r={};for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let i=t[e];e.startsWith(n)||(r[e]=x(i,n))}return r},S=(e,t=[])=>{if(!l(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},C=(t,n=[])=>{if(!l(t))return t;let r={...t};return Object.keys(r).forEach(t=>{let i=r[t];n.includes(t)&&e(i)&&(r[t]=i.join(`,`))}),r},w=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e;exports.cleanObjectEmptyValues=v,exports.debounce=_,exports.expandCommaKeyObject=y,exports.findBy=d,exports.findIndexBy=f,exports.insertAfter=p,exports.isArray=e,exports.isArrayLike=n,exports.isBoolean=r,exports.isBooleanLike=i,exports.isEffectiveData=a,exports.isNil=t,exports.isNumber=o,exports.isNumberLike=c,exports.isObject=l,exports.isObjectArray=u,exports.isString=s,exports.omitObjectProps=b,exports.omitStartWithKeys=x,exports.parseStringFieldsToArray=S,exports.parseValue=w,exports.randomRgb=h,exports.randomRgba=g,exports.removeAfter=m,exports.stringifyArrayFields=C;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},s=e=>n(e)?!1:u(e)?e.trim().length>0:l(e)?!0:t(e)?e.length>0:f(e)?Object.keys(e).length>0:!1,c=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,l=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),u=e=>Object.prototype.toString.call(e)===`[object String]`,d=e=>l(e)||u(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),f=e=>Object.prototype.toString.call(e)===`[object Object]`,p=e=>!t(e)||e.length===0?!1:e.every(e=>f(e)),m=e=>u(e)||l(e)||i(e)||n(e),h=(e,n)=>{if(!p(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>m(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(p(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},g=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},_=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},v=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},y=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},b=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},x=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},S=(e,n=!0)=>{if(!e||!f(e)||t(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>`${n?r(e):e}:${t}`).join(`;`)},C=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:w(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:w(r,t,n)};function w(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var T=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],E=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of T)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},D=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},O=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},k=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),A=e=>f(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},j=e=>{if(!f(e))return{};let n={...e};for(let e in n){let r=n[e];if(e.includes(`,`)&&t(r)){let t=e.split(`,`),i=r;t.forEach((e,t)=>{n[e]=i[t]}),delete n[e]}}return n},M=(e,n)=>{if(!f(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},N=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>N(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=N(i,n))}return r},P=(e,t=[])=>{if(!f(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},F=(e,n=[])=>{if(!f(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},I=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e;exports.buildTree=e,exports.cleanObjectEmptyValues=A,exports.debounce=O,exports.desensitizePhone=D,exports.expandCommaKeyObject=j,exports.findBy=h,exports.findIndexBy=g,exports.flatTree=_,exports.formatThousand=k,exports.formatTime=C,exports.insertAfter=v,exports.isArray=t,exports.isArrayLike=r,exports.isBoolean=i,exports.isBooleanLike=a,exports.isDefaultFn=o,exports.isEffectiveData=s,exports.isFlatPrimArray=c,exports.isNil=n,exports.isNumber=l,exports.isNumberLike=d,exports.isObject=f,exports.isObjectArray=p,exports.isPrimitive=m,exports.isString=u,exports.objectToStyleString=S,exports.omitObjectProps=M,exports.omitStartWithKeys=N,exports.parseStringFieldsToArray=P,exports.parseValue=I,exports.randomRgb=b,exports.randomRgba=x,exports.removeAfter=y,exports.stringifyArrayFields=F,exports.timeGreetings=E;
@@ -1 +1 @@
1
- var WyfeX_IUtils=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>n(e)?!1:c(e)?e.trim().length>0:s(e)?!0:t(e)?e.length>0:u(e)?Object.keys(e).length>0:!1,s=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),c=e=>Object.prototype.toString.call(e)===`[object String]`,l=e=>s(e)||c(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),u=e=>Object.prototype.toString.call(e)===`[object Object]`,d=e=>!t(e)||e.length===0?!1:e.every(e=>u(e)),f=(e,n,r=`children`)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=(e,n)=>{for(let a of n){if(a[i]===e)return a;let n=a[r];if(t(n)){let t=o(e,n);if(t)return t}}};return t(a)?a.map(t=>o(t,e)).filter(Boolean):o(a,e)},p=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},m=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},h=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},g=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},_=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},v=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},y=e=>u(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},b=e=>{if(!u(e))return{};let n={...e};for(let e in n){let r=n[e];if(e.includes(`,`)&&t(r)){let t=e.split(`,`),i=r;t.forEach((e,t)=>{n[e]=i[t]}),delete n[e]}}return n},x=(e,n)=>{if(!u(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},S=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>S(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=S(i,n))}return r};return e.cleanObjectEmptyValues=y,e.debounce=v,e.expandCommaKeyObject=b,e.findBy=f,e.findIndexBy=p,e.insertAfter=m,e.isArray=t,e.isArrayLike=r,e.isBoolean=i,e.isBooleanLike=a,e.isEffectiveData=o,e.isNil=n,e.isNumber=s,e.isNumberLike=l,e.isObject=u,e.isObjectArray=d,e.isString=c,e.omitObjectProps=x,e.omitStartWithKeys=S,e.parseStringFieldsToArray=(e,t=[])=>{if(!u(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},e.parseValue=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,e.randomRgb=g,e.randomRgba=_,e.removeAfter=h,e.stringifyArrayFields=(e,n=[])=>{if(!u(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},e})({});
1
+ var WyfeX_IUtils=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},n=e=>Array.isArray(e),r=e=>e==null,i=e=>!r(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,a=e=>typeof e==`boolean`,o=e=>a(e)||e===`true`||e===`false`,s=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},c=e=>r(e)?!1:d(e)?e.trim().length>0:u(e)?!0:n(e)?e.length>0:p(e)?Object.keys(e).length>0:!1,l=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,u=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),d=e=>Object.prototype.toString.call(e)===`[object String]`,f=e=>u(e)||d(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),p=e=>Object.prototype.toString.call(e)===`[object Object]`,m=e=>!n(e)||e.length===0?!1:e.every(e=>p(e)),h=e=>d(e)||u(e)||a(e)||r(e),g=(e,t)=>{if(!m(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=t;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>h(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(m(t)){let n=s(e,t);if(n)return n}}};return n(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},_=(e,t)=>{if(!n(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(t)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return n(i)?i.map(a):a(i)},v=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},y=(e,t,r)=>{if(!n(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(t)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=n(r)?r:[r];return s.splice(o+1,0,...c),s},b=(e,t,r=1)=>{if(!n(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(t)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},x=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},S=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},C=(e,t=!0)=>{if(!e||!p(e)||n(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,n])=>`${t?r(e):e}:${n}`).join(`;`)},w=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:T(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:T(r,t,n)};function T(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var E=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],D=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of E)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},O=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},k=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},A=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),j=e=>p(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},M=e=>{if(!p(e))return{};let t={...e};for(let e in t){let r=t[e];if(e.includes(`,`)&&n(r)){let n=e.split(`,`),i=r;n.forEach((e,n)=>{t[e]=i[n]}),delete t[e]}}return t},N=(e,t)=>{if(!p(e))return{};let r=n(t)?t:[t],i={...e};return r.forEach(e=>{delete i[e]}),i},P=(e,t=`_`)=>{if(e==null)return e;if(n(e))return e.map(e=>P(e,t)).filter(e=>typeof e==`string`?!e.startsWith(t):typeof e==`number`?!String(e).startsWith(t):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n];n.startsWith(t)||(r[n]=P(i,t))}return r};return e.buildTree=t,e.cleanObjectEmptyValues=j,e.debounce=k,e.desensitizePhone=O,e.expandCommaKeyObject=M,e.findBy=g,e.findIndexBy=_,e.flatTree=v,e.formatThousand=A,e.formatTime=w,e.insertAfter=y,e.isArray=n,e.isArrayLike=i,e.isBoolean=a,e.isBooleanLike=o,e.isDefaultFn=s,e.isEffectiveData=c,e.isFlatPrimArray=l,e.isNil=r,e.isNumber=u,e.isNumberLike=f,e.isObject=p,e.isObjectArray=m,e.isPrimitive=h,e.isString=d,e.objectToStyleString=C,e.omitObjectProps=N,e.omitStartWithKeys=P,e.parseStringFieldsToArray=(e,t=[])=>{if(!p(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},e.parseValue=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e,e.randomRgb=x,e.randomRgba=S,e.removeAfter=b,e.stringifyArrayFields=(e,t=[])=>{if(!p(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];t.includes(e)&&n(i)&&(r[e]=i.join(`,`))}),r},e.timeGreetings=D,e})({});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var e=e=>Array.isArray(e),t=e=>e==null,n=e=>!t(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,r=e=>typeof e==`boolean`,i=e=>r(e)||e===`true`||e===`false`,a=n=>t(n)?!1:s(n)?n.trim().length>0:o(n)?!0:e(n)?n.length>0:l(n)?Object.keys(n).length>0:!1,o=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),s=e=>Object.prototype.toString.call(e)===`[object String]`,c=e=>o(e)||s(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),l=e=>Object.prototype.toString.call(e)===`[object Object]`,u=t=>!e(t)||t.length===0?!1:t.every(e=>l(e)),d=(t,n,r=`children`)=>{if(!e(t))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...t];let o=(t,n)=>{for(let a of n){if(a[i]===t)return a;let n=a[r];if(e(n)){let e=o(t,n);if(e)return e}}};return e(a)?a.map(e=>o(e,t)).filter(Boolean):o(a,t)},f=(t,n)=>{if(!e(t))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...t];let a=e=>t.findIndex(t=>t[r]===e);return e(i)?i.map(a):a(i)},p=(t,n,r)=>{if(!e(t))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...t];let o=t.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...t];let s=[...t],c=e(r)?r:[r];return s.splice(o+1,0,...c),s},m=(t,n,r=1)=>{if(!e(t))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...t];let o=t.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...t];let s=o+1;if(s>=t.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...t];let c=[...t];return c.splice(s,r),c},h=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},g=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},_=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},v=e=>l(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},y=t=>{if(!l(t))return{};let n={...t};for(let t in n){let r=n[t];if(t.includes(`,`)&&e(r)){let e=t.split(`,`),i=r;e.forEach((e,t)=>{n[e]=i[t]}),delete n[t]}}return n},b=(t,n)=>{if(!l(t))return{};let r=e(n)?n:[n],i={...t};return r.forEach(e=>{delete i[e]}),i},x=(t,n=`_`)=>{if(t==null)return t;if(e(t))return t.map(e=>x(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof t!=`object`||t instanceof Date||t instanceof RegExp)return t;let r={};for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let i=t[e];e.startsWith(n)||(r[e]=x(i,n))}return r},S=(e,t=[])=>{if(!l(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},C=(t,n=[])=>{if(!l(t))return t;let r={...t};return Object.keys(r).forEach(t=>{let i=r[t];n.includes(t)&&e(i)&&(r[t]=i.join(`,`))}),r},w=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e;export{v as cleanObjectEmptyValues,_ as debounce,y as expandCommaKeyObject,d as findBy,f as findIndexBy,p as insertAfter,e as isArray,n as isArrayLike,r as isBoolean,i as isBooleanLike,a as isEffectiveData,t as isNil,o as isNumber,c as isNumberLike,l as isObject,u as isObjectArray,s as isString,b as omitObjectProps,x as omitStartWithKeys,S as parseStringFieldsToArray,w as parseValue,h as randomRgb,g as randomRgba,m as removeAfter,C as stringifyArrayFields};
1
+ var e=(e,t={})=>{let{mode:n=`level`,idKey:r=`id`,parentIdKey:i=`parentId`,levelKey:a=`level`,childrenKey:o=`children`}=t;if(!Array.isArray(e)||e.length===0)return[];let s=e.map(e=>({...e})),c=[];if(n===`level`){let e=new Map;return s.forEach(t=>{let n=t[a];if(typeof n!=`number`)return;if(n===0){c.push(t),e.set(n,t);return}let r=e.get(n-1);r&&(r[o]||=[],r[o].push(t),e.set(n,t))}),c}if(n===`parentId`){let e=new Map;return s.forEach(t=>e.set(t[r],t)),s.forEach(t=>{let n=t[i];if(n==null||n===0){c.push(t);return}let r=e.get(n);r&&(r[o]||=[],r[o].push(t))}),c}return c},t=e=>Array.isArray(e),n=e=>e==null,r=e=>!n(e)&&typeof e==`object`&&typeof e.length==`number`&&typeof e!=`function`,i=e=>typeof e==`boolean`,a=e=>i(e)||e===`true`||e===`false`,o=e=>{if(typeof e!=`function`)return!1;let t=e.toString().replace(/\s/g,``);return[`()=>{}`,`function(){}`,`async()=>{}`,`asyncfunction(){}`].includes(t)},s=e=>n(e)?!1:u(e)?e.trim().length>0:l(e)?!0:t(e)?e.length>0:f(e)?Object.keys(e).length>0:!1,c=(e,t=!0)=>Array.isArray(e)?e.length?e.every(e=>{let t=typeof e;return!!([`string`,`number`,`boolean`,`symbol`,`bigint`,`undefined`].includes(t)||e===null)}):t:!1,l=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),u=e=>Object.prototype.toString.call(e)===`[object String]`,d=e=>l(e)||u(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),f=e=>Object.prototype.toString.call(e)===`[object Object]`,p=e=>!t(e)||e.length===0?!1:e.every(e=>f(e)),m=e=>u(e)||l(e)||i(e)||n(e),h=(e,n)=>{if(!p(e))throw TypeError(`array 必须是一个对象数组`);let{key:r,value:i,childrenKey:a=`children`}=n;if(!r){console.error(`findBy:key 不能为空`);return}let o=e=>m(e)?String(e):e,s=(e,t)=>{let n=o(e);for(let i of t){if(o(i[r])===n)return i;let t=i[a];if(p(t)){let n=s(e,t);if(n)return n}}};return t(i)?i.map(t=>s(t,e)).filter(Boolean):s(i,e)},g=(e,n)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[r,i]=Object.entries(n)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=t=>e.findIndex(e=>e[r]===t);return t(i)?i.map(a):a(i)},_=(e,t={})=>{let{childrenKey:n=`children`,keepChildren:r=!1}=t,i=[],a=e=>{let t={...e},o=t[n]||[];r||delete t[n],i.push(t),Array.isArray(o)&&o.length&&o.forEach(e=>a(e))};return e.forEach(e=>a(e)),i},v=(e,n,r)=>{if(!t(e))throw TypeError(`array 必须是一个数组`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效的键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=[...e],c=t(r)?r:[r];return s.splice(o+1,0,...c),s},y=(e,n,r=1)=>{if(!t(e))throw TypeError(`array must be an array`);let[i,a]=Object.entries(n)[0]??[];if(!i||a===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let o=e.findIndex(e=>e[i]===a);if(o===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let s=o+1;if(s>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let c=[...e];return c.splice(s,r),c},b=()=>{let e=()=>Math.floor(Math.random()*255);return`rgb(${e()}, ${e()}, ${e()})`},x=(e=1)=>{let t=()=>Math.floor(Math.random()*255);return`rgba(${t()}, ${t()}, ${t()}, ${e})`},S=(e,n=!0)=>{if(!e||!f(e)||t(e))return``;let r=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();return Object.entries(e).filter(([,e])=>e!=null&&e!==``).map(([e,t])=>`${n?r(e):e}:${t}`).join(`;`)},C=(e,t=`{y}-{m}-{d} {h}:{i}:{s}`,n=!0)=>{if(e==null||e===``)return null;let r;if(e instanceof Date)r=e;else{let i;if(typeof e==`string`){let a=e.trim();if(/^\d+$/.test(a))i=parseInt(a,10);else{let e=a.replace(/-/g,`/`);return r=new Date(e),isNaN(r.getTime())?null:w(r,t,n)}}else i=e;i.toString().length===10&&(i*=1e3),r=new Date(i)}return isNaN(r.getTime())?null:w(r,t,n)};function w(e,t,n){let r=e.getFullYear(),i=e.getMonth()+1,a=e.getDate(),o=e.getHours(),s=e.getMinutes(),c=e.getSeconds(),l=e.getDay(),u={y:r.toString(),m:n?i.toString().padStart(2,`0`):i.toString(),d:n?a.toString().padStart(2,`0`):a.toString(),h:n?o.toString().padStart(2,`0`):o.toString(),i:n?s.toString().padStart(2,`0`):s.toString(),s:n?c.toString().padStart(2,`0`):c.toString(),a:[`日`,`一`,`二`,`三`,`四`,`五`,`六`][l]};return t.replace(/{([ymdhisa])}/g,(e,t)=>u[t])}var T=[{start:0,end:5,greeting:`凌晨好`},{start:6,end:8,greeting:`早上好`},{start:9,end:10,greeting:`上午好`},{start:11,end:12,greeting:`中午好`},{start:13,end:16,greeting:`下午好`},{start:17,end:18,greeting:`傍晚好`},{start:19,end:23,greeting:`晚上好`}],E=e=>{let t;if(e===void 0)t=new Date().getHours();else if(e instanceof Date)t=e.getHours();else{let n=e;t=n>=0&&n<=23?n:new Date(n).getHours()}for(let e of T)if(t>=e.start&&t<=e.end)return e.greeting;return`您好`},D=e=>{if(typeof e!=`string`)return e;let t=e.trim();if(/^\d{11}$/.test(t))return t.slice(0,3)+`****`+t.slice(7);let n=t.match(/^(\d+)-(\d+)$/);if(n){let[,e,r]=n;if(r.length<=2)return t;let i=r[0],a=r.at(-1);return`${e}-${i}${`*`.repeat(r.length-2)}${a}`}return t},O=(e,t=300,n=!1)=>{let r=null,i,a=function(...a){return r&&clearTimeout(r),n&&!r&&(i=e.apply(this,a)),r=setTimeout(()=>{n||e.apply(this,a),r=null},t),i};return a.cancel=()=>{r&&=(clearTimeout(r),null)},a.flush=()=>(a.cancel(),i),a.isPending=()=>r!==null,a},k=e=>e==null||Number.isNaN(e)?``:String(e).trim().replace(/^(-?\d+)(\.\d+)?$/,(e,t,n=``)=>t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`)+n),A=e=>f(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},j=e=>{if(!f(e))return{};let n={...e};for(let e in n){let r=n[e];if(e.includes(`,`)&&t(r)){let t=e.split(`,`),i=r;t.forEach((e,t)=>{n[e]=i[t]}),delete n[e]}}return n},M=(e,n)=>{if(!f(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},N=(e,n=`_`)=>{if(e==null)return e;if(t(e))return e.map(e=>N(e,n)).filter(e=>typeof e==`string`?!e.startsWith(n):typeof e==`number`?!String(e).startsWith(n):!0);if(typeof e!=`object`||e instanceof Date||e instanceof RegExp)return e;let r={};for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let i=e[t];t.startsWith(n)||(r[t]=N(i,n))}return r},P=(e,t=[])=>{if(!f(e))return e;let n={...e};return t.forEach(e=>{if(!Object.prototype.hasOwnProperty.call(n,e))return;let t=n[e];if(typeof t==`string`){n[e]=t.split(`,`).map(e=>e.trim()).filter(Boolean);return}n[e]=t==null?[]:[t]}),n},F=(e,n=[])=>{if(!f(e))return e;let r={...e};return Object.keys(r).forEach(e=>{let i=r[e];n.includes(e)&&t(i)&&(r[e]=i.join(`,`))}),r},I=e=>e===`null`||e===`undefined`||e===``?null:e===`true`?!0:e===`false`?!1:typeof e==`string`&&/^-?(0|[1-9]\d*)(\.\d+)?$/.test(e)?Number(e):e;export{e as buildTree,A as cleanObjectEmptyValues,O as debounce,D as desensitizePhone,j as expandCommaKeyObject,h as findBy,g as findIndexBy,_ as flatTree,k as formatThousand,C as formatTime,v as insertAfter,t as isArray,r as isArrayLike,i as isBoolean,a as isBooleanLike,o as isDefaultFn,s as isEffectiveData,c as isFlatPrimArray,n as isNil,l as isNumber,d as isNumberLike,f as isObject,p as isObjectArray,m as isPrimitive,u as isString,S as objectToStyleString,M as omitObjectProps,N as omitStartWithKeys,P as parseStringFieldsToArray,I as parseValue,b as randomRgb,x as randomRgba,y as removeAfter,F as stringifyArrayFields,E as timeGreetings};
@@ -1,6 +1,10 @@
1
1
  export * from './modules/array';
2
2
  export * from './modules/color';
3
+ export * from './modules/convert';
4
+ export * from './modules/date';
5
+ export * from './modules/desensitize';
3
6
  export * from './modules/function';
7
+ export * from './modules/number';
4
8
  export * from './modules/object';
5
9
  export * from './modules/parse';
6
10
  export * from './modules/type';
@@ -0,0 +1,7 @@
1
+ export declare const buildTree: <T extends Record<string, any>>(data: T[], options?: {
2
+ mode?: "parentId" | "level";
3
+ idKey?: string;
4
+ parentIdKey?: string;
5
+ levelKey?: string;
6
+ childrenKey?: string;
7
+ }) => T[];
@@ -1,3 +1,5 @@
1
- export declare const findBy: <T extends Record<string, unknown> & {
2
- children?: T[];
3
- }>(array: unknown, target: Partial<T>, childrenKey?: string) => T | T[] | undefined;
1
+ export declare const findBy: <T extends Record<string, any>>(array: unknown, options: {
2
+ key: keyof T;
3
+ value: T[keyof T] | T[keyof T][];
4
+ childrenKey?: keyof T;
5
+ }) => T | T[] | undefined;
@@ -0,0 +1,4 @@
1
+ export declare const flatTree: <T extends Record<string, any>>(tree: T[], options?: {
2
+ childrenKey?: string;
3
+ keepChildren?: boolean;
4
+ }) => T[];
@@ -1,4 +1,6 @@
1
+ export * from './buildTree';
1
2
  export * from './findBy';
2
3
  export * from './findIndexBy';
4
+ export * from './flatTree';
3
5
  export * from './insertAfter';
4
6
  export * from './removeAfter';
@@ -0,0 +1 @@
1
+ export * from './objectToStyleString';
@@ -0,0 +1 @@
1
+ export declare const objectToStyleString: (styles: unknown, kebabCase?: boolean) => string;
@@ -0,0 +1 @@
1
+ export declare const formatTime: (time: string | number | Date | null | undefined, format?: string, padZero?: boolean) => string | null;
@@ -0,0 +1,2 @@
1
+ export * from './formatTime';
2
+ export * from './timeGreetings';
@@ -0,0 +1 @@
1
+ export declare const timeGreetings: (time?: Date | number) => string;
@@ -0,0 +1 @@
1
+ export declare const desensitizePhone: (str: unknown) => string | unknown;
@@ -0,0 +1 @@
1
+ export * from './desensitizePhone';
@@ -0,0 +1 @@
1
+ export declare const formatThousand: (num: unknown) => string;
@@ -0,0 +1 @@
1
+ export * from './formatThousand';
@@ -2,10 +2,13 @@ export * from './isArray';
2
2
  export * from './isArrayLike';
3
3
  export * from './isBoolean';
4
4
  export * from './isBooleanLike';
5
+ export * from './isDefaultFn';
5
6
  export * from './isEffectiveData';
7
+ export * from './isFlatPrimArray';
6
8
  export * from './isNil';
7
9
  export * from './isNumber';
8
10
  export * from './isNumberLike';
9
11
  export * from './isObject';
10
12
  export * from './isObjectArray';
13
+ export * from './isPrimitive';
11
14
  export * from './isString';
@@ -0,0 +1 @@
1
+ export declare const isDefaultFn: (fn: unknown) => boolean;
@@ -0,0 +1 @@
1
+ export declare const isFlatPrimArray: (val: unknown, strict?: boolean) => val is (string | number | boolean | null | undefined | symbol | bigint)[];
@@ -0,0 +1 @@
1
+ export declare const isPrimitive: (v: unknown) => v is string | number | boolean | null | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wyfex/iutils",
3
- "version": "0.25.0",
3
+ "version": "0.35.0",
4
4
  "description": "万有前端 X 体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库",
5
5
  "homepage": "https://wyfe.top/idocs/iutils",
6
6
  "type": "module",