import { call } from 'frptools'; export const streamConfig = { is: s => s && typeof s.subscribe === 'function', sub: (s, fn) => s.subscribe(fn), off: subList => subList.forEach(call), on: (accum, vm) => { const redraw = () => vm.redraw(); return accum.map(s => (streamConfig.is(s) ? streamConfig.sub(s, redraw) : s())); }, val: (s, accum) =>{ if (streamConfig.is(s)) { accum.push(s); return s(); } return s; } };