Skip to content

Commit 4f40eee

Browse files
fix: collect all distinct edge kinds per pair instead of keeping only first
Impact: 1 functions changed, 0 affected
1 parent b9d6ae4 commit 4f40eee

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/export.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,16 +236,17 @@ export function exportMermaid(db, opts = {}) {
236236
lines.push(' end');
237237
}
238238

239-
// Deduplicate edges per source-target pair, keeping the first encountered kind
239+
// Deduplicate edges per source-target pair, collecting all distinct kinds
240240
const edgeMap = new Map();
241241
for (const { source, target, edge_kind } of edges) {
242242
const key = `${source}|${target}`;
243243
const label = edge_kind === 'imports-type' ? 'imports' : edge_kind;
244-
if (!edgeMap.has(key)) edgeMap.set(key, { source, target, label });
244+
if (!edgeMap.has(key)) edgeMap.set(key, { source, target, labels: new Set() });
245+
edgeMap.get(key).labels.add(label);
245246
}
246247

247-
for (const { source, target, label } of edgeMap.values()) {
248-
lines.push(` ${nodeId(source)} -->|${label}| ${nodeId(target)}`);
248+
for (const { source, target, labels } of edgeMap.values()) {
249+
lines.push(` ${nodeId(source)} -->|${[...labels].join(', ')}| ${nodeId(target)}`);
249250
}
250251
} else {
251252
let edges = db

0 commit comments

Comments
 (0)