@captaincodeman/rdx
Version:
Small state library. Like Redux, but smaller
2 lines (1 loc) • 510 B
JavaScript
import{stateEvent as e,dispatchEvent as t}from"./const.js";function n(t){return{dispatch:e=>t.dispatch(e),subscribe:n=>(t.addEventListener(e,n),()=>t.removeEventListener(e,n)),getState:()=>t.state,replaceReducer(e){t.reducer=e},[Symbol.observable]:()=>({})}}function r(e,...r){const o=n(e);return r.forEach(n=>{const r=n(o);e.addEventListener(t,e=>{const t=e,{action:n}=t.detail,o=r(e=>e)(n);o?t.detail.action=o:(e.stopImmediatePropagation(),e.preventDefault())})}),e}export{r as applyMiddleware,n as compat};