Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Effects API experiments #33

Closed
wants to merge 8 commits into from
Closed

Effects API experiments #33

wants to merge 8 commits into from

Conversation

pipex
Copy link
Collaborator

@pipex pipex commented Sep 15, 2023

Change-type: minor

@pipex pipex marked this pull request as draft September 15, 2023 18:56
@pipex pipex force-pushed the effects-api branch 4 times, most recently from 97c08d0 to cc65102 Compare September 16, 2023 02:13
Change-type: minor
@pipex pipex force-pushed the effects-api branch 4 times, most recently from 226a73e to ab92fae Compare September 18, 2023 20:56
Also adds pipe and flow combinators

Change-type: minor
@pipex pipex force-pushed the effects-api branch 4 times, most recently from 9164957 to 1de9bac Compare September 23, 2023 21:38
Observables now have a more monadic API, allowing mapping over the
values and combining observables together.

This will make it easier to use observables with effects

Change-type: minor
@pipex pipex force-pushed the effects-api branch 2 times, most recently from 16fd341 to 397b8ea Compare September 25, 2023 21:07
This allows to have long running operations that are observable

Change-type: minor
Task definitions now accept both the original definition, using
condition, effect and actions, as well as the new API, using just
an effect function returning an effect

Change-type: minor
Changing the task definition changed ids used when diagraming with
mermaid.

Change-type: patch
@pipex pipex force-pushed the effects-api branch 5 times, most recently from 66960f7 to 9ac68f3 Compare September 26, 2023 18:48
Renames some effect helpers and makes condition usable with
tasks defined with an effect. This allows to have fewer levels of
callbacks when defining the effect for a task

Change-type: minor
This allows to both test the new API and provide an example
on how to work with this API

Change-type: patch
pipex added a commit that referenced this pull request Sep 27, 2023
The `Effect` type is a mix between a promise, a function and an
observable. It provides a way to combine an async computation with a
sync version which "simulates" the effect that the async computation
will have on the underlying system. These types are also composable via
`map` and `flatMap`, which would allow building more complex effects
from simpler ones, however this is ouside the scope of the current PR
(see PR #33 for a use of those ideas).

Change-type: minor
@pipex pipex mentioned this pull request Sep 27, 2023
pipex added a commit that referenced this pull request Sep 27, 2023
The `Effect` type is a mix between a promise, a function and an
observable. It provides a way to combine an async computation with a
sync version which "simulates" the effect that the async computation
will have on the underlying system. These types are also composable via
`map` and `flatMap`, which would allow building more complex effects
from simpler ones, however this is outside the scope of the current PR
(see PR #33 for a use of those ideas).

Change-type: minor
@pipex pipex closed this Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant