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