in src/main/js/components/query-result/query-result.js [238:296]
function processResult(result) {
function extractData(rawData) {
if (rawData === null || rawData === undefined) {
return null;
} else if (Array.isArray(rawData)) {
return JSON.stringify(rawData)
} else if (typeof rawData === "object") {
return JSON.stringify(rawData)
} else {
return rawData.toString()
}
}
// if empty result, just skip
if (!result || !result.root.fields.totalCount) {
return {
columns: [],
content: [],
trace: [],
json: result
}
}
const children = result.root.children ? result.root.children : [];
const resultFields = children.flatMap(child => Object.keys(child.fields));
resultFields.push("relevance")
const columns = [...new Set(resultFields)]
.map(column => (
{
name: column,
maxWidth: "300px",
minWidth: "50px",
selector: row => {
const rawData = row[column]
return extractData(rawData)
},
}))
const data = children.map(child => {
const fields = child.fields;
fields.relevance = child.relevance
return fields
})
let trace = []
if ("trace" in result) {
trace = result.trace.children
result["trace"] = "...see trace tab..."
}
return {
columns: columns,
content: data,
trace: trace,
json: result
}
}