synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
217 lines (216 loc) • 5.96 kB
JavaScript
import * as u from "../../synapse-client/SynapseClient.js";
import "@sage-bionetworks/synapse-client/generated/models/ErrorResponseCode";
import "@sage-bionetworks/synapse-client/generated/models/TwoFactorAuthErrorResponse";
import "@sage-bionetworks/synapse-client/util/SynapseClientError";
import "@sage-bionetworks/synapse-types";
import "../../utils/functions/EntityTypeUtils.js";
import { DEFAULT_PAGE_SIZE as c, BUNDLE_MASK_QUERY_RESULTS as E, BUNDLE_MASK_QUERY_COUNT as T } from "../../utils/SynapseConstants.js";
import { merge as f } from "lodash-es";
import "@sage-bionetworks/synapse-client/util/synapseClientFetch";
import "../../utils/PermissionLevelToAccessType.js";
import { useMemo as d } from "react";
import { useSynapseContext as p } from "../../utils/context/SynapseContext.js";
import "use-deep-compare-effect";
import { useQuery as y } from "@tanstack/react-query";
import "@tanstack/query-core";
import "lodash-es/isEmpty";
import "lodash-es/isEqual";
import "lodash-es/xorWith";
import "@mui/material";
import "@sage-bionetworks/synapse-client";
import "react/jsx-runtime";
import "../../utils/hooks/useCookiePreferences.js";
import "../../utils/hooks/useSourceAppConfigs.js";
import "universal-cookie";
import "../../utils/AppUtils/session/ApplicationSessionContext.js";
import "../../utils/context/FullContextProvider.js";
import "../../utils/context/DocumentMetadataContext.js";
import '../../style/components/_spinner.css';/* empty css */
import "react-router";
import "../../utils/types/IsType.js";
import { partitionQueryBundleRequestIntoRowsAndMetadata as b } from "../../utils/functions/queryUtils.js";
const l = {
staleTime: 1e3 * 60 * 30
// 30 minutes
};
function $(e, s) {
const { accessToken: n, keyFactory: i } = p();
return y({
...l,
...s,
queryKey: i.getEntityTableQueryResultQueryKey(
e,
!1
),
queryFn: () => u.getQueryTableResults(e, n)
});
}
function P(e, s, n) {
const { accessToken: i, keyFactory: t } = p();
return y({
...l,
...s,
queryKey: t.getEntityTableQueryResultWithAsyncStatusQueryKey(
e,
!1
),
queryFn: () => u.getQueryTableAsyncJobResults(
e,
i,
n
)
});
}
function M(e, s, n) {
const { rowDataRequest: i } = b(e), t = i.partMask > 0 ? s?.enabled : !1;
return P(
i,
{
...s,
enabled: t
},
n
);
}
function S(e, s, n) {
const { queryMetadataRequest: i } = b(e), t = i.partMask > 0 ? s?.enabled : !1;
return P(
i,
{
...s,
enabled: t
},
n
);
}
function g(e) {
return d(
() => ({
data: e.data,
status: e.status,
isError: e.isError,
isLoading: e.isLoading,
error: e.error,
isSuccess: e.isSuccess,
isPlaceholderData: e.isPlaceholderData,
isPending: e.isPending
}),
[
e.data,
e.error,
e.isError,
e.isLoading,
e.isPending,
e.isPlaceholderData,
e.isSuccess,
e.status
]
);
}
function ee(e, s, n) {
const i = M(
e,
s,
n
), t = S(
e,
s,
n
), r = g(i), o = g(t);
return d(() => r.status === "error" ? r : o.status === "error" ? o : r.isLoading ? r : o.isLoading ? o : r.isPending ? f(
{},
r,
o
) : f(
{},
o,
r
), [r, o]);
}
function te(e, s, n, i) {
return {
...l,
queryKey: s.getEntityTableQueryResultQueryKey(
e,
!0
),
queryFn: (t) => {
const r = typeof t.pageParam == "string" ? parseInt(t.pageParam) : t.pageParam ?? 0;
return u.getQueryTableAsyncJobResults(
{
...e,
query: {
...e.query,
offset: r
},
/**
* If we're on the first page, send the original partMask.
* Otherwise, just ask for the queryResults (if they're in the original partMask), as it's the only part that changes between pages.
*
* We'll merge the "aggregation" parts and the pages of queryResults in the `select` function.
*
* We need the queryCount to know when to stop fetching data, so retrieve that in the first bundle.
*/
partMask: r !== 0 ? e.partMask & E : e.partMask | T
},
n,
i
);
},
select: (t) => {
const r = t?.pages[0];
if (r.responseBody)
for (let o = 0; o < t.pages.length; o++) {
const a = t.pages[o];
a.responseBody != null && (t.pages[o].responseBody = {
...r.responseBody,
// queryResult changes on each page.
queryResult: a.responseBody.queryResult
});
}
return t;
},
getPreviousPageParam: (t) => {
if (t.jobState !== "COMPLETE")
return;
const r = t.requestBody;
if (r.query.offset == null || r.query.offset === 0)
return;
const o = r.query.limit ?? c;
return Math.max(r.query.offset - o, 0);
},
initialPageParam: void 0,
getNextPageParam: (t, r) => {
if (t.jobState !== "COMPLETE")
return;
const o = t.requestBody, a = o.query.limit ?? c, m = r[0].responseBody?.queryCount;
if (!(m != null && (o.query.offset ?? 0) + a >= m))
return t.responseBody.queryResult?.queryResults.rows.length === a ? (o.query.offset ?? 0) + a : void 0;
}
};
}
function re(e, s, n = !1) {
const { accessToken: i, keyFactory: t } = p();
return y({
...l,
...s,
queryKey: t.getFullTableQueryResultQueryKey(
e,
n
),
queryFn: () => u.getFullQueryTableResults(
e,
n ? void 0 : i
)
});
}
export {
$ as default,
te as getInfiniteQueryResultBundleOptions,
l as tableQueryUseQueryDefaults,
re as useGetFullTableQueryResults,
ee as useGetQueryResultBundleWithAsyncStatus,
M as useGetQueryRows,
S as useGetQueryStats
};
//# sourceMappingURL=useGetQueryResultBundle.js.map