@wyfex/iutils 0.15.0 → 0.25.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/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # wyfex-iutils
2
2
 
3
- 万有前端体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库
3
+ 万有前端 X 体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库
4
4
 
5
5
  ## 文档地址
6
- > https://wyfe.top/idoc/iutils
6
+ > https://wyfe.top/idocs/iutils
7
7
 
8
8
  ## npm下载(支持pnpm/yarn/cnpm/npm)
9
9
  ```shell
@@ -11,7 +11,8 @@ $ pnpm i @wyfex/iutils
11
11
  ```
12
12
 
13
13
  ## 版本号规则
14
- + 仅升级组件库依赖(升级vite、typescript其一或全部),修改第1位。eg:1.x.x;
14
+ + 仅升级工具库依赖(vite版本满足如下要求),修改第1位。eg:1.x.x;
15
+ > @wyfex/iutils0.x.x对应于vite8.0.x,当vite升级到8.1.x时@wyfex/iutils升级为1.x.x,以此类推。
15
16
  + 仅新增工具函数,修改第2位。eg:x.6.x;
16
17
  + 仅修复、优化现有工具函数,修改第3位。eg:x.x.1;
17
18
  + 以上3项都有变更或部分有变更则按照对应变更修改对应版本号位置;
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=e=>Array.isArray(e),t=(t,n,r,i=`find`)=>{if(!e(t))return;let a=e=>i===`find`?t.find(t=>t[n]===e)??void 0:t.findIndex(t=>t[n]===e);return e(r)?r.map(a):a(r)},n=(t,n,r)=>{if(!e(t))return[...t];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},r=(e,t,n=1)=>{let[r,i]=Object.entries(t)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=e.findIndex(e=>e[r]===i);if(a===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let o=a+1;if(o>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let s=[...e];return s.splice(o,n),s},i=e=>Object.prototype.toString.call(e)===`[object Object]`,a=e=>i(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},o=t=>{if(!i(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},s=(t,n)=>{if(!i(t))return{};let r=e(n)?n:[n],a={...t};return r.forEach(e=>{delete a[e]}),a},c=(e,t=[])=>{if(!i(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},l=(t,n=[])=>{if(!i(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},u=e=>typeof e==`boolean`,d=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),f=e=>Object.prototype.toString.call(e)===`[object String]`,p=e=>d(e)||f(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),m=t=>!e(t)||t.length===0?!1:t.every(e=>i(e));exports.cleanObjectEmptyValues=a,exports.expandCommaKeyObject=o,exports.findByKey=t,exports.insertItemsAfterTarget=n,exports.isArray=e,exports.isBoolean=u,exports.isNumber=d,exports.isNumberLike=p,exports.isObject=i,exports.isObjectArray=m,exports.isString=f,exports.omitObjectProps=s,exports.parseStringFieldsToArray=c,exports.removeItemsAfterTarget=r,exports.stringifyArrayFields=l;
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 +1 @@
1
- var WyfeIutils=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=e=>Array.isArray(e),n=(e,n,r,i=`find`)=>{if(!t(e))return;let a=t=>i===`find`?e.find(e=>e[n]===t)??void 0:e.findIndex(e=>e[n]===t);return t(r)?r.map(a):a(r)},r=(e,n,r)=>{if(!t(e))return[...e];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},i=(e,t,n=1)=>{let[r,i]=Object.entries(t)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=e.findIndex(e=>e[r]===i);if(a===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let o=a+1;if(o>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let s=[...e];return s.splice(o,n),s},a=e=>Object.prototype.toString.call(e)===`[object Object]`,o=e=>a(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},s=e=>{if(!a(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},c=(e,n)=>{if(!a(e))return{};let r=t(n)?n:[n],i={...e};return r.forEach(e=>{delete i[e]}),i},l=(e,t=[])=>{if(!a(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},u=(e,n=[])=>{if(!a(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},d=e=>typeof e==`boolean`,f=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),p=e=>Object.prototype.toString.call(e)===`[object String]`;return e.cleanObjectEmptyValues=o,e.expandCommaKeyObject=s,e.findByKey=n,e.insertItemsAfterTarget=r,e.isArray=t,e.isBoolean=d,e.isNumber=f,e.isNumberLike=e=>f(e)||p(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),e.isObject=a,e.isObjectArray=e=>!t(e)||e.length===0?!1:e.every(e=>a(e)),e.isString=p,e.omitObjectProps=c,e.parseStringFieldsToArray=l,e.removeItemsAfterTarget=i,e.stringifyArrayFields=u,e})({});
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})({});
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var e=e=>Array.isArray(e),t=(t,n,r,i=`find`)=>{if(!e(t))return;let a=e=>i===`find`?t.find(t=>t[n]===e)??void 0:t.findIndex(t=>t[n]===e);return e(r)?r.map(a):a(r)},n=(t,n,r)=>{if(!e(t))return[...t];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},r=(e,t,n=1)=>{let[r,i]=Object.entries(t)[0]??[];if(!r||i===void 0)return console.error(`target 必须传入有效键值对,格式示例:{ id: 1 }`),[...e];let a=e.findIndex(e=>e[r]===i);if(a===-1)return console.error(`在数组中未找到匹配的目标元素`),[...e];let o=a+1;if(o>=e.length)return console.error(`目标元素已是数组最后一项,无后续数据可删除`),[...e];let s=[...e];return s.splice(o,n),s},i=e=>Object.prototype.toString.call(e)===`[object Object]`,a=e=>i(e)?Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null)):{},o=t=>{if(!i(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},s=(t,n)=>{if(!i(t))return{};let r=e(n)?n:[n],a={...t};return r.forEach(e=>{delete a[e]}),a},c=(e,t=[])=>{if(!i(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},l=(t,n=[])=>{if(!i(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},u=e=>typeof e==`boolean`,d=e=>Object.prototype.toString.call(e)===`[object Number]`&&Number.isFinite(e),f=e=>Object.prototype.toString.call(e)===`[object String]`,p=e=>d(e)||f(e)&&e.trim()!==``&&!Number.isNaN(Number(e)),m=t=>!e(t)||t.length===0?!1:t.every(e=>i(e));export{a as cleanObjectEmptyValues,o as expandCommaKeyObject,t as findByKey,n as insertItemsAfterTarget,e as isArray,u as isBoolean,d as isNumber,p as isNumberLike,i as isObject,m as isObjectArray,f as isString,s as omitObjectProps,c as parseStringFieldsToArray,r as removeItemsAfterTarget,l as stringifyArrayFields};
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,3 +1,6 @@
1
1
  export * from './modules/array';
2
+ export * from './modules/color';
3
+ export * from './modules/function';
2
4
  export * from './modules/object';
5
+ export * from './modules/parse';
3
6
  export * from './modules/type';
@@ -0,0 +1,3 @@
1
+ export declare const findBy: <T extends Record<string, unknown> & {
2
+ children?: T[];
3
+ }>(array: unknown, target: Partial<T>, childrenKey?: string) => T | T[] | undefined;
@@ -0,0 +1 @@
1
+ export declare const findIndexBy: <T extends Record<string, unknown>>(array: unknown, target: Partial<T>) => number | number[];
@@ -1,3 +1,4 @@
1
- export * from './findByKey';
2
- export * from './insertItemsAfterTarget';
3
- export * from './removeItemsAfterTarget ';
1
+ export * from './findBy';
2
+ export * from './findIndexBy';
3
+ export * from './insertAfter';
4
+ export * from './removeAfter';
@@ -0,0 +1 @@
1
+ export declare const insertAfter: <T extends Record<string, unknown>>(array: unknown, target: Partial<T>, newData: T | Partial<T> | (T | Partial<T>)[]) => T[];
@@ -0,0 +1 @@
1
+ export declare const removeAfter: <T extends Record<string, unknown>>(array: unknown, target: Partial<T>, deleteCount?: number) => T[];
@@ -0,0 +1,2 @@
1
+ export * from './randomRgb';
2
+ export * from './randomRgba';
@@ -0,0 +1 @@
1
+ export declare const randomRgb: () => string;
@@ -0,0 +1 @@
1
+ export declare const randomRgba: (alpha?: number) => string;
@@ -0,0 +1,6 @@
1
+ export declare const debounce: <T extends (...args: any[]) => any>(fn: T, delay?: number, immediate?: boolean) => {
2
+ (...args: Parameters<T>): ReturnType<T> | undefined;
3
+ cancel: () => void;
4
+ flush: () => ReturnType<T> | undefined;
5
+ isPending: () => boolean;
6
+ };
@@ -0,0 +1 @@
1
+ export * from './debounce';
@@ -1,5 +1,6 @@
1
1
  export * from './cleanObjectEmptyValues';
2
2
  export * from './expandCommaKeyObject';
3
3
  export * from './omitObjectProps';
4
+ export * from './omitStartWithKeys';
4
5
  export * from './parseStringFieldsToArray';
5
6
  export * from './stringifyArrayFields';
@@ -0,0 +1 @@
1
+ export declare const omitStartWithKeys: <T = any>(data: T, prefix?: string) => T;
@@ -0,0 +1 @@
1
+ export * from './parseValue';
@@ -0,0 +1 @@
1
+ export declare const parseValue: (v: unknown) => unknown;
@@ -1,5 +1,9 @@
1
1
  export * from './isArray';
2
+ export * from './isArrayLike';
2
3
  export * from './isBoolean';
4
+ export * from './isBooleanLike';
5
+ export * from './isEffectiveData';
6
+ export * from './isNil';
3
7
  export * from './isNumber';
4
8
  export * from './isNumberLike';
5
9
  export * from './isObject';
@@ -0,0 +1 @@
1
+ export declare const isArrayLike: (v: unknown) => v is ArrayLike<unknown>;
@@ -0,0 +1 @@
1
+ export declare const isBooleanLike: (v: unknown) => v is boolean | "true" | "false";
@@ -0,0 +1 @@
1
+ export declare const isEffectiveData: (data: unknown) => data is string | number | object | any[];
@@ -0,0 +1 @@
1
+ export declare const isNil: (v: unknown) => v is null | undefined;
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@wyfex/iutils",
3
- "version": "0.15.0",
4
- "description": "万有前端体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库",
5
- "homepage": "https://wyfe.top/idoc/iutils",
3
+ "version": "0.25.0",
4
+ "description": "万有前端 X 体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库",
5
+ "homepage": "https://wyfe.top/idocs/iutils",
6
6
  "type": "module",
7
7
  "main": "dist/index.cjs",
8
8
  "module": "dist/index.js",
@@ -26,7 +26,9 @@
26
26
  },
27
27
  "keywords": [
28
28
  "万有前端",
29
- "万有前端·iUtils",
29
+ "万有前端 X",
30
+ "万有前端 · iUtils",
31
+ "万有前端 X ·iUtils",
30
32
  "wyfex",
31
33
  "wyfex-iutils"
32
34
  ],
@@ -36,8 +38,8 @@
36
38
  "author": "Symbol(王独秀) <963569210@qq.com>",
37
39
  "license": "MIT",
38
40
  "devDependencies": {
39
- "@types/node": "^25.9.0",
41
+ "@types/node": "^25.9.1",
40
42
  "typescript": "^6.0.3",
41
- "vite": "^8.0.13"
43
+ "vite": "^8.0.16"
42
44
  }
43
45
  }
@@ -1 +0,0 @@
1
- export declare const findByKey: <T = Record<string, unknown>>(array: T[], targetKey: keyof T, value: T[keyof T] | T[keyof T][], type?: "find" | "findIndex") => T | number | (T | number)[] | undefined;
@@ -1 +0,0 @@
1
- export declare const insertItemsAfterTarget: <T extends Record<string, unknown>>(array: T[], target: Partial<T>, newData: T | T[]) => T[];
@@ -1 +0,0 @@
1
- export declare const removeItemsAfterTarget: <T extends Record<string, unknown>>(array: T[], target: Partial<T>, deleteCount?: number) => T[];