* Get outgoing edges from a node
(sourceId: string, kinds?: EdgeKind[], provenance?: string)
| 1714 | * Get outgoing edges from a node |
| 1715 | */ |
| 1716 | getOutgoingEdges(sourceId: string, kinds?: EdgeKind[], provenance?: string): Edge[] { |
| 1717 | if ((kinds && kinds.length > 0) || provenance) { |
| 1718 | let sql = 'SELECT * FROM edges WHERE source = ?'; |
| 1719 | const params: (string | number)[] = [sourceId]; |
| 1720 | |
| 1721 | if (kinds && kinds.length > 0) { |
| 1722 | sql += ` AND kind IN (${kinds.map(() => '?').join(',')})`; |
| 1723 | params.push(...kinds); |
| 1724 | } |
| 1725 | |
| 1726 | if (provenance) { |
| 1727 | sql += ' AND provenance = ?'; |
| 1728 | params.push(provenance); |
| 1729 | } |
| 1730 | |
| 1731 | const rows = this.db.prepare(sql).all(...params) as EdgeRow[]; |
| 1732 | return rows.map(rowToEdge); |
| 1733 | } |
| 1734 | |
| 1735 | if (!this.stmts.getEdgesBySource) { |
| 1736 | this.stmts.getEdgesBySource = this.db.prepare('SELECT * FROM edges WHERE source = ?'); |
| 1737 | } |
| 1738 | const rows = this.stmts.getEdgesBySource.all(sourceId) as EdgeRow[]; |
| 1739 | return rows.map(rowToEdge); |
| 1740 | } |
| 1741 | |
| 1742 | /** |
| 1743 | * Get incoming edges to a node |
no test coverage detected