index.ts 1.0 KB

123456789101112131415161718192021
  1. import { readFileSync } from "node:fs";
  2. import DZWFDeserializer from "./v1/io/deserialize/dzwf/DZWFDeserializer.js";
  3. import CycleRemoveStep from "./v1/optimizer/siguiyama/CycleRemoveStep.js";
  4. import LayerAssignmentStep from "./v1/optimizer/siguiyama/LayerAssignmentStep.js";
  5. import SiguiyamaAlgorithm from "./v1/optimizer/siguiyama/SiguiyamaAlgorithm.js";
  6. import NodeOrderingStep from "./v1/optimizer/siguiyama/NodeOrderingStep.js";
  7. import CoordinateAssignmentStep from "./v1/optimizer/siguiyama/CoordinateAssignmentStep.js";
  8. import DZWFJsonSerializer from "./v1/io/serialize/dzwf/JointJsonSerializer.js";
  9. const deserializer = new DZWFDeserializer();
  10. const { graph, dzwfData } = deserializer.deserialize(String(readFileSync("./data/bpmn.json")));
  11. const optimizer = new SiguiyamaAlgorithm()
  12. .addStep(new CycleRemoveStep())
  13. .addStep(new LayerAssignmentStep())
  14. .addStep(new NodeOrderingStep(20))
  15. .addStep(new CoordinateAssignmentStep());
  16. optimizer.run(graph);
  17. const serializer = new DZWFJsonSerializer(dzwfData);
  18. serializer.serialize(graph);