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

Function generatePendingStandaloneTypes

java/scripts/codegen/java.ts:1093–1130  ·  view source on GitHub ↗

* Generate all pending standalone types discovered via $ref resolution. * Iterates until no new types are discovered (handles transitive $ref chains).

(
    packageName: string,
    packageDir: string,
    headerComment: string
)

Source from the content-addressed store, hash-verified

1091 * Iterates until no new types are discovered (handles transitive $ref chains).
1092 */
1093async function generatePendingStandaloneTypes(
1094 packageName: string,
1095 packageDir: string,
1096 headerComment: string
1097): Promise<void> {
1098 const generated = new Set<string>();
1099
1100 while (true) {
1101 const batch: [string, JSONSchema7][] = [];
1102 for (const [name, schema] of pendingStandaloneTypes) {
1103 if (!generated.has(name)) {
1104 batch.push([name, schema]);
1105 generated.add(name);
1106 }
1107 }
1108 pendingStandaloneTypes.clear();
1109
1110 if (batch.length === 0) break;
1111
1112 for (const [name, schema] of batch) {
1113 if (schema.type === "string" && schema.enum) {
1114 await generateStandaloneEnum(name, schema, packageName, packageDir, headerComment);
1115 } else if (schema.type === "object" && schema.properties) {
1116 await generateStandaloneRecord(name, schema, packageName, packageDir, headerComment);
1117 } else if (schema.anyOf && Array.isArray(schema.anyOf)) {
1118 const variants = resolveAnyOfVariants(schema.anyOf as JSONSchema7[]);
1119 if (variants.length > 1 && findDiscriminator(variants)) {
1120 await generatePolymorphicResultClass(name, schema, packageName, packageDir);
1121 } else {
1122 console.warn(`[codegen] Cannot generate standalone type for ${name}: anyOf without discriminator`);
1123 }
1124 } else {
1125 console.warn(`[codegen] Cannot generate standalone type for ${name}: type=${schema.type}`);
1126 }
1127 }
1128 // Generating records may have discovered more $ref targets — loop again
1129 }
1130}
1131
1132async function generateStandaloneEnum(
1133 name: string,

Callers 2

generateSessionEventsFunction · 0.85
generateRpcTypesFunction · 0.85

Calls 8

generateStandaloneEnumFunction · 0.85
generateStandaloneRecordFunction · 0.85
resolveAnyOfVariantsFunction · 0.85
findDiscriminatorFunction · 0.70
pushMethod · 0.45
addMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…