vicowa-web-components
Version:
2 lines • 788 B
JavaScript
function e(){const e={};return{addObserver(n,r,t){let o=!1;e[n]=e[n]||[];const l=e[n];return l.find((e=>e.owner===t&&e.handler===r))||(l.push({owner:t,handler:r}),o=!0),o},removeOwner(n){n&&Object.keys(e).forEach((r=>{e[r]=e[r].filter((e=>e.owner!==n)),e[r].length||delete e[r]}))},removeObserver(n,r){let t=!1;if(n){const o=e[n];if(o)if(r){const l=o.findIndex((e=>e.handler===r));-1!==l&&(o.splice(l,1),t=!0),o.length||delete e[n]}else delete e[n],t=!0}else{if(!r)throw new Error("no notification or handler specified");Object.keys(e).forEach((n=>{const o=e[n],l=o.findIndex((e=>e.handler===r));-1!==l&&(o.splice(l,1),t=!0),o.length||delete e[n]}))}return t},notify(n,r){const t=e[n];t&&t.slice().forEach((e=>e.handler(r)))}}}export default e;
//# sourceMappingURL=observerFactory.js.map