|  | @@ -0,0 +1,24 @@
 | 
	
		
			
				|  |  | +import express from "express";
 | 
	
		
			
				|  |  | +import { createServer } from "http";
 | 
	
		
			
				|  |  | +import { ModuleRpcServer } from "rpc_ts/lib/server";
 | 
	
		
			
				|  |  | +import { ModuleRpcProtocolServer } from "rpc_ts/lib/protocol/server";
 | 
	
		
			
				|  |  | +import { NoctBotService } from "@shared/rpc/backend";
 | 
	
		
			
				|  |  | +import { logger } from "./logging";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const PORT = +(process.env.WEB_PORT ?? "8181");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const app = express();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const handler: ModuleRpcServer.ServiceHandlerFor<typeof NoctBotService> = {
 | 
	
		
			
				|  |  | +    async getPing({ ping }): Promise<{ text: string }> {
 | 
	
		
			
				|  |  | +        return { text: `pong: ${ping}` };
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +app.use(ModuleRpcProtocolServer.registerRpcRoutes(NoctBotService, handler));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export function startRpcServer(): void {
 | 
	
		
			
				|  |  | +    logger.info(`Starting RPC at *:${PORT}`);
 | 
	
		
			
				|  |  | +    createServer(app).listen(PORT);
 | 
	
		
			
				|  |  | +}
 |