check group and var on build

This commit is contained in:
codetypes committed 2025-03-19 09:38:29 +08:00
1 parent 4fb851c8cc
commit b8817fd2c9
10 files changed
+164 -61

No files matched your search

+24 -19
View File
@@ -5,7 +5,14 @@ import * as fs from "fs";
import React from "react";
import { create } from "zustand";
import { NodeDef } from "../behavior3/src/behavior3";
import { ImportDef, NodeModel, TreeGraphData, TreeModel, VarDef } from "../misc/b3type";
import {
FileVarDecl,
ImportDef,
NodeModel,
TreeGraphData,
TreeModel,
VarDef,
} from "../misc/b3type";
import * as b3util from "../misc/b3util";
import { message } from "../misc/hooks";
import i18n from "../misc/i18n";
@@ -46,11 +53,7 @@ export class EditorStore {
data: TreeModel;
root: TreeGraphData;
declare: {
import: ImportDef[];
subtree: ImportDef[];
declvar: VarDef[];
};
declare: FileVarDecl;
autoId: number = 1;
dragSrcId?: string;
@@ -354,11 +357,20 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
workspace.allFiles.forEach((file) => {
const buildpath = buildDir + "/" + workspace.relative(file.path);
const treeModel = b3util.createBuildData(file.path);
if (treeModel && treeModel.export === false) {
if (!treeModel) {
return;
}
if (treeModel.export === false) {
console.log("skip:", buildpath);
return;
}
console.log("build:", buildpath);
const declare: FileVarDecl = {
import: treeModel.import.map((v) => ({ path: v, vars: [], depends: [] })),
declvar: treeModel.declvar.map((v) => ({ name: v.name, desc: v.desc })),
subtree: [],
};
b3util.refreshDeclare(treeModel, declare);
if (!b3util.checkNodeData(treeModel?.root)) {
hasError = true;
}
@@ -479,6 +491,10 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
set({ editors: workspace.editors });
workspace.updateFileMeta(editor);
workspace.edit(editor.path, selectedNode);
if (b3util.isNewVersion(editor.data.version)) {
message.warning(i18n.t("alertNewVersion", { version: editor.data.version }));
}
} catch (error) {
console.error(error);
message.error(`invalid file: ${path}`);
@@ -538,18 +554,7 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
if (!editor) {
return;
}
const vars: Set<VarDef> = new Set(editor.declare.declvar.slice());
editor.declare.subtree = b3util.findSubtrees(editor.root).map((v) => ({
path: v,
vars: [],
depends: [],
}));
b3util.loadVarDef(editor.declare.import).forEach((v) => vars.add(v));
b3util.loadVarDef(editor.declare.subtree).forEach((v) => {
vars.add(v);
});
b3util.updateUsingGroups(editor.data.group);
b3util.updateUsingVars(Array.from(vars));
b3util.refreshDeclare(editor.data, editor.declare);
},
save: () => {