feat: Add execute
to createWorkflow context
#17
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds an
execute
method to the context provided bycreateWorkflow
so that every component can evaluate subgraphs at the javascript layer.This enables enables things like the fanout pattern and conditional execution in favor of the pattern we tried in #15
Here's the new example:
Notice that the execute API has an interesting signature:
This is required in order to get type safety. I originally tried to do this via passing in JSX to
execute
, but unfortunately we lose all type safety.execute
doesn't currently support passing in children for a component. I'm not inclined to add support for it as it will add a lot of complexity (the return type of the thing becomes the return type of the last child, have to have patterns for chaining inputs/outputs together). But we can always add it later if we find a use case.