const grpc = require("@grpc/grpc-js"); const protoLoader = require("@grpc/proto-loader"); const path = require("path"); const getgRPCConnection = (session) => { return new Promise((resolve, reject) => { protoLoader .load(path.join(__dirname, "text_to_speech.proto"), { keepCase: true, longs: String, enums: String, defaults: true, oneofs: true, }) .then((packageDefinition) => { const textToSpeechProto = grpc.loadPackageDefinition(packageDefinition).texttospeech; const client = new textToSpeechProto.TextToSpeechService( "localhost:8081", grpc.credentials.createInsecure() ); session.client = client; const channel = session.client.getChannel(); session.channel = channel; console.log("Made connection"); session.client = client; const call = client.ProcessText(); resolve(call); }) .catch((error) => { session.client = null; console.error("Error loading proto file:", error); reject(new Error("Error in making gRPC Connection.")); }); }); }; module.exports = { getgRPCConnection };