@mee4dy/crud
Version:
Create a backend and frontend in 5 minutes! With our powerful full stack crud system, customize it to suit you.
3 lines (2 loc) • 3.7 kB
JavaScript
"use strict";const p=require("lodash"),y=require("qs");function h(n){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const r in n)if(r!=="default"){const t=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(o,r,t.get?t:{enumerable:!0,get:()=>n[r]})}}return o.default=n,Object.freeze(o)}const g=h(p),O={setCtx({getters:n,dispatch:o,state:r,commit:t}){t("setCtx",{getters:n,dispatch:o,commit:t,state:r})},setQuery({commit:n,dispatch:o},r){n("setQuery",r),o("setQuerySelectedFilters",r),o("setQuerySelectedGroups",r),o("setQuerySelectedOrders",r)},setQuerySelectedFilters({commit:n,state:o,getters:r},t){const e=r.getFilters,a=t,c={};for(let s in a){const i=a[s];s==="pk"&&(a[o.pk]=i,s=o.pk),e.find(d=>d.key===s)&&(c[s]=i)}n("setSelectedFilters",c)},setQuerySelectedGroups({commit:n,state:o,getters:r},t){const e=r.getGroups.map(s=>s.key),a=t!=null&&t.groups?t==null?void 0:t.groups.split(","):[],c=[];for(let s of a)s==="pk"&&(s=o.pk),e.includes(s)&&c.push(s);n("setSelectedGroups",c)},setQuerySelectedOrders({commit:n,state:o,getters:r},t){const e=r.getOrders,a=t!=null&&t.orders?t==null?void 0:t.orders.split(","):[],c={};for(let s of a){const i=s.charAt(0)==="-";i&&(s=s.substring(1)),s==="pk"&&(a[o.pk]=a[s],s=o.pk),e.includes(s)&&(c[s]=i?"desc":"asc")}n("setSelectedOrders",c)},syncSelectedToQuery({commit:n,state:o,getters:r}){const t=r.getSelectedFilters,e=r.getSelectedGroups.join(","),a=Object.entries(r.getSelectedOrders).map(([d,l])=>`${d==="desc"?"-":""}${l}`).join(","),c={filters:t,groups:e,orders:a},s=new URLSearchParams(window.location.search);for(const d in c){const l=c[d];l&&(typeof l=="object"?Object.entries(r.getSelectedFilters).forEach(([u,f])=>{s.set(u,f.toString())}):s.set(d,l))}const i=decodeURIComponent(s.toString());history.pushState(null,null,i?`?${i}`:"")},async setItems({commit:n,state:o,getters:r,dispatch:t},e){await t("setCtx"),n("setItems",e)},async fetch({commit:n,state:o,getters:r,dispatch:t},e){const a=r.getEndpoint("fetch");if(a)try{n("setLoading",!0);const c=r.getParams,s=r.getState("config.client.abort"),i=r.getState("config.client.cancelToken");e!=null&&e.applyQuery&&t("syncSelectedToQuery"),e!=null&&e.filters&&(c.filters=e.filters),e!=null&&e.groups&&(c.groups=e.groups),e!=null&&e.orders&&(c.orders=e.orders),s&&i&&i.cancel();const l=this.$axios.CancelToken.source();n("setState",{path:"config.client.cancelToken",value:l});const u=await this.$axios.get(a,{cancelToken:l.token,params:c,paramsSerializer:S=>y.stringify(S,{arrayFormat:"brackets"})});let f=u.data.data.items;return t("setItems",f),u==null?void 0:u.data}catch(c){console.log(c)}finally{n("setLoading",!1),n("setState",{path:"config.client.cancelToken",value:null})}},async create({commit:n,state:o,dispatch:r,getters:t},{data:e}){const a=t.getEndpoint("create");if(a)try{const c=await this.$axios.post(a,{data:e});return c==null?void 0:c.data}catch(c){console.log(c)}},async update({commit:n,state:o,dispatch:r,getters:t},{pk:e,data:a,level:c}){if(c&&c.path&&c.parentPK){const i=g.toPath(c.path)[0];await r(`${i}/update`,{pk:e,data:a},{root:!0}),n("update",{pk:e,data:a,level:c});return}const s=t.getEndpoint("update",e);if(!(!s||!e))try{const i=await this.$axios.post(s,{pk:e,data:a});return n("update",{pk:e,data:a}),i==null?void 0:i.data}catch(i){console.log(i)}},async delete({commit:n,state:o,getters:r,dispatch:t},{pk:e,level:a}){if(a&&a.path&&a.parentPK){const s=g.toPath(a.path)[0];await t(`${s}/delete`,{pk:e},{root:!0}),n("delete",{pk:e,level:a});return}const c=r.getEndpoint("delete",e);if(!(!c||!e))try{await this.$axios.post(c,{pk:e}),n("delete",{pk:e})}catch(s){console.log(s)}}};module.exports=O;
//# sourceMappingURL=actions.cjs.map