synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
121 lines (120 loc) • 3.72 kB
JavaScript
import { ColumnSingleValueFilterOperator as u, ColumnMultiValueFunction as c } from "@sage-bionetworks/synapse-types";
import { SYNAPSE_ENTITY_ID_REGEX as d } from "./RegularExpressions.js";
import { splitAndTrim as m } from "./StringUtils.js";
const S = 3, E = (e) => `${e}-temp-QueryFilter-array`;
function f(e) {
return e.match(d) ? e.substring(S) : e;
}
const R = (e, n) => `__${n ?? ""}_${e}`, _ = "SEARCH_TERM", T = "SEARCH_ROLE", g = "FTS_SEARCH_TERM", C = "FTS_SEARCH_ROLE", b = (e, n = u.LIKE, o) => {
const s = o ? sessionStorage.getItem(
E(o)
) : void 0;
let r = [];
if (s && (r = JSON.parse(
s
)), e) {
const i = (t) => t.startsWith("qw") || t.startsWith("__");
r = r.concat(
Object.keys(e || {}).filter(
(t) => !i(t) && e[t] != null && e[t].trim() != ""
).map((t) => {
if (t == _ || t == g)
return {
concreteType: "org.sagebionetworks.repo.model.table.TextMatchesQueryFilter",
searchExpression: e[t]
};
switch (n) {
case u.EQUAL:
return {
concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter",
columnName: t,
operator: n,
values: [e[t]]
};
case u.IN:
return {
concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter",
columnName: t,
operator: n,
values: m(e[t])
};
case c.HAS:
return {
concreteType: "org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter",
columnName: t,
function: n,
_function: n,
values: m(e[t])
};
case u.LIKE:
return {
concreteType: "org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter",
columnName: t,
operator: n,
// Add wildcards around the value
values: [`%${f(e[t])}%`]
};
case c.HAS_LIKE:
return {
concreteType: "org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter",
columnName: t,
function: n,
_function: n,
values: e[t].split(",").map((a) => `%${f(a)}%`)
};
}
})
);
}
return r.length === 0 ? void 0 : r;
}, A = (e) => {
const n = e.match(/(from)\s+(syn)\d+/gi);
return n && n[0] ? n[0].substr(5).trim() : "";
}, v = (e) => {
const o = /from\s+(syn\d+)(?:\.(\d+))?/i.exec(e);
return o ? {
entityId: o[1],
versionNumber: o[2] ? parseInt(o[2]) : void 0
} : { entityId: void 0, versionNumber: void 0 };
}, w = (e, n) => {
const o = n.map((r) => r.values), s = e.map((r) => r.name);
return o.map((r) => {
const i = {};
return r.forEach((t, l) => {
i[s[l]] = t;
}), i;
});
}, N = (e, n, o) => {
if (!e)
return;
const s = e.toLowerCase();
if (n) {
const r = n.findIndex(
(i) => i.name?.toLowerCase() === s
);
if (r != -1)
return r;
}
if (o) {
const r = o.findIndex(
(i) => i.name?.toLowerCase() === s
);
if (r !== -1)
return r;
}
};
export {
C as FTS_SEARCH_ROLE,
g as FTS_SEARCH_TERM,
E as QUERY_FILTERS_SESSION_STORAGE_KEY,
T as SEARCH_ROLE,
_ as SEARCH_TERM,
b as getAdditionalFilters,
N as getColumnIndex,
R as getIgnoredQueryFilterSearchParamKey,
v as parseEntityIdAndVersionFromSqlStatement,
A as parseEntityIdFromSqlStatement,
f as removePrefixIfSynId,
w as resultToJson
};
//# sourceMappingURL=SqlFunctions.js.map