MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / getOutgoingEdgesFrom

Method getOutgoingEdgesFrom

src/db/queries.ts:2209–2226  ·  view source on GitHub ↗

* Outgoing edges for MANY source nodes in one query. * * The batch form of getOutgoingEdges. Building a nested outline needs * the `contains` edges of every container in a file at once; doing that one * source at a time is a query per symbol on files that have hundreds.

(sourceIds: readonly string[], kinds?: EdgeKind[])

Source from the content-addressed store, hash-verified

2207 * source at a time is a query per symbol on files that have hundreds.
2208 */
2209 getOutgoingEdgesFrom(sourceIds: readonly string[], kinds?: EdgeKind[]): Edge[] {
2210 if (sourceIds.length === 0) return [];
2211 const unique = [...new Set(sourceIds)];
2212 const out: Edge[] = [];
2213 for (let i = 0; i < unique.length; i += SQLITE_PARAM_CHUNK_SIZE) {
2214 const chunk = unique.slice(i, i + SQLITE_PARAM_CHUNK_SIZE);
2215 const placeholders = chunk.map(() => '?').join(',');
2216 let sql = `SELECT * FROM edges WHERE source IN (${placeholders})`;
2217 const params: string[] = [...chunk];
2218 if (kinds && kinds.length > 0) {
2219 sql += ` AND kind IN (${kinds.map(() => '?').join(',')})`;
2220 params.push(...kinds);
2221 }
2222 const rows = this.db.prepare(sql).all(...params) as EdgeRow[];
2223 for (const row of rows) out.push(rowToEdge(row));
2224 }
2225 return out;
2226 }
2227
2228 /**
2229 * Fan-in (total incoming edge count) for MANY nodes in one query.

Callers 13

routeLayoutsFunction · 0.45
routeRootsFunction · 0.45
buildMembersFunction · 0.45
buildFileFunction · 0.45
buildOutlineEntriesFunction · 0.45
repositoryMethodFunction · 0.45
buildStepsFunction · 0.45
fileScopeEdgesWithinFunction · 0.45
buildCallsFunction · 0.45
hierarchyEdgesFunction · 0.45
membersOfFunction · 0.45
buildDeadCodeReportFunction · 0.45

Calls 6

rowToEdgeFunction · 0.85
mapMethod · 0.80
pushMethod · 0.80
allMethod · 0.65
prepareMethod · 0.65
joinMethod · 0.45

Tested by

no test coverage detected