UNPKG

@progress/telerik-blazor-mcp

Version:

Model Context Protocol for Blazor

43 lines (42 loc) 1.49 kB
import protoLoader from '@grpc/proto-loader'; import grpc from '@grpc/grpc-js'; import { dirname, join } from 'path'; import { fileURLToPath } from 'url'; import { readLicense } from './read-license.js'; import { log } from './logger.js'; const protoPath = join(dirname(fileURLToPath(import.meta.url)), '../../proto/service.proto'); const proto = protoLoader.loadSync(protoPath, { keepCase: true, longs: String, enums: String, defaults: true, oneofs: true, }); const protoDescriptor = grpc.loadPackageDefinition(proto); const service = protoDescriptor.ContextQueryService; const client = new service('contextapi.telerik.com:443', grpc.credentials.createSsl()); export async function query(queryParams) { let license = readLicense(); const metadata = new grpc.Metadata(); if (license && typeof license === 'string') { // Check for BOM character and trim it license = license.replace(/^\uFEFF/, ''); try { metadata.add('x-license-key', license); } catch (error) { log('Error adding license key to metadata:', error); return Promise.reject(new Error(`Failed to use license key: ${error.message}`)); } } return new Promise((resolve, reject) => { client.query(queryParams, metadata, (err, response) => { if (err) { reject(err); } else { resolve(response); } }); }); }