UNPKG

flume-js

Version:

a library for defining applications as a set of inputs and transformations

36 lines (28 loc) 744 B
var conj = require('./core').conj var hasOwnProperty = Object.prototype.hasOwnProperty module.exports = function bindInputs(bindFn, inputs) { if (arguments.length < 2) { inputs = bindFn bindFn = conj } return function transformFn(inputFns, obj, opts) { inputFns = inputFns || createInputFns(inputs, opts.dispatch) return { state: inputFns, value: bindFn(obj, inputFns) } } function createInputFns(inputs, dispatch) { var res = {} for (var k in inputs) { if (hasOwnProperty.call(inputs, k)) res[k] = createInputFn(inputs[k], dispatch) } return res } function createInputFn(input, dispatch) { return function inputFn(v) { dispatch(input, v) } } }