MCPcopy Index your code
hub / github.com/github/copilot-sdk / collectReachableDefinitionNames

Function collectReachableDefinitionNames

scripts/codegen/utils.ts:1283–1322  ·  view source on GitHub ↗
(
    schema: Record<string, unknown>,
    rootDefinitionNames: Iterable<string> = ["SessionEvent"]
)

Source from the content-addressed store, hash-verified

1281}
1282
1283export function collectReachableDefinitionNames(
1284 schema: Record<string, unknown>,
1285 rootDefinitionNames: Iterable<string> = ["SessionEvent"]
1286): Set<string> {
1287 const definitions = collectDefinitions(schema);
1288 const reachable = new Set<string>();
1289 const visiting = new Set<string>();
1290
1291 const visitDefinition = (name: string): void => {
1292 if (reachable.has(name) || visiting.has(name)) return;
1293 const definition = definitions[name];
1294 if (definition === undefined) return;
1295
1296 visiting.add(name);
1297 reachable.add(name);
1298 visitSchema(definition);
1299 visiting.delete(name);
1300 };
1301
1302 const visitSchema = (value: unknown): void => {
1303 if (!value || typeof value !== "object") return;
1304 if (Array.isArray(value)) {
1305 for (const item of value) visitSchema(item);
1306 return;
1307 }
1308
1309 const record = value as Record<string, unknown>;
1310 if (typeof record.$ref === "string") {
1311 const localRef = parseLocalDefinitionRef(record.$ref);
1312 if (localRef) visitDefinition(localRef);
1313 }
1314 for (const child of Object.values(record)) visitSchema(child);
1315 };
1316
1317 for (const rootName of rootDefinitionNames) {
1318 visitDefinition(rootName);
1319 }
1320
1321 return reachable;
1322}
1323
1324export function collectSchemaReferencedDefinitionNames(
1325 schemas: Iterable<JSONSchema7 | null | undefined>,

Callers 7

generateFunction · 0.85
generateRpcFunction · 0.85
generateRpcFunction · 0.85
generateSessionEventsFunction · 0.85
generateRpcFunction · 0.85

Calls 2

collectDefinitionsFunction · 0.85
visitDefinitionFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…