(entry, sourceById, sourceEdges, fallbackPapers = [])
| 3410 | } |
| 3411 | |
| 3412 | function relatedPapersForEntry(entry, sourceById, sourceEdges, fallbackPapers = []) { |
| 3413 | const relatedIds = new Set(entry?.nodeIds || []); |
| 3414 | for (let depth = 0; depth < 2; depth += 1) { |
| 3415 | sourceEdges.forEach((edge) => { |
| 3416 | if (relatedIds.has(edge.src_id)) relatedIds.add(edge.dst_id); |
| 3417 | if (relatedIds.has(edge.dst_id)) relatedIds.add(edge.src_id); |
| 3418 | }); |
| 3419 | } |
| 3420 | return uniqueGraphNodes([ |
| 3421 | ...Array.from(relatedIds).map((id) => sourceById[id]).filter((node) => node && graphType(node) === "paper"), |
| 3422 | ...fallbackPapers |
| 3423 | ]).slice(0, 4); |
| 3424 | } |
| 3425 | |
| 3426 | function architectureBody(title, sourceNodes, sourceEdges, entries, topPapers) { |
| 3427 | const counts = { |
no test coverage detected