@wyfex/iutils 0.15.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 ADDED
@@ -0,0 +1,18 @@
1
+ # wyfex-iutils
2
+
3
+ 万有前端体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库
4
+
5
+ ## 文档地址
6
+ > https://wyfe.top/idoc/iutils
7
+
8
+ ## npm下载(支持pnpm/yarn/cnpm/npm)
9
+ ```shell
10
+ $ pnpm i @wyfex/iutils
11
+ ```
12
+
13
+ ## 版本号规则
14
+ + 仅升级组件库依赖(升级vite、typescript其一或全部),修改第1位。eg:1.x.x;
15
+ + 仅新增工具函数,修改第2位。eg:x.6.x;
16
+ + 仅修复、优化现有工具函数,修改第3位。eg:x.x.1;
17
+ + 以上3项都有变更或部分有变更则按照对应变更修改对应版本号位置;
18
+ + 当对第1、2项有变更且上个版本第3位不为0时,需将第3位置为0。
package/dist/index.cjs ADDED
@@ -0,0 +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;
@@ -0,0 +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})({});
package/dist/index.js ADDED
@@ -0,0 +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};
@@ -0,0 +1,3 @@
1
+ export * from './modules/array';
2
+ export * from './modules/object';
3
+ export * from './modules/type';
@@ -0,0 +1 @@
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;
@@ -0,0 +1,3 @@
1
+ export * from './findByKey';
2
+ export * from './insertItemsAfterTarget';
3
+ export * from './removeItemsAfterTarget ';
@@ -0,0 +1 @@
1
+ export declare const insertItemsAfterTarget: <T extends Record<string, unknown>>(array: T[], target: Partial<T>, newData: T | T[]) => T[];
@@ -0,0 +1 @@
1
+ export declare const removeItemsAfterTarget: <T extends Record<string, unknown>>(array: T[], target: Partial<T>, deleteCount?: number) => T[];
@@ -0,0 +1 @@
1
+ export declare const cleanObjectEmptyValues: <T extends Record<string, unknown>>(obj: T) => Partial<T>;
@@ -0,0 +1 @@
1
+ export declare const expandCommaKeyObject: (obj: Record<string, unknown>) => Record<string, unknown>;
@@ -0,0 +1,5 @@
1
+ export * from './cleanObjectEmptyValues';
2
+ export * from './expandCommaKeyObject';
3
+ export * from './omitObjectProps';
4
+ export * from './parseStringFieldsToArray';
5
+ export * from './stringifyArrayFields';
@@ -0,0 +1 @@
1
+ export declare const omitObjectProps: <T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K | K[]) => Omit<T, K>;
@@ -0,0 +1 @@
1
+ export declare const parseStringFieldsToArray: (obj: Record<string, unknown>, fields?: string[]) => Record<string, unknown>;
@@ -0,0 +1 @@
1
+ export declare const stringifyArrayFields: (obj: Record<string, unknown>, includes?: string[]) => Record<string, unknown>;
@@ -0,0 +1,7 @@
1
+ export * from './isArray';
2
+ export * from './isBoolean';
3
+ export * from './isNumber';
4
+ export * from './isNumberLike';
5
+ export * from './isObject';
6
+ export * from './isObjectArray';
7
+ export * from './isString';
@@ -0,0 +1 @@
1
+ export declare const isArray: (v: unknown) => v is any[];
@@ -0,0 +1 @@
1
+ export declare const isBoolean: (v: unknown) => v is boolean;
@@ -0,0 +1 @@
1
+ export declare const isNumber: (v: unknown) => v is number;
@@ -0,0 +1 @@
1
+ export declare const isNumberLike: (v: unknown) => v is number | string;
@@ -0,0 +1 @@
1
+ export declare const isObject: (v: unknown) => v is Record<string, any>;
@@ -0,0 +1 @@
1
+ export declare const isObjectArray: (v: unknown) => v is Record<string, any>[];
@@ -0,0 +1 @@
1
+ export declare const isString: (v: unknown) => v is string;
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@wyfex/iutils",
3
+ "version": "0.15.0",
4
+ "description": "万有前端体系下基于 Vite8 + TypeScript6 构建的 iUtils 工具库",
5
+ "homepage": "https://wyfe.top/idoc/iutils",
6
+ "type": "module",
7
+ "main": "dist/index.cjs",
8
+ "module": "dist/index.js",
9
+ "types": "dist/types/index.d.ts",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "exports": {
14
+ ".": {
15
+ "import": "./dist/index.js",
16
+ "require": "./dist/index.cjs",
17
+ "types": "./dist/types/index.d.ts"
18
+ }
19
+ },
20
+ "sideEffects": false,
21
+ "scripts": {
22
+ "gen:exports": "node scripts/gen-exports.js",
23
+ "dev": "pnpm gen:exports && vite",
24
+ "build": "pnpm gen:exports && vite build && tsc",
25
+ "tgz": "pnpm build && pnpm pack"
26
+ },
27
+ "keywords": [
28
+ "万有前端",
29
+ "万有前端·iUtils",
30
+ "wyfex",
31
+ "wyfex-iutils"
32
+ ],
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "author": "Symbol(王独秀) <963569210@qq.com>",
37
+ "license": "MIT",
38
+ "devDependencies": {
39
+ "@types/node": "^25.9.0",
40
+ "typescript": "^6.0.3",
41
+ "vite": "^8.0.13"
42
+ }
43
+ }