function multicast()

in packages/sdk/src/observing.ts [10:24]


function multicast<T>(observers: Set<Observer<T>>, observable: Subscribe<T>) {
  let close: Closer | undefined;
  return () => {
    if (close) {
      close();
      close = undefined;
    } else {
      close = observable(value => {
        for (const observer of observers) {
          observer(value);
        }
      });
    }
  };
}