UNPKG

@snipsonian/core

Version:

Core/base reusable javascript code snippets

34 lines (33 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function createObserverManager() { let counter = 0; const manager = { observers: [], }; const observerManager = manager; observerManager.registerObserver = ({ onNotify, onError }) => { counter += 1; const observer = { notify: onNotify, notifyError: onError, id: counter, }; observerManager.observers.push(observer); return observer; }; observerManager.notifyObservers = (notification) => { observerManager.observers.forEach((observer) => observer.notify(notification)); }; observerManager.notifyObserversOfError = (error) => { observerManager.observers.forEach((observer) => observer.notifyError(error)); }; observerManager.unRegisterObserver = (observer) => { const observerIndex = observerManager.observers.indexOf(observer); if (observerIndex > -1) { observerManager.observers.splice(observerIndex, 1); } }; return observerManager; } exports.default = createObserverManager;