@bapp/auto-api-client
Version:
Client to consume BAPP auto API, based on content types with type inference
195 lines (194 loc) • 4.58 kB
JavaScript
import { queryOptions as o, infiniteQueryOptions as O } from "@tanstack/react-query";
import { mergeConfigs as b, getPageParam as f } from "./utils.js";
const i = (e, t) => {
var p, l;
const {
options: r,
useTenant: n = !0,
useAppSlug: s = !0,
useFilter: g = !0
} = t, { filter: y, config: a } = r, { appSlug: A = "account" } = a;
let c = ["_bappAutoApi"];
return n && a.tenantId && (c = [
...c,
"t",
((l = (p = a.tenantId) == null ? void 0 : p.toString()) == null ? void 0 : l.toLowerCase()) ?? a.tenantId
]), s && (c = [...c, "a", A.toLowerCase()]), c = [...c, ...e], g && y != null && Object.keys(y).filter((q) => y[q] !== void 0).length && (c = [...c, y]), c;
}, u = (e, ...t) => {
const r = t.at(-1), { config: n } = r, { bappAutoApi: s } = n;
return ({ signal: g, pageParam: y }) => {
const a = {
axiosConfig: { signal: g }
};
return y && (a.filter = { ...a.filter, page: y }), e.call(
s,
...t.slice(0, -1),
b(r, a)
);
};
}, Q = (e) => {
const {
config: { bappAutoApi: t }
} = e;
return o({
queryKey: i(["me"], {
options: e,
useTenant: !1,
useAppSlug: !1
}),
queryFn: u(t.getMe, e)
});
}, d = (e, t) => {
const {
config: { bappAutoApi: r }
} = t;
return o({
queryKey: i(["a", e.toLowerCase(), "app"], {
options: t,
useAppSlug: !1
}),
queryFn: u(r.getApp, e, t)
});
}, w = (e, t) => {
const {
config: { bappAutoApi: r }
} = t;
return o({
queryKey: i(
["ct", e.toLowerCase(), "list-introspect"],
{
options: t
}
),
queryFn: u(
r.getEntityListIntrospect,
e,
t
)
});
}, F = (e, t, r) => {
const {
config: { bappAutoApi: n }
} = r, s = ["ct", e.toLowerCase(), "detail-introspect"];
return t && s.push(t), o({
queryKey: i(s, {
options: r
}),
queryFn: u(
n.getEntityDetailIntrospect,
e,
t,
r
)
});
}, C = (e, t) => {
const {
config: { bappAutoApi: r }
} = t;
return o({
queryKey: i(["ct", e.toLowerCase(), "list"], {
options: t
}),
queryFn: u(r.listEntities, e, t)
});
}, E = (e, t) => {
const {
config: { bappAutoApi: r }
} = t;
return O({
queryKey: i(["ct", e.toLowerCase(), "list"], {
options: t
}),
queryFn: u(r.listEntities, e, t),
initialPageParam: 1,
getPreviousPageParam: (n) => n.previous ? f(n.previous) : null,
getNextPageParam: (n) => n.next ? f(n.next) : null
});
}, k = (e, t, r) => {
const {
config: { bappAutoApi: n }
} = r;
return o({
queryKey: i(["ct", e.toLowerCase(), "detail", t], {
options: r
}),
queryFn: u(n.getEntity, e, t, r)
});
}, m = (e) => {
const {
config: { bappAutoApi: t }
} = e;
return o({
queryKey: i(["task", "list"], {
options: e
}),
queryFn: u(t.listTasks, e)
});
}, x = (e, t) => {
const {
config: { bappAutoApi: r }
} = t;
return o({
queryKey: i(["task", "detail", e.toLowerCase()], {
options: t
}),
queryFn: u(r.detailTask, e, t)
});
}, I = (e, t = void 0, r) => {
const {
config: { bappAutoApi: n }
} = r, s = ["task", "run", e.toLowerCase()];
return t != null && Object.keys(t).length && s.push(t), o({
queryKey: i(s, {
options: r
}),
queryFn: u(n.runTask, e, t, r)
});
}, P = (e) => {
const {
config: { bappAutoApi: t }
} = e;
return o({
queryKey: i(["widget", "list"], {
options: e
}),
queryFn: u(t.listWidgets, e)
});
}, v = (e, t) => {
const {
config: { bappAutoApi: r }
} = t;
return o({
queryKey: i(["widget", "detail", e.toLowerCase()], {
options: t
}),
queryFn: u(r.detailWidget, e, t)
});
}, h = (e, t = void 0, r) => {
const {
config: { bappAutoApi: n }
} = r, s = ["widget", "render", e.toLowerCase()];
return t != null && Object.keys(t).length && s.push(t), o({
queryKey: i(s, {
options: r
}),
queryFn: u(n.renderWidget, e, t, r)
});
};
export {
d as getAppQueryOptions,
F as getEntityDetailIntrospectQueryOptions,
k as getEntityDetailQueryOptions,
E as getEntityInfiniteListQueryOptions,
w as getEntityListIntrospectQueryOptions,
C as getEntityListQueryOptions,
Q as getMeQueryOptions,
u as getQueryFn,
i as getQueryKey,
x as getTaskDetailQueryOptions,
m as getTaskListQueryOptions,
I as getTaskRunQueryOptions,
v as getWidgetDetailQueryOptions,
P as getWidgetListQueryOptions,
h as getWidgetRenderQueryOptions
};