bacon.combines

0.1.3 • Public • Published

npm version Bower version Build Status Code Coverage

TODO: convert doc from Kefir version

The default export of this library

import K from "bacon.combines"

is a special purpose Bacon observable combinator designed for combining properties for a sink that accepts both observables and constant values such as VDOM extended to accept observables.

Unlike typical observable combinators, when K is invoked with only constants (no observables), then the result is computed immediately and returned as a plain value. This optimization eliminates redundant observables.

The basic semantics of K can be described as

K(x1, ..., xN, fn) === combine([x1, ..., xN], fn).skipDuplicates(identical)

where combineWith and skipDuplicates come from Kefir and identical from Ramda. Duplicates are skipped, because that can reduce unnecessary updates. Ramda's identical provides a semantics of equality that works well within the context of embedding properties to VDOM.

Unlike with combine, any argument of K is allowed to be

  • a constant,
  • an observable (including the combiner function), or
  • an array or object containing observables.

In other words, K also provides functionality similar to combineTemplate.

Note: K is carefully optimized for space—if you write equivalent combinations using Kefir's own operators, they will likely take more memory.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.3
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.3
    1
  • 0.1.2
    0
  • 0.1.0
    0

Package Sidebar

Install

npm i bacon.combines

Weekly Downloads

1

Version

0.1.3

License

MIT

Last publish

Collaborators

  • raimohanska