README
cycle-lot
Handle dynamic lists of Cycle.js components with ease.
Differences from @cycle/collection:
- Full typescript support
- Simpler API
Install
npm install cycle-lot
Create a collection
Let's assume we have a component named Item with following sinks:
interface ItemSinks {
dom: xs<VNode>
http: xs<RequestOptions>
remove$: xs<any>
}
You can choose any stream in your sinks to trigger component's removal. Here we use a special remove$ stream for clarity.
import {Lot} from "cycle-lot"
Alternatively you can import Collection which is just an alias.
You can also import pickMerge and pickCombine functions, however you probably won't need them.
Here's how you use cycle-lot:
function MyComponent(sources) {
// ...
/** Add a new item every second */
const item_sources$ = xs
.periodic(1000) //
.mapTo({
// whatever sources Item requires
dom: sources.dom,
item: {}
})
// item_sources$ could also emit arrays of sources to simultaneously add multiple items
const lot = Lot(Item, item_sources$, "remove