mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
26 lines
519 B
JavaScript
26 lines
519 B
JavaScript
"use strict"
|
|
|
|
var combine = require("./stream").combine
|
|
|
|
module.exports = function(tuples, seed) {
|
|
var streams = tuples.map(function(tuple) {
|
|
var stream = tuple[0]
|
|
if (stream._state.state === 0) stream(undefined)
|
|
return stream
|
|
})
|
|
|
|
var newStream = combine(function() {
|
|
var changed = arguments[arguments.length - 1]
|
|
|
|
streams.forEach(function(stream, idx) {
|
|
if (changed.indexOf(stream) > -1) {
|
|
seed = tuples[idx][1](seed, stream._state.value)
|
|
}
|
|
})
|
|
|
|
return seed
|
|
}, streams)
|
|
|
|
return newStream
|
|
}
|