@mee4dy/crud
Version:
Create a backend and frontend in 5 minutes! With our powerful full stack crud system, customize it to suit you.
81 lines (80 loc) • 2.63 kB
JavaScript
import { replacePKItems as c } from "../../common/helpers/pk.helper.js";
import { ORM as g } from "../../orm/orm.js";
import * as o from "lodash";
import "deep-object-diff";
const k = {
getState: (t) => (e) => o.get(t, e),
getCtx: (t) => t.ctx,
getPK: (t) => t.pk,
getItems: (t, e, u, s) => {
const n = e.getIncludes;
return t.items.map((r) => {
r.pk = r[t.pk];
for (const d of n)
if (r[d]) {
const i = s[`${d}/getPK`];
i && c(r[d], i);
}
return r;
});
},
getItemsORM: (t, e) => {
if (!e.getCtx)
return [];
const { dispatch: u, commit: s } = e.getCtx, n = o.cloneDeep(e.getItems), r = e.getIncludes;
return new g(
n,
"pk",
{
update({ pk: i, data: l, level: p }) {
return u("update", { pk: i, data: l, level: p });
},
commit({ pk: i, data: l, level: p }) {
return s("update", { pk: i, data: l, level: p });
},
delete({ pk: i, level: l }) {
return u("delete", { pk: i, level: l });
}
},
r
).getItems();
},
getIncludes: (t, e) => t.includes,
getFields: (t, e) => {
var n;
const u = e.getGroups.map((r) => r.key), s = (n = t.items) == null ? void 0 : n[0];
return t.fields.filter((r) => s && (!u.includes(r.key) || s.hasOwnProperty(r.key)));
},
getLoading: (t) => t.loading,
getSelectedFilters: (t, e) => t.selectedFilters,
getSelectedGroups: (t, e) => t.selectedGroups,
getSelectedOrders: (t, e) => t.selectedOrders,
getDefaultFilters: (t, e) => t.defaultFilters,
getDefaultGroups: (t, e) => t.defaultGroups,
getDefaultOrders: (t, e) => t.defaultOrders,
getParams: (t, e) => {
const u = e.getIncludes, s = [e.getSelectedFilters, e.getDefaultFilters].find((d) => !o.isEmpty(d)), n = [e.getSelectedGroups, e.getDefaultGroups].find((d) => !o.isEmpty(d)), r = [e.getSelectedOrders, e.getDefaultOrders].find((d) => !o.isEmpty(d));
return {
includes: u,
filters: s,
groups: n,
orders: r
};
},
getEndpoint: (t) => (e, u) => {
var n;
let s = (n = t == null ? void 0 : t.endpoints) == null ? void 0 : n[e];
return s && u && (s = s.split(":pk").join(u)), s;
},
getFilters: (t) => t.filters.map((e) => (typeof e == "string" && (e = {
key: e
}), e.key === "pk" && (e.key = t.pk), e)),
getGroups: (t) => t.groups.map((e) => (typeof e == "string" && (e = {
key: e
}), e.key === "pk" && (e.key = t.pk), e)),
getOrders: (t) => t.orders.map((e) => e === "pk" ? t.pk : e)
};
export {
k as default
};
//# sourceMappingURL=getters.js.map