Special purpose applicative Kefir combinator
npm install kefir.combines





**WARNING: This library has been superseded by the Karet
Lift library.**
The default export of this library
``js`
import K from "kefir.combines"
is a special purpose Kefir 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
`js`
K(x1, ..., xN, fn) === combine([x1, ..., xN], fn).skipDuplicates(identical)
where combine
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 similarcombineTemplate
to.
Note: K` is carefully optimized for space—if you write equivalent
combinations using Kefir's own operators, they will likely take more memory.