fix check node of sub tree

This commit is contained in:
codetypes committed 2025-11-05 13:54:48 +08:00
1 parent 13986c9b2f
commit e4cfab885a
2 files changed
+13 -4

No files matched your search

+1 -1
View File
@@ -746,7 +746,7 @@ class TreeNode extends Rect {
if ( if (
!b3util.nodeDefs.has(data.name) || !b3util.nodeDefs.has(data.name) ||
(data.path && !node.children?.length) || (data.path && !data.$mtime) ||
(nodeDef.group && !nodeDef.group.some((g) => b3util.usingGroups?.[g])) || (nodeDef.group && !nodeDef.group.some((g) => b3util.usingGroups?.[g])) ||
!b3util.isValidNodeData(data) || !b3util.isValidNodeData(data) ||
foundUndefined(data.input) || foundUndefined(data.input) ||
+12 -3
View File
@@ -702,6 +702,7 @@ export const refreshNodeData = (tree: TreeData, node: NodeData, id: number) => {
alertError(`循环引用节点:${node.path}`, 4); alertError(`循环引用节点:${node.path}`, 4);
return id; return id;
} }
delete node.$mtime;
parsingStack.push(node.path); parsingStack.push(node.path);
try { try {
const subtreePath = workdir + "/" + node.path; const subtreePath = workdir + "/" + node.path;
@@ -741,15 +742,23 @@ export const refreshNodeData = (tree: TreeData, node: NodeData, id: number) => {
}; };
export const createBuildData = (path: string) => { export const createBuildData = (path: string) => {
const clearUnnecessaryKey = (data: NodeData | TreeData) => {
for (const key in data) {
if (key.startsWith("$")) {
delete data[key as keyof (NodeData | TreeData)];
}
}
};
try { try {
const treeModel: TreeData = readTree(path); const treeModel: TreeData = readTree(path);
refreshNodeData(treeModel, treeModel.root, 1); refreshNodeData(treeModel, treeModel.root, 1);
dfs(treeModel.root, (node) => (node.id = treeModel.prefix + node.id)); dfs(treeModel.root, (node) => (node.id = treeModel.prefix + node.id));
treeModel.name = Path.basenameWithoutExt(path); treeModel.name = Path.basenameWithoutExt(path);
treeModel.root = createFileData(treeModel.root, true); treeModel.root = createFileData(treeModel.root, true);
dfs(treeModel.root, (node) => delete (node as Partial<NodeData>).$id); dfs(treeModel.root, (node) => clearUnnecessaryKey(node));
delete (treeModel as Partial<TreeData>).$override; clearUnnecessaryKey(treeModel);
return treeModel as TreeData; return treeModel;
} catch (e) { } catch (e) {
console.log("build error:", path, e); console.log("build error:", path, e);
} }