UNPKG

@ordojs/core

Version:

Core compiler and runtime for OrdoJS framework

81 lines 2.18 kB
/** * @fileoverview OrdoJS RPC Generator - Automatic RPC stub generation */ import { type ComponentAST, type ParameterNode, type TypeAnnotation } from '../types/index.js'; /** * RPC generation options */ export interface RPCGeneratorOptions { endpoint?: string; timeout?: number; retries?: number; errorHandling?: 'throw' | 'return-null' | 'return-error'; authentication?: boolean; compression?: boolean; } /** * RPC call metadata */ export interface RPCCallMetadata { componentName: string; functionName: string; parameters: ParameterNode[]; returnType: TypeAnnotation; isAsync: boolean; middleware: string[]; permissions: string[]; } /** * Generated RPC stub */ export interface RPCStub { functionName: string; clientCode: string; serverEndpoint: string; metadata: RPCCallMetadata; } /** * RPC Generator for automatic stub generation */ export declare class RPCGenerator { private options; private indentLevel; constructor(options?: Partial<RPCGeneratorOptions>); /** * Generate RPC stubs for all public server functions in a component */ generateRPCStubs(ast: ComponentAST): RPCStub[]; /** * Generate client-side RPC stub code */ generateClientStub(metadata: RPCCallMetadata): string; /** * Generate server endpoint path */ generateServerEndpoint(metadata: RPCCallMetadata): string; /** * Generate Express.js route handler for server function */ generateServerRouteHandler(metadata: RPCCallMetadata): string; /** * Generate complete RPC client module */ generateRPCClientModule(stubs: RPCStub[], componentName: string): string; /** * Generate complete server routes module */ generateServerRoutesModule(stubs: RPCStub[], componentName: string): string; /** * Generate parameter string for function signature */ private generateParameterString; /** * Generate default value for parameter */ private generateDefaultValue; /** * Helper to generate indentation */ private indent; } //# sourceMappingURL=rpc-generator.d.ts.map