Skip to main content
Glama
deleonio
by deleonio
test-grpc-client.mjsβ€’2.25 kB
#!/usr/bin/env node import { credentials, loadPackageDefinition } from '@grpc/grpc-js'; import { load } from '@grpc/proto-loader'; import { createHydrateServer, hydrateProtoPath } from './dist/index.mjs'; async function testGrpcClient() { console.log('πŸš€ Starting gRPC client test...\n'); // Start server const server = await createHydrateServer({ restHost: '127.0.0.1', restPort: 0, grpcHost: '127.0.0.1', grpcPort: 0, logger: false, }); await server.start(); const grpcEndpoint = server.getGrpcEndpoint(); console.log(`πŸ“‘ gRPC Server running at: ${grpcEndpoint}`); try { // Load proto definition const packageDefinition = await load(hydrateProtoPath, { keepCase: false, longs: String, enums: String, defaults: true, oneofs: true, }); const proto = loadPackageDefinition(packageDefinition); const hydratePackage = proto.publicui?.hydrate; // Create client const client = new hydratePackage.HydrateRenderer(grpcEndpoint, credentials.createInsecure()); console.log('βœ… gRPC Client connected\n'); // Test simple component const testHtml = '<kol-button _label="Test Button"></kol-button>'; console.log('πŸ“€ Sending request:', testHtml); const startTime = Date.now(); const response = await new Promise((resolve, reject) => { client.renderHtml({ html: testHtml }, (error, response) => { if (error) { reject(error); return; } resolve(response); }); }); const duration = Date.now() - startTime; console.log(`πŸ“₯ Response received in ${duration}ms:`); console.log(' HTML length:', response.html.length); console.log(' Components:', response.components); console.log(' Hydrated count:', response.hydratedCount); console.log(' HTML preview:', response.html.substring(0, 200) + '...'); // Parse diagnostics const diagnostics = JSON.parse(response.diagnosticsJson || '[]'); console.log(' Diagnostics:', diagnostics.length, 'items'); // Clean up client.close(); console.log('\nβœ… gRPC test completed successfully!'); } catch (error) { console.error('❌ gRPC test failed:', error.message); } finally { await server.stop(); console.log('πŸ›‘ Server stopped'); } } // Run test testGrpcClient().catch(console.error);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deleonio/public-ui-kolibri'

If you have feedback or need assistance with the MCP directory API, please join our Discord server