UNPKG

@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
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