import { Observable } from "rxjs" import { Message, MessageHandler } from "../types" export const handleBy = (handler: MessageHandler, deps: Deps) => (source$: Observable>): Observable => source$.pipe((s$: Observable>): Observable => { const out$ = handler(s$, deps) if (!out$) { throw new Error("Handlers should return Observable") } return out$ })