ink-graph-new 0.0.1-beta.35 → 0.0.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.
@@ -0,0 +1,3 @@
1
+ export declare function runPerformanceTest(): void;
2
+ export declare function runCorrectnessTest(): void;
3
+ //# sourceMappingURL=node-performance-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-performance-test.d.ts","sourceRoot":"","sources":["../../src/utils/node-performance-test.ts"],"names":[],"mappings":"AA+HA,wBAAgB,kBAAkB,SA6CjC;AAGD,wBAAgB,kBAAkB,SAmBjC"}
@@ -0,0 +1,155 @@
1
+ import { EDirection } from '../types';
2
+ // 原始版本(用于性能对比)
3
+ function groupNodesByEdgesAndDirectionOriginal(startNodeCfg, nodesConfigMap, edgesConfig, direction) {
4
+ var existMap = new Map();
5
+ existMap.set(startNodeCfg.id, 0);
6
+ var todoList = [startNodeCfg];
7
+ var relatedEdges = new Set();
8
+ var _loop_1 = function () {
9
+ var curr = todoList.shift();
10
+ if (!curr)
11
+ return { value: void 0 };
12
+ var currPosition = existMap.get(curr.id);
13
+ if (currPosition === undefined)
14
+ return { value: void 0 };
15
+ edgesConfig.forEach(function (edge) {
16
+ var _a, _b;
17
+ if (direction === EDirection.BOTH || direction === EDirection.INPUT) {
18
+ if (edge.target === curr.id ||
19
+ ((_a = curr.relatedColumns) === null || _a === void 0 ? void 0 : _a.some(function (col) { return col.id === edge.target; }))) {
20
+ relatedEdges.add(edge);
21
+ var inMapNode = nodesConfigMap.get(edge.source);
22
+ if (!inMapNode)
23
+ return;
24
+ var srcNode = inMapNode.tableId
25
+ ? nodesConfigMap.get(inMapNode.tableId)
26
+ : inMapNode;
27
+ if (!srcNode)
28
+ return;
29
+ if (!existMap.has(srcNode.id)) {
30
+ existMap.set(srcNode.id, currPosition - 1);
31
+ todoList.push(srcNode);
32
+ }
33
+ }
34
+ }
35
+ if (direction === EDirection.BOTH || direction === EDirection.OUTPUT) {
36
+ if (edge.source === curr.id ||
37
+ ((_b = curr.relatedColumns) === null || _b === void 0 ? void 0 : _b.some(function (col) { return col.id === edge.source; }))) {
38
+ relatedEdges.add(edge);
39
+ var inMapNode = nodesConfigMap.get(edge.target);
40
+ if (!inMapNode)
41
+ return;
42
+ var tgtNode = inMapNode.tableId
43
+ ? nodesConfigMap.get(inMapNode.tableId)
44
+ : inMapNode;
45
+ if (!existMap.has(tgtNode.id)) {
46
+ existMap.set(tgtNode.id, currPosition + 1);
47
+ todoList.push(tgtNode);
48
+ }
49
+ }
50
+ }
51
+ });
52
+ };
53
+ while (todoList.length > 0) {
54
+ var state_1 = _loop_1();
55
+ if (typeof state_1 === "object")
56
+ return state_1.value;
57
+ }
58
+ return {
59
+ groupedNodes: existMap,
60
+ relatedEdges: Array.from(relatedEdges),
61
+ };
62
+ }
63
+ // 生成测试数据
64
+ function generateTestData(nodeCount, edgeCount) {
65
+ var nodes = [];
66
+ var edges = [];
67
+ var nodesMap = new Map();
68
+ // 生成节点
69
+ for (var i = 0; i < nodeCount; i++) {
70
+ var node = {
71
+ id: "node_".concat(i),
72
+ type: 'test-node',
73
+ name: "Node ".concat(i),
74
+ position: { x: i * 100, y: 0 },
75
+ style: { width: 100, height: 50 },
76
+ visible: true,
77
+ isStartNode: i === Math.floor(nodeCount / 2), // 中间的节点作为起始节点
78
+ relatedColumns: i % 3 === 0 ? [{ id: "col_".concat(i) }] : undefined, // 部分节点有relatedColumns
79
+ };
80
+ nodes.push(node);
81
+ nodesMap.set(node.id, node);
82
+ // 为relatedColumns也添加到map中
83
+ if (node.relatedColumns && Array.isArray(node.relatedColumns)) {
84
+ node.relatedColumns.forEach(function (col) {
85
+ if (col === null || col === void 0 ? void 0 : col.id) {
86
+ nodesMap.set(col.id, col);
87
+ }
88
+ });
89
+ }
90
+ }
91
+ // 生成边
92
+ for (var i = 0; i < edgeCount; i++) {
93
+ var sourceIndex = Math.floor(Math.random() * nodeCount);
94
+ var targetIndex = Math.floor(Math.random() * nodeCount);
95
+ if (sourceIndex !== targetIndex) {
96
+ var edge = {
97
+ id: "edge_".concat(i),
98
+ type: 'test-edge',
99
+ source: "node_".concat(sourceIndex),
100
+ target: "node_".concat(targetIndex),
101
+ points: [{ x: 0, y: 0 }, { x: 100, y: 0 }],
102
+ visible: true,
103
+ };
104
+ edges.push(edge);
105
+ }
106
+ }
107
+ return { nodes: nodes, edges: edges, nodesMap: nodesMap, startNode: nodes[Math.floor(nodeCount / 2)] };
108
+ }
109
+ // 性能测试函数
110
+ export function runPerformanceTest() {
111
+ console.log('🚀 开始性能测试...\n');
112
+ var testCases = [
113
+ { nodes: 100, edges: 500 },
114
+ { nodes: 500, edges: 2000 },
115
+ { nodes: 1000, edges: 5000 },
116
+ { nodes: 2000, edges: 10000 },
117
+ ];
118
+ testCases.forEach(function (_a) {
119
+ var nodeCount = _a.nodes, edgeCount = _a.edges;
120
+ console.log("\uD83D\uDCCA \u6D4B\u8BD5\u7528\u4F8B: ".concat(nodeCount, " \u4E2A\u8282\u70B9, ").concat(edgeCount, " \u6761\u8FB9"));
121
+ var _b = generateTestData(nodeCount, edgeCount), nodes = _b.nodes, edges = _b.edges, nodesMap = _b.nodesMap, startNode = _b.startNode;
122
+ // 测试原始版本
123
+ var start1 = performance.now();
124
+ var result1 = groupNodesByEdgesAndDirectionOriginal(startNode, nodesMap, edges, EDirection.BOTH);
125
+ var end1 = performance.now();
126
+ var originalTime = end1 - start1;
127
+ // 测试优化版本 (需要从实际的模块导入)
128
+ var start2 = performance.now();
129
+ // 这里应该导入优化后的函数
130
+ // const result2 = groupNodesByEdgesAndDirection(startNode, nodesMap, edges, EDirection.BOTH);
131
+ var end2 = performance.now();
132
+ var optimizedTime = end2 - start2;
133
+ console.log(" \uD83D\uDCC8 \u539F\u59CB\u7248\u672C\u8017\u65F6: ".concat(originalTime.toFixed(2), "ms"));
134
+ console.log(" \u26A1 \u4F18\u5316\u7248\u672C\u8017\u65F6: ".concat(optimizedTime.toFixed(2), "ms"));
135
+ console.log(" \uD83C\uDFAF \u6027\u80FD\u63D0\u5347: ".concat(((originalTime - optimizedTime) / originalTime * 100).toFixed(1), "%"));
136
+ if (result1) {
137
+ console.log(" \uD83D\uDCCB \u5904\u7406\u7684\u8282\u70B9\u6570: ".concat(result1.groupedNodes.size));
138
+ console.log(" \uD83D\uDD17 \u76F8\u5173\u8FB9\u6570: ".concat(result1.relatedEdges.length));
139
+ }
140
+ console.log('');
141
+ });
142
+ console.log('✅ 性能测试完成!');
143
+ }
144
+ // 验证结果一致性的测试
145
+ export function runCorrectnessTest() {
146
+ console.log('🔍 开始正确性测试...\n');
147
+ var _a = generateTestData(50, 200), nodes = _a.nodes, edges = _a.edges, nodesMap = _a.nodesMap, startNode = _a.startNode;
148
+ var result1 = groupNodesByEdgesAndDirectionOriginal(startNode, nodesMap, edges, EDirection.BOTH);
149
+ // 这里应该测试优化版本的结果
150
+ // const result2 = groupNodesByEdgesAndDirection(startNode, nodesMap, edges, EDirection.BOTH);
151
+ console.log('原始版本结果:', result1 === null || result1 === void 0 ? void 0 : result1.groupedNodes.size, '个节点');
152
+ // console.log('优化版本结果:', result2?.groupedNodes.size, '个节点');
153
+ console.log('✅ 正确性测试完成!');
154
+ }
155
+ //# sourceMappingURL=node-performance-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-performance-test.js","sourceRoot":"","sources":["../../src/utils/node-performance-test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ink-graph-new",
3
- "version": "0.0.1-beta.35",
3
+ "version": "0.0.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "dagre": "^0.8.5",
22
22
  "eventemitter3": "^5.0.1",
23
23
  "gl-matrix": "^3.4.3",
24
- "ink-new": "0.0.1-beta.35",
24
+ "ink-new": "0.0.2",
25
25
  "lodash": "^4.17.21",
26
26
  "rbush": "^4.0.1",
27
27
  "rollup": "^3.29.5",