diff --git a/package.json b/package.json index c6e7173..d40e4df 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "copilot-bridge", "displayName": "Copilot Bridge", "description": "Local OpenAI-compatible chat endpoint bridging to GitHub Copilot via the VS Code Language Model API.", - "version": "0.1.4", + "version": "0.1.5", "publisher": "thinkability", "engines": { "vscode": "^1.90.0" diff --git a/src/http/server.ts b/src/http/server.ts index 0ae8b1e..ad8094c 100644 --- a/src/http/server.ts +++ b/src/http/server.ts @@ -56,16 +56,30 @@ export const startServer = async (): Promise => { }); await new Promise((resolve, reject) => { - const srv: Server = app.listen(config.port, config.host, (err?: any) => { - if (err) { - reject(err); - } else { + let resolved = false; + try { + app.listen(config.port, config.host, () => { + const srv: Server | undefined = app.server; + if (!srv) { + reject(new Error('Server failed to start')); + return; + } state.server = srv; updateStatusAfterStart(); + resolved = true; resolve(); - } - }); - srv.on('error', reject); + }); + } catch (err) { + reject(err); + return; + } + const srv: Server | undefined = app.server; + if (srv && typeof (srv as any).on === 'function') { + srv.on('error', reject); + } + if (!resolved && app.server && typeof (app.server as any).on === 'function') { + app.server.on('error', reject); + } }); };