From edf7245f97e7f29b4826b47bbc0ab66e0806186a Mon Sep 17 00:00:00 2001 From: Geoff Doty Date: Wed, 22 May 2024 13:13:01 -0400 Subject: [PATCH] align dist --- dist/um.js | 31 +++++++++---------------------- dist/um.min.js | 2 +- dist/um.min.js.map | 2 +- jsr.json | 2 +- 4 files changed, 12 insertions(+), 25 deletions(-) diff --git a/dist/um.js b/dist/um.js index d261359..f8ce1ae 100644 --- a/dist/um.js +++ b/dist/um.js @@ -39,11 +39,11 @@ function h(tag, ...args) { * @param {Object} opts.actions object functions includes and return state * @param {String} opts.mount querySelector value * - * @returns {Object} state proxy object + * @returns {Object} state and update() interface */ function app(opts) { // initial setup - let data = check(opts.state, {}); + let state = check(opts.state, {}); let view = check(opts.view, () => null); let actions = check(opts.actions, {}); let mount = opts.mount || "body"; @@ -59,31 +59,18 @@ function app(opts) { return typeof value === typeof type ? value : type; } - // state helper - const state = (state) => { - if(typeof state === "object") { - data = {...data, ...state}; - } - - // update ui - update(); - - // return current state - return data; - }; - /** * Assigns Dispatch-able Actions into App * - * @param {Object} input state used by actions - * @param {Object} actions functions that update state + * @param {Object} data state used by actions + * @param {Object} actions functions that update state */ - function dispatch(input, actions) { + function dispatch(data, actions) { Object.entries(actions).forEach(([name, action]) => { if (typeof action === "function") { actions[name] = (...args) => { // update date from action return - Object.assign(data, action(input, ...args)); + Object.assign(state, action(data, ...args)); // call update update(); @@ -96,15 +83,15 @@ function app(opts) { /** update dom */ const update = () => { - document.querySelector(mount).replaceChildren(view(data, actions)); + document.querySelector(mount).replaceChildren(view(state, actions)); }; // mount view if (opts.view && mount) { - dispatch(data, actions); + dispatch(state, actions); } - return {state} + return {state,update} } export { app, h }; diff --git a/dist/um.min.js b/dist/um.min.js index 4677d64..9213694 100644 --- a/dist/um.min.js +++ b/dist/um.min.js @@ -1,3 +1,3 @@ /*! Um v:0.4.0 | MIT LICENSE | https://github.com/n2geoff/um */ -function h(tag,...args){const el=document.createElement(tag);return args.forEach((arg=>{["boolean","string","number"].includes(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&&function(input,actions){Object.entries(actions).forEach((([name,action])=>{"function"==typeof action&&(actions[name]=(...args)=>{Object.assign(data,action(input,...args)),update()})})),update()}(data,actions),{state:state=>("object"==typeof state&&(data={...data,...state}),update(),data)}}export{app,h}; +function h(tag,...args){const el=document.createElement(tag);return args.forEach((arg=>{["boolean","string","number"].includes(typeof arg)?el.appendChild(document.createTextNode(arg)):Array.isArray(arg)?el.append(...arg):Object.assign(el,arg)})),el}function app(opts){let state=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(state,actions))};return opts.view&&mount&&function(data,actions){Object.entries(actions).forEach((([name,action])=>{"function"==typeof action&&(actions[name]=(...args)=>{Object.assign(state,action(data,...args)),update()})})),update()}(state,actions),{state:state,update:update}}export{app,h}; //# sourceMappingURL=true \ No newline at end of file diff --git a/dist/um.min.js.map b/dist/um.min.js.map index 4f423e6..feef889 100644 --- a/dist/um.min.js.map +++ b/dist/um.min.js.map @@ -1 +1 @@ -{"version":3,"names":["h","tag","args","el","document","createElement","forEach","arg","includes","appendChild","createTextNode","Array","isArray","append","Object","assign","app","opts","data","check","state","view","actions","mount","value","type","update","querySelector","replaceChildren","input","entries","name","action","dispatch"],"sources":["dist/um.js"],"mappings":"AAUA,SAASA,EAAEC,OAAQC,MACf,MAAMC,GAAKC,SAASC,cAAcJ,KAelC,OAVAC,KAAKI,SAASC,MAFc,CAAC,UAAW,SAAU,UAAUC,gBAG3CD,KACTJ,GAAGM,YAAYL,SAASM,eAAeH,MAChCI,MAAMC,QAAQL,KACrBJ,GAAGU,UAAUN,KAEbO,OAAOC,OAAOZ,GAAII,IACtB,IAGGJ,EACX,CAgBA,SAASa,IAAIC,MAET,IAAIC,KAAUC,MAAMF,KAAKG,MAAO,CAAC,GAC7BC,KAAUF,MAAMF,KAAKI,MAAM,IAAM,OACjCC,QAAUH,MAAMF,KAAKK,QAAS,CAAC,GAC/BC,MAAUN,KAAKM,OAAS,OAS5B,SAASJ,MAAMK,MAAOC,MAClB,cAAcD,cAAiBC,KAAOD,MAAQC,IAClD,CAsCA,MAAMC,OAAS,KACXtB,SAASuB,cAAcJ,OAAOK,gBAAgBP,KAAKH,KAAMI,SAAS,EAQtE,OAJIL,KAAKI,MAAQE,OAtBjB,SAAkBM,MAAOP,SACrBR,OAAOgB,QAAQR,SAAShB,SAAQ,EAAEyB,KAAMC,WACd,mBAAXA,SACPV,QAAQS,MAAQ,IAAI7B,QAEhBY,OAAOC,OAAOG,KAAMc,OAAOH,SAAU3B,OAGrCwB,QAAQ,EAEhB,IAGJA,QACJ,CASIO,CAASf,KAAMI,SAGZ,CAACF,MA5COA,QACS,iBAAVA,QACNF,KAAO,IAAIA,QAASE,QAIxBM,SAGOR,MAoCf,QAESF,IAAKhB","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["h","tag","args","el","document","createElement","forEach","arg","includes","appendChild","createTextNode","Array","isArray","append","Object","assign","app","opts","state","check","view","actions","mount","value","type","update","querySelector","replaceChildren","data","entries","name","action","dispatch"],"sources":["dist/um.js"],"mappings":"AAUA,SAASA,EAAEC,OAAQC,MACf,MAAMC,GAAKC,SAASC,cAAcJ,KAelC,OAVAC,KAAKI,SAASC,MAFc,CAAC,UAAW,SAAU,UAAUC,gBAG3CD,KACTJ,GAAGM,YAAYL,SAASM,eAAeH,MAChCI,MAAMC,QAAQL,KACrBJ,GAAGU,UAAUN,KAEbO,OAAOC,OAAOZ,GAAII,IACtB,IAGGJ,EACX,CAgBA,SAASa,IAAIC,MAET,IAAIC,MAAUC,MAAMF,KAAKC,MAAO,CAAC,GAC7BE,KAAUD,MAAMF,KAAKG,MAAM,IAAM,OACjCC,QAAUF,MAAMF,KAAKI,QAAS,CAAC,GAC/BC,MAAUL,KAAKK,OAAS,OAS5B,SAASH,MAAMI,MAAOC,MAClB,cAAcD,cAAiBC,KAAOD,MAAQC,IAClD,CAyBA,MAAMC,OAAS,KACXrB,SAASsB,cAAcJ,OAAOK,gBAAgBP,KAAKF,MAAOG,SAAS,EAQvE,OAJIJ,KAAKG,MAAQE,OAtBjB,SAAkBM,KAAMP,SACpBP,OAAOe,QAAQR,SAASf,SAAQ,EAAEwB,KAAMC,WACd,mBAAXA,SACPV,QAAQS,MAAQ,IAAI5B,QAEhBY,OAAOC,OAAOG,MAAOa,OAAOH,QAAS1B,OAGrCuB,QAAQ,EAEhB,IAGJA,QACJ,CASIO,CAASd,MAAOG,SAGb,CAACH,YAAMO,cAClB,QAEST,IAAKhB","ignoreList":[]} \ No newline at end of file diff --git a/jsr.json b/jsr.json index a7eedbe..e9e529b 100644 --- a/jsr.json +++ b/jsr.json @@ -1,5 +1,5 @@ { "name": "@n2geoff/um", - "version": "0.2.2", + "version": "0.4.0", "exports": "./src/index.js" } \ No newline at end of file