UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

88 lines (87 loc) 3.56 kB
import { useMemo as m } from "react"; import { useQuery as a, skipToken as u } from "@tanstack/react-query"; import { ColumnSingleValueFilterOperator as c, COLUMN_SINGLE_VALUE_QUERY_FILTER_CONCRETE_TYPE_VALUE as l } from "@sage-bionetworks/synapse-types"; import "../../../../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 "../../../../utils/functions/EntityTypeUtils.js"; import { BUNDLE_MASK_QUERY_RESULTS as y } from "../../../../utils/SynapseConstants.js"; import "lodash-es"; import "@sage-bionetworks/synapse-client/util/synapseClientFetch"; import "../../../../utils/PermissionLevelToAccessType.js"; import "../../../../utils/context/SynapseContext.js"; import "use-deep-compare-effect"; import "react/jsx-runtime"; import "@mui/material"; 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 "@tanstack/query-core"; import "lodash-es/isEmpty"; import "lodash-es/isEqual"; import "lodash-es/xorWith"; import "react-router"; import "@sage-bionetworks/synapse-client"; import "../../../../utils/types/IsType.js"; import { useGetQueryResultBundleWithAsyncStatus as E } from "../../../../synapse-queries/entity/useGetQueryResultBundle.js"; const d = "syn66047339", f = (r) => ["europepmc", r]; async function w(r, t) { if (t.length === 0) return []; const p = t.map((n) => `PMCID:${n}`).join(" OR "), e = new URL("https://www.ebi.ac.uk/europepmc/webservices/rest/search"); e.searchParams.set("query", p), e.searchParams.set("format", "json"), e.searchParams.set("pageSize", String(t.length)); const o = await fetch(e.toString(), { headers: { Accept: "application/json" }, signal: r }); if (!o.ok) throw new Error(`Europe PMC error ${o.status}: ${await o.text()}`); const s = await o.json(); return h(s); } function h(r) { return r.resultList.result.map( (t) => ({ id: t.pmcid, title: t.title ?? "(Untitled)", doi: t.doi, publisher: t.journalTitle, publicationYear: t.pubYear ? Number(t.pubYear) : void 0 // authors: r.authorList?.author?.map((a: EuropePMCAuthor) => a.fullName ?? `${a.firstName ?? ""} ${a.lastName ?? ""}`.trim()) ?? [], }) ); } function J(r, t) { const p = { sql: `select pmcid from ${d}`, additionalFilters: [ { concreteType: l, columnName: "synid", operator: c.EQUAL, values: [r] } ] }, { data: e } = E({ entityId: r, query: p, partMask: y, concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest" }), s = e?.responseBody?.queryResult?.queryResults?.rows?.map((i) => i.values[0]?.toString().replace(/^pmc:/i, "")).filter((i) => i != null), n = m(() => f(r), [r]); return a({ ...t, queryKey: n, queryFn: s ? ({ signal: i }) => w(i, s) : u }); } export { w as fetchMetadataForPMCIDs, f as getMentionsQueryKey, h as mapEuropePMCResponseToCitingWorks, J as useGetMentions }; //# sourceMappingURL=useGetMentions.js.map