util-helpers 4.20.0 → 4.20.2

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.
Files changed (44) hide show
  1. package/dist/util-helpers.js +53 -150
  2. package/dist/util-helpers.js.map +1 -1
  3. package/dist/util-helpers.min.js +1 -1
  4. package/dist/util-helpers.min.js.map +1 -1
  5. package/esm/VERSION.js +1 -1
  6. package/esm/ajax.js +4 -2
  7. package/esm/calculateCursorPosition.js +2 -2
  8. package/esm/download.js +3 -2
  9. package/esm/filterTree.js +3 -3
  10. package/esm/findTreeNode.js +3 -3
  11. package/esm/findTreeNodes.js +3 -3
  12. package/esm/findTreeSelect.js +3 -3
  13. package/esm/index.js +1 -1
  14. package/esm/listToTree.js +2 -2
  15. package/esm/loadImage.js +4 -3
  16. package/esm/loadImageWithBlob.js +4 -3
  17. package/esm/loadScript.js +2 -1
  18. package/esm/transformFieldNames.js +5 -4
  19. package/esm/treeToList.js +3 -3
  20. package/esm/utils/native.js +5 -0
  21. package/lib/VERSION.js +1 -1
  22. package/lib/ajax.js +4 -2
  23. package/lib/calculateCursorPosition.js +1 -1
  24. package/lib/download.js +3 -2
  25. package/lib/filterTree.js +2 -2
  26. package/lib/findTreeNode.js +2 -2
  27. package/lib/findTreeNodes.js +2 -2
  28. package/lib/findTreeSelect.js +2 -2
  29. package/lib/index.js +1 -1
  30. package/lib/listToTree.js +1 -1
  31. package/lib/loadImage.js +4 -3
  32. package/lib/loadImageWithBlob.js +4 -3
  33. package/lib/loadScript.js +2 -1
  34. package/lib/transformFieldNames.js +4 -3
  35. package/lib/treeToList.js +2 -2
  36. package/lib/utils/native.js +5 -0
  37. package/package.json +12 -12
  38. package/types/filterTree.d.ts +4 -3
  39. package/types/findTreeNode.d.ts +4 -4
  40. package/types/findTreeNodes.d.ts +4 -4
  41. package/types/findTreeSelect.d.ts +3 -3
  42. package/types/listToTree.d.ts +2 -2
  43. package/types/treeToList.d.ts +2 -2
  44. package/types/utils/native.d.ts +6 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "util-helpers",
3
- "version": "4.20.0",
3
+ "version": "4.20.2",
4
4
  "description": "一个基于业务场景的工具方法库",
5
5
  "main": "lib/index.js",
6
6
  "module": "esm/index.js",
@@ -50,33 +50,33 @@
50
50
  },
51
51
  "homepage": "https://doly-dev.github.io/util-helpers/index.html",
52
52
  "devDependencies": {
53
- "@babel/core": "^7.22.10",
54
- "@babel/preset-env": "^7.22.10",
55
- "@babel/preset-typescript": "^7.22.5",
53
+ "@babel/core": "^7.22.11",
54
+ "@babel/preset-env": "^7.22.14",
55
+ "@babel/preset-typescript": "^7.22.11",
56
56
  "@commitlint/cli": "^17.7.1",
57
57
  "@commitlint/config-conventional": "^17.7.0",
58
58
  "@rollup/plugin-commonjs": "^25.0.4",
59
59
  "@rollup/plugin-node-resolve": "^15.2.1",
60
60
  "@rollup/plugin-replace": "^5.0.2",
61
61
  "@rollup/plugin-terser": "^0.4.3",
62
- "@rollup/plugin-typescript": "^11.1.2",
62
+ "@rollup/plugin-typescript": "^11.1.3",
63
63
  "@types/jest": "^29.5.4",
64
64
  "@typescript-eslint/eslint-plugin": "^5.62.0",
65
65
  "@typescript-eslint/parser": "^5.62.0",
66
- "babel-jest": "^29.6.3",
66
+ "babel-jest": "^29.6.4",
67
67
  "babel-plugin-minify-replace": "^0.5.0",
68
68
  "cross-env": "^7.0.3",
69
69
  "cz-conventional-changelog": "^3.3.0",
70
- "docdash": "^2.0.1",
71
- "eslint": "^8.47.0",
72
- "jest": "^29.6.3",
70
+ "docdash": "^2.0.2",
71
+ "eslint": "^8.48.0",
72
+ "jest": "^29.6.4",
73
73
  "jest-canvas-mock": "^2.5.2",
74
- "jest-environment-jsdom": "^29.6.3",
74
+ "jest-environment-jsdom": "^29.6.4",
75
75
  "jsdoc": "^4.0.2",
76
76
  "lint-staged": "^13.3.0",
77
77
  "prettier": "^2.8.8",
78
78
  "rollup": "^3.28.1",
79
- "typescript": "^5.1.6",
79
+ "typescript": "^5.2.2",
80
80
  "yorkie": "^2.0.0"
81
81
  },
82
82
  "lint-staged": {
@@ -94,6 +94,6 @@
94
94
  },
95
95
  "dependencies": {
96
96
  "tslib": "^2.6.2",
97
- "ut2": "^1.4.4"
97
+ "ut2": "^1.4.8"
98
98
  }
99
99
  }
@@ -8,15 +8,16 @@ type NodeAssign = 'spread' | 'self';
8
8
  * @alias module:Tree.filterTree
9
9
  * @since 4.15.0
10
10
  * @param {object[]} tree 树结构数据
11
- * @param {function} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 Truthy ,结果将包含该节点
11
+ * @param {function} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 `Truthy` ,结果将包含该节点
12
12
  * @param {string} [childrenField='children'] 子级字段名
13
13
  * @param {'spread'|'self'} [nodeAssign='spread'] 节点赋值方式。spread表示使用展开运算符创建新值,self表示使用自身对象。
14
14
  * @returns {object[]}
15
15
  * @example
16
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
16
+ * const menus = [{ id: '1', name: '首页', code: 'trade', pid: null }, { id: '2', name: '交易管理', code: 'trade', pid: null, children: [{ id: '3', name: '交易查询', code: 'trade-1', pid: '2', children: [{ id: '4', name: '交易查询-查询操作', code: 'trade-1-1', pid: '3' }]}]}, { id: '5', name: '权限管理', code: 'authorization', pid: null, children: [{ id: '6', name: '角色管理', code: 'authorization-1', pid: '5' }, { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }]}];
17
17
  *
18
18
  * filterTree(menus, item=>item.name.indexOf('管理') > -1);
19
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[]},{"id":"5","name":"权限管理","code":"authorization","pid":null,"children":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]}]
19
+ * // [{ id: '2', name: '交易管理', code: 'trade', pid: null, children: [] }, { id: '5', name: '权限管理', code: 'authorization', pid: null, children: [{ id: '6', name: '角色管理', code: 'authorization-1', pid: '5' }, { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }]}]
20
+
20
21
  *
21
22
  * // 如果某节点被过滤掉,它的子节点也一并抛弃
22
23
  * filterTree(menus, item=>item.id === '7');
@@ -5,17 +5,17 @@
5
5
  * @alias module:Tree.findTreeNode
6
6
  * @since 4.14.0
7
7
  * @param {object[]} tree 树结构数据
8
- * @param {function} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 Truthy ,将返回该节点
8
+ * @param {function} predicate 遍历每一项执行的函数,参数是当前遍历到的节点数据,如果返回 `Truthy` ,将返回该节点
9
9
  * @param {string} [childrenField='children'] 子级字段名
10
10
  * @returns {object|undefined}
11
11
  * @example
12
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
12
+ * const menus = [{ id: '1', name: '首页', code: 'trade', pid: null }, { id: '2', name: '交易管理', code: 'trade', pid: null, children: [{ id: '3', name: '交易查询', code: 'trade-1', pid: '2', children: [{ id: '4', name: '交易查询-查询操作', code: 'trade-1-1', pid: '3' }]}]}, { id: '5', name: '权限管理', code: 'authorization', pid: null, children: [{ id: '6', name: '角色管理', code: 'authorization-1', pid: '5' }, { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }]}];
13
13
  *
14
14
  * findTreeNode(menus, item=>item.id === '2');
15
- * // {"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]}
15
+ * // {id: '2', name: '交易管理', code: 'trade', pid: null, children: [ { id: '3', name: '交易查询', code: 'trade-1', pid: '2', children: [{ id: '4', name: '交易查询-查询操作', code: 'trade-1-1', pid: '3' }]}]}
16
16
  *
17
17
  * findTreeNode(menus, item=>item.id === '7');
18
- * // {"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}
18
+ * // { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }
19
19
  *
20
20
  * findTreeNode(menus, item=>item.id === 'not found');
21
21
  * // undefined
@@ -9,16 +9,16 @@
9
9
  * @param {string} [childrenField='children'] 子级字段名
10
10
  * @returns {object[]}
11
11
  * @example
12
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
12
+ * const menus = [{ id: '1', name: '首页', code: 'trade', pid: null }, { id: '2', name: '交易管理', code: 'trade', pid: null, children: [{ id: '3', name: '交易查询', code: 'trade-1', pid: '2', children: [{ id: '4', name: '交易查询-查询操作', code: 'trade-1-1', pid: '3' }]}]}, { id: '5', name: '权限管理', code: 'authorization', pid: null, children: [{ id: '6', name: '角色管理', code: 'authorization-1', pid: '5' }, { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }]}];
13
13
  *
14
14
  * findTreeNodes(menus, item=>item.id === '2');
15
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]}]
15
+ * // [{id:'2',name:'交易管理',code:'trade',pid:null,children:[{id:'3',name:'交易查询',code:'trade-1',pid:'2',children:[{id:'4',name:'交易查询-查询操作',code:'trade-1-1',pid:'3'}]}]}]
16
16
  *
17
17
  * findTreeNodes(menus, item=>item.name.indexOf('管理') > -1);
18
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]},{"id":"5","name":"权限管理","code":"authorization","pid":null,"children":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"},{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"}]
18
+ * // [{id:'2',name:'交易管理',code:'trade',pid:null,children:[{id:'3',name:'交易查询',code:'trade-1',pid:'2',children:[{id:'4',name:'交易查询-查询操作',code:'trade-1-1',pid:'3'}]}]},{id:'5',name:'权限管理',code:'authorization',pid:null,children:[{id:'6',name:'角色管理',code:'authorization-1',pid:'5'},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'},{id:'6',name:'角色管理',code:'authorization-1',pid:'5'}]
19
19
  *
20
20
  * findTreeNodes(menus, item=>item.id === '1' || item.id === '7');
21
- * // [{"id":"1","name":"首页","code":"trade","pid":null},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]
21
+ * // [{id:'1',name:'首页',code:'trade',pid:null},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]
22
22
  *
23
23
  * findTreeNodes(menus, item=>item.id === 'not found');
24
24
  * // []
@@ -9,13 +9,13 @@
9
9
  * @param {string} [childrenField='children'] 子级字段名
10
10
  * @returns {object[]}
11
11
  * @example
12
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
12
+ * const menus = [{ id: '1', name: '首页', code: 'trade', pid: null }, { id: '2', name: '交易管理', code: 'trade', pid: null, children: [{ id: '3', name: '交易查询', code: 'trade-1', pid: '2', children: [{ id: '4', name: '交易查询-查询操作', code: 'trade-1-1', pid: '3' }]}]}, { id: '5', name: '权限管理', code: 'authorization', pid: null, children: [{ id: '6', name: '角色管理', code: 'authorization-1', pid: '5' }, { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }]}];
13
13
  *
14
14
  * findTreeSelect(menus, item => item.id === '2');
15
- * // [{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]}]
15
+ * // [{id:'2',name:'交易管理',code:'trade',pid:null,children:[{id:'3',name:'交易查询',code:'trade-1',pid:'2',children:[{id:'4',name:'交易查询-查询操作',code:'trade-1-1',pid:'3'}]}]}]
16
16
  *
17
17
  * findTreeSelect(menus, item => item.id === '7');
18
- * // [{"id":"5","name":"权限管理","code":"authorization","pid":null,"children":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]
18
+ * // [{id:'5',name:'权限管理',code:'authorization',pid:null,children:[{id:'6',name:'角色管理',code:'authorization-1',pid:'5'},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]
19
19
  *
20
20
  * findTreeSelect(menus, item => item.id === 'not found');
21
21
  * // []
@@ -32,11 +32,11 @@ type Options = {
32
32
  * { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }
33
33
  * ];
34
34
  * listToTree(menus);
35
- * // [{"id":"1","name":"首页","code":"trade","pid":null},{"id":"2","name":"交易管理","code":"trade","pid":null,"children":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","children":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]},{"id":"5","name":"权限管理","code":"authorization","pid":null,"children":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]}]
35
+ * // [{id:'1',name:'首页',code:'trade',pid:null},{id:'2',name:'交易管理',code:'trade',pid:null,children:[{id:'3',name:'交易查询',code:'trade-1',pid:'2',children:[{id:'4',name:'交易查询-查询操作',code:'trade-1-1',pid:'3'}]}]},{id:'5',name:'权限管理',code:'authorization',pid:null,children:[{id:'6',name:'角色管理',code:'authorization-1',pid:'5'},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]}]
36
36
  *
37
37
  * // 自定义子级字段名
38
38
  * listToTree(basicMenus, { childrenField: 'childs' });
39
- * // [{"id":"1","name":"首页","code":"trade","pid":null},{"id":"2","name":"交易管理","code":"trade","pid":null,"childs":[{"id":"3","name":"交易查询","code":"trade-1","pid":"2","childs":[{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"}]}]},{"id":"5","name":"权限管理","code":"authorization","pid":null,"childs":[{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]}]
39
+ * // [{id:'1',name:'首页',code:'trade',pid:null},{id:'2',name:'交易管理',code:'trade',pid:null,childs:[{id:'3',name:'交易查询',code:'trade-1',pid:'2',childs:[{id:'4',name:'交易查询-查询操作',code:'trade-1-1',pid:'3'}]}]},{id:'5',name:'权限管理',code:'authorization',pid:null,childs:[{id:'6',name:'角色管理',code:'authorization-1',pid:'5'},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]}]
40
40
  *
41
41
  */
42
42
  declare function listToTree<T extends Record<string, any> = Record<string, any>, R extends unknown = T & Record<string, any>>(list: T[], options?: Options): R[];
@@ -8,10 +8,10 @@
8
8
  * @param {string} childrenField 子级字段名称
9
9
  * @returns {object[]} 列表数据
10
10
  * @example
11
- * const menus = [{ "id": "1", "name": "首页", "code": "trade", "pid": null }, { "id": "2", "name": "交易管理", "code": "trade", "pid": null, "children": [{ "id": "3", "name": "交易查询", "code": "trade-1", "pid": "2", "children": [{ "id": "4", "name": "交易查询-查询操作", "code": "trade-1-1", "pid": "3" }] }] }, { "id": "5", "name": "权限管理", "code": "authorization", "pid": null, "children": [{ "id": "6", "name": "角色管理", "code": "authorization-1", "pid": "5" }, { "id": "7", "name": "用户管理", "code": "authorization-2", "pid": "5" }] }];
11
+ * const menus = [{ id: '1', name: '首页', code: 'trade', pid: null }, { id: '2', name: '交易管理', code: 'trade', pid: null, children: [{ id: '3', name: '交易查询', code: 'trade-1', pid: '2', children: [{ id: '4', name: '交易查询-查询操作', code: 'trade-1-1', pid: '3' }]}]}, { id: '5', name: '权限管理', code: 'authorization', pid: null, children: [{ id: '6', name: '角色管理', code: 'authorization-1', pid: '5' }, { id: '7', name: '用户管理', code: 'authorization-2', pid: '5' }]}];
12
12
  *
13
13
  * treeToList(menus, 'children'));
14
- * // [{"id":"1","name":"首页","code":"trade","pid":null},{"id":"2","name":"交易管理","code":"trade","pid":null},{"id":"3","name":"交易查询","code":"trade-1","pid":"2"},{"id":"4","name":"交易查询-查询操作","code":"trade-1-1","pid":"3"},{"id":"5","name":"权限管理","code":"authorization","pid":null},{"id":"6","name":"角色管理","code":"authorization-1","pid":"5"},{"id":"7","name":"用户管理","code":"authorization-2","pid":"5"}]
14
+ * // [{id:'1',name:'首页',code:'trade',pid:null},{id:'2',name:'交易管理',code:'trade',pid:null},{id:'3',name:'交易查询',code:'trade-1',pid:'2'},{id:'4',name:'交易查询-查询操作',code:'trade-1-1',pid:'3'},{id:'5',name:'权限管理',code:'authorization',pid:null},{id:'6',name:'角色管理',code:'authorization-1',pid:'5'},{id:'7',name:'用户管理',code:'authorization-2',pid:'5'}]
15
15
  */
16
16
  declare function treeToList<T extends Record<string, any>, K extends keyof T, R extends Omit<T, K>>(tree: T[], childrenField: K): R[];
17
17
  export default treeToList;
@@ -0,0 +1,6 @@
1
+ export declare const objectKeys: {
2
+ (o: object): string[];
3
+ (o: {}): string[];
4
+ };
5
+ export declare const createObjectURL: (obj: Blob | MediaSource) => string;
6
+ export declare const revokeObjectURL: (url: string) => void;