UNPKG

@kgdata/visualgraph

Version:
62 lines (59 loc) 1.36 kB
type EDGE = { source: string; target: string; }; export const computeNodesWeight = (edges: EDGE[]) => { const ret = {}; edges.forEach((edge: EDGE) => { const { source, target } = edge; for (const iterator of [source, target]) { if (ret[iterator]) { ret[iterator] += ret[iterator]; } else { ret[iterator] = 1; } } }); return ret; }; export const getNodeWeight = ( id: string, idWeightMap: Record<string, number | undefined> = {}, ) => { return idWeightMap[id] || 0; }; export const computeNodeSize = ( maxSize: number, baseSize: number, weight: number, ratio: number = 0.2, ) => { return Math.min(baseSize + ratio * weight, maxSize); }; export function countByEntityType( list: { ooId: string | number; ooName: any }[] = [], ) { let ret = {}; list.forEach( (item: { ooId: string | number; ooName: any; name?: string }) => { if (!ret[item.ooId]) { ret = { ...ret, [item.ooId]: { name: item.ooName, value: 1, }, }; } else { ret = { ...ret, [item.ooId]: { name: item.ooName || item?.name, value: ret[item.ooId].value + 1, }, }; } }, ); return ret; }