UNPKG

@ghostry/finity-core

Version:

Finite state management with exhaustiveness and transition enforcement for TypeScript.

1 lines 526 B
function t(t,s,e){return s in t?Object.defineProperty(t,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[s]=e,t}class s{constructor(s,e){t(this,"state",void 0),t(this,"cases",void 0),t(this,"case",void 0),t(this,"use",void 0),this.state=s,this.cases=e,this.case=(t,s)=>(this.cases=[...this.cases,[t,s]],this),this.use=()=>{let t=this.state(),s=this.cases.find(s=>{let[e,i]=s;return e.includes(t.kind)});if(s){let[e,i]=s;return i(t)}throw Error("[finity] Invalid state switch!")}}}export{s as ExhaustiveSwitchInstance};