๐ Utility for converting cycle.js dataflows between stream libs.
This really very very simple. It uses @cycle
stream lib adapters
for converting input and output streams in passed dataflow.
import XsDataflow from './XsDataflow'
import xsAdapter from '@cycle/xstream-adapter'
import rxAdapter from '@cycle/rx-adapter'
import convert from 'cycle-convert'
...
const RxDataflow = convert(XsDataflow, xsAdapter, rxAdapter)
// plug it in your cycle Rx app!
It will (at least it should, see cautions) properly convert all driver sources with all their (custom) methods/helpers and stuff.
You may also convert just streams:
let rxStream$ = convert(mostStream$, mostAdapter, rxAdapter)
Well, for example if you want to migrate incrementally
from rxjs
to xstream
(or maybe visa versa?, don't tell @staltz)
Or you may use some cyclic component created with one stream library inside your other component created using another lib. It is simple.
cycle-convert
supports traversal of streams - this means it can
also convert nested streams hide inside. This may be needed for some driver
sinks for example official @cycle/DOM
driver with transposition
option.
To enable stream traversal use traverse
option.
const RxComponent = convert(XsComponent, xsAdapter, rxAdapter, {traverseSink: ['DOM']})
// drop it to your cycle Rx app!
npm install cycle-convert -S
WTF?