converge icon indicating copy to clipboard operation
converge copied to clipboard

Refactor conditional execution to live as metadata inside of the graph

Open rebeccaskinner opened this issue 8 years ago • 0 comments

Discussion:

The requirement to have immutable parent/child relationships between the generated switch and conditional nodes and their embedded child nodes is manifesting in some difficulty dealing with graph modifications for grouping, and has introduced a few other pain points in terms of overall graph execution flow.

It might be better if conditional execution was a node or edge metadata property (perhaps as a traversable flag on an edge? or a predicate flag on the node?) that way once the macro expansion and conditional evaluation happened, re-ordering of nodes wouldn't affect execution or cause a rendering failure due to invalid thunk resolution. We'd still probably need the switch and case nodes in order to support rendering values in the predicate expressions, but the conditional_resources.go code might be able to be factored out.

rebeccaskinner avatar Oct 26 '16 13:10 rebeccaskinner