import { observe } from "./observable"; import { buffer } from "./operators/buffer"; import * as t from "tap"; interface CounterState { count: number; label: "low" | "mid" | "high" } let set: (v: CounterState) => void = () => void (0); const initial: CounterState = { count: 0, label: "low" }; let value = initial; const obs = observe(({ next }) => { next(initial); set = next; }).pipe(buffer(2)); set({ count: 10, label: "mid" }); obs.subscribe({ next: v => value = v }); t.equal(value.count, 10, "State should update"); set({ count: 20, label: "high" });