Changed some things about flows:
• you can subscribe to a flow with the regular (subscribe [:flow {:id :some-id})
◦ flows have their own lifecycle. they're not cached like regular subscriptions.
• :inputs and :live-inputs are top-level keys, both optional.
• :output and :live? take a single arg - a map of resolved inputs.
◦ If there are no inputs (or live-inputs), they get passed app-db instead.
• added some warnings against stale & cyclic dependencies
• a flow id can be any value, not just a keyword
• fixed some edge cases
• tried putting flows in app-db, but it seems problematic. reverted.
• simplified the live-docs code & explanations
The first point is definitely a breaking change. :flow is not a name that's unique enough.
Perhaps the :flow ID can be configurable? E.g. (rf/enable-flows! {:subscription-id :flow}).
maybe just use :re-frame/flow
Or :re-frame.core/flow, so that it can be aliased.
I'm just not a fan of anything.core. re-frame isn't an apple.
Yeah, but from the practical standpoint IMO it makes more sense.
core is already there, you can't get rid of it. Might as well use it to its full extent. and ::rf/flow is shorter than :re-frame/flow. :)