import { ISubscriber, ISubscription } from "../types"; import { Revision } from "./revision"; export function checkRevisions(subscriptions: Map) { let revisionsChanged = false; subscriptions.forEach((revision, subscription) => { revisionsChanged ||= subscription._getRevision() !== revision; }); return revisionsChanged; } export function unsubscribe( subscriptions: Map, subscriber: ISubscriber ): void { subscriptions.forEach((_revision, subscription) => { subscription._removeSubscriber(subscriber); }); } export function subscribe( subscriptions: Map, subscriber: ISubscriber ): void { subscriptions.forEach((_revision, subscription) => { subscription._addSubscriber(subscriber); }); } export function notify(subscribers: Set): void { subscribers.forEach((subscriber) => { subscriber._notify(); }); }