um/dist/tagged.min.js

3 lines
790 B
JavaScript
Raw Normal View History

2024-05-05 01:23:21 +00:00
/*! Tagged v:0.1 | MIT LICENSE | https://github.com/n2geoff/tagged */
2024-05-05 13:07:17 +00:00
function tag(tag,...args){const el=document.createElement(tag);return args.forEach((arg=>{"string"==typeof arg||"number"==typeof arg?el.appendChild(document.createTextNode(arg)):Array.isArray(arg)?el.append(...arg):Object.assign(el,arg)})),el}function app(opts){let data=check(opts.state,{}),view=check(opts.view,(()=>null)),actions=check(opts.actions,{}),mount=opts.mount||"body";function check(value,type){return typeof value==typeof type?value:type}const update=()=>{document.querySelector(mount).replaceChildren(view(data,actions))};return opts.view&&mount&&update(),{state:state=>("object"==typeof state&&(data={...data,...state}),update(),data),actions:actions}}const h=tag;export{app,h};
2024-05-05 01:23:21 +00:00
//# sourceMappingURL=true