* Get incoming edges to a node
(targetId: string, kinds?: EdgeKind[])
| 1743 | * Get incoming edges to a node |
| 1744 | */ |
| 1745 | getIncomingEdges(targetId: string, kinds?: EdgeKind[]): Edge[] { |
| 1746 | if (kinds && kinds.length > 0) { |
| 1747 | const sql = `SELECT * FROM edges WHERE target = ? AND kind IN (${kinds.map(() => '?').join(',')})`; |
| 1748 | const rows = this.db.prepare(sql).all(targetId, ...kinds) as EdgeRow[]; |
| 1749 | return rows.map(rowToEdge); |
| 1750 | } |
| 1751 | |
| 1752 | if (!this.stmts.getEdgesByTarget) { |
| 1753 | this.stmts.getEdgesByTarget = this.db.prepare('SELECT * FROM edges WHERE target = ?'); |
| 1754 | } |
| 1755 | const rows = this.stmts.getEdgesByTarget.all(targetId) as EdgeRow[]; |
| 1756 | return rows.map(rowToEdge); |
| 1757 | } |
| 1758 | |
| 1759 | /** |
| 1760 | * Find all edges where both source and target are in the given node set. |
no test coverage detected