Main entry point for RPC wrapper generation
(schemaPath: string)
| 2124 | |
| 2125 | /** Main entry point for RPC wrapper generation */ |
| 2126 | async function generateRpcWrappers(schemaPath: string): Promise<void> { |
| 2127 | console.log("\n🔧 Generating RPC wrapper classes..."); |
| 2128 | |
| 2129 | const schemaContent = await fs.readFile(schemaPath, "utf-8"); |
| 2130 | const schema = normalizeSchemaBrandCasing(JSON.parse(schemaContent)) as { |
| 2131 | server?: Record<string, unknown>; |
| 2132 | session?: Record<string, unknown>; |
| 2133 | clientSession?: Record<string, unknown>; |
| 2134 | definitions?: Record<string, JSONSchema7>; |
| 2135 | }; |
| 2136 | |
| 2137 | // Set module-level definitions for $ref resolution in wrapper helpers |
| 2138 | currentDefinitions = (schema.definitions ?? {}) as Record<string, JSONSchema7>; |
| 2139 | |
| 2140 | const packageName = "com.github.copilot.generated.rpc"; |
| 2141 | const packageDir = `src/generated/java/com/github/copilot/generated/rpc`; |
| 2142 | |
| 2143 | // RpcCaller interface and shared ObjectMapper holder |
| 2144 | await generateRpcCallerInterface(packageName, packageDir); |
| 2145 | await generateRpcMapperClass(packageName, packageDir); |
| 2146 | |
| 2147 | // Server-side wrappers |
| 2148 | if (schema.server) { |
| 2149 | const serverTree = buildNamespaceTree(schema.server); |
| 2150 | await generateRpcRootFile("server", serverTree, false, packageName, packageDir); |
| 2151 | } |
| 2152 | |
| 2153 | // Session-side wrappers |
| 2154 | if (schema.session) { |
| 2155 | const sessionTree = buildNamespaceTree(schema.session); |
| 2156 | await generateRpcRootFile("session", sessionTree, true, packageName, packageDir); |
| 2157 | } |
| 2158 | |
| 2159 | console.log(`✅ RPC wrapper classes generated`); |
| 2160 | } |
| 2161 | |
| 2162 | // ── Package-info generation ────────────────────────────────────────────────── |
| 2163 |
no test coverage detected
searching dependent graphs…