in packages/graph-explorer/src/connector/gremlin/mappers/mapResults.ts [43:70]
function mapAnyValue(
data: GAnyValue
): Array<{ vertex: Vertex } | { edge: Edge } | { scalar: string | number }> {
if (typeof data === "string") {
return [{ scalar: data }];
} else if (
data["@type"] === "g:Int32" ||
data["@type"] === "g:Int64" ||
data["@type"] === "g:Double"
) {
return [{ scalar: data["@value"] }];
} else if (data["@type"] === "g:Edge") {
return [{ edge: mapApiEdge(data) }];
} else if (data["@type"] === "g:Vertex") {
return [{ vertex: mapApiVertex(data) }];
} else if (data["@type"] === "g:Path") {
return mapAnyValue(data["@value"].objects);
} else if (
data["@type"] === "g:List" ||
data["@type"] === "g:Map" ||
data["@type"] === "g:Set"
) {
return data["@value"].flatMap((item: GAnyValue) => mapAnyValue(item));
}
// Unsupported type
return [];
}