varianter
Version:
Simple variants/tagged unions/discriminated unions in TypeScript
3 lines (2 loc) • 309 B
JavaScript
const r=()=>{const r=(r,t)=>n=>{if(r in n)return(0,n[r])(t);if("_"in n)return n._(t);throw new Error("Property doesn't exist in variant, and no fallthrough was specified")};return new Proxy({},{get:(t,n)=>t=>({type:n,data:t,map:r(n,t)})})};export{r as createVariant};
//# sourceMappingURL=index.modern.js.map