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

Function fixNullableRequiredRefsInApiSchema

scripts/codegen/utils.ts:521–561  ·  view source on GitHub ↗
(schema: ApiSchema)

Source from the content-addressed store, hash-verified

519 * fix schema defects before any per-language codegen runs.
520 */
521export function fixNullableRequiredRefsInApiSchema(schema: ApiSchema): ApiSchema {
522 function walkApiNode(node: Record<string, unknown> | undefined): Record<string, unknown> | undefined {
523 if (!node) return undefined;
524 const result: Record<string, unknown> = {};
525 for (const [key, value] of Object.entries(node)) {
526 if (isRpcMethod(value)) {
527 const method = value as RpcMethod;
528 result[key] = {
529 ...method,
530 params: method.params ? normalizeNullableRequiredRefs(method.params) : method.params,
531 result: method.result ? normalizeNullableRequiredRefs(method.result) : method.result,
532 };
533 } else if (typeof value === "object" && value !== null) {
534 result[key] = walkApiNode(value as Record<string, unknown>);
535 } else {
536 result[key] = value;
537 }
538 }
539 return result;
540 }
541
542 function normalizeDefs(defs: Record<string, JSONSchema7Definition> | undefined): Record<string, JSONSchema7Definition> | undefined {
543 if (!defs) return undefined;
544 return Object.fromEntries(
545 Object.entries(defs).map(([key, value]) => [
546 key,
547 typeof value === "object" && value !== null ? normalizeNullableRequiredRefs(value as JSONSchema7) : value,
548 ])
549 );
550 }
551
552 return {
553 ...schema,
554 definitions: normalizeDefs(schema.definitions),
555 $defs: normalizeDefs(schema.$defs),
556 server: walkApiNode(schema.server),
557 session: walkApiNode(schema.session),
558 clientSession: walkApiNode(schema.clientSession),
559 clientGlobal: walkApiNode(schema.clientGlobal),
560 };
561}
562
563/** Returns true when every leaf RPC method inside `node` is marked experimental. */
564export function isNodeFullyExperimental(node: Record<string, unknown>): boolean {

Callers 5

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

Calls 2

normalizeDefsFunction · 0.85
walkApiNodeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…