diff --git a/packages/core/src/store/actions.ts b/packages/core/src/store/actions.ts index 5e04de20..e0f5b6a8 100644 --- a/packages/core/src/store/actions.ts +++ b/packages/core/src/store/actions.ts @@ -567,8 +567,28 @@ export function useActions(state: State, getters: ComputedGetters): Actions { // we have to stringify/parse so objects containing refs (like nodes and edges) can potentially be saved in a storage return JSON.parse( JSON.stringify({ - nodes: state.nodes, - edges: state.edges, + nodes: state.nodes.map((n) => { + // omit internal properties when exporting + const { + computedPosition: _, + handleBounds: __, + selected: ___, + dimensions: ____, + isParent: _____, + resizing: ______, + dragging: _______, + initialized: ________, + ...rest + } = n + + return rest + }), + edges: state.edges.map((e) => { + // omit internal properties when exporting + const { selected: _, sourceNode: __, targetNode: ___, ...rest } = e + + return rest + }), position: [state.viewport.x, state.viewport.y], zoom: state.viewport.zoom, } as FlowExportObject), diff --git a/packages/core/src/types/flow.ts b/packages/core/src/types/flow.ts index 49cff003..d1183eb2 100644 --- a/packages/core/src/types/flow.ts +++ b/packages/core/src/types/flow.ts @@ -97,8 +97,8 @@ export enum SelectionMode { } export interface FlowExportObject { - nodes: GraphNode[] - edges: GraphEdge[] + nodes: Node[] + edges: Edge[] position: [number, number] zoom: number }