github cyclejs/cyclejs v0.21.0
v0.21 - This changes everything: one simple computer() function

latest releases: unified-tag, v7.0.0, v7.0.0-rc8...
pre-release9 years ago

This version is a major breaking change that would require rewriting your apps entirely.

Read the README

Oops, I did it again.
Oops I did it again


Removed Stream, no more inject calls. The cyclic dependency of Observables is now solved internally in the framework. As an app developer, you just need to provide the computer() function, and Cycle will take care of injection internally. The computer function takes interactions as input, and should output an Observable of virtual DOM elements. Then call Cycle.applyToDOM(container, computer);

To rewrite your program built with Cycle, you mainly need to delete plenty of boilerplate code related to Streams. Start with the top computer function and transform observables directly rather than creating Stream and then injecting. Example:

BEFORE

let bar$ = Cycle.createStream(foo$ => foo$.delay(500).map(foo => 'Hello ' + foo));

// ... later
bar$.inject(foo$);

AFTER

let bar$ = foo$.delay(500).map(foo => 'Hello ' + foo);

See some examples

However, Streams and injection might still be an important concept, so they will become a separate helper library for rare cases where you need them.


vdomPropHook removed. This was a small helper function and specific to virtual-dom. It is very simple to make it yourself in your codebase or make a small library for it.


interaction$ was renamed to interactions since it represents a collection of Observables, but not really an Observable itself.

Don't miss a new cyclejs release

NewReleases is sending notifications on new releases.