diff --git a/src/cli.ts b/src/cli.ts index e1d2a2d..e862fa3 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -147,7 +147,10 @@ interface ChatCompletionResponse { } async function main(): Promise { - const response = await fetch(chatCompletionsUrl(baseUrl), { + const endpoint = chatCompletionsUrl(baseUrl); + let response: Response; + try { + response = await fetch(endpoint, { method: "POST", headers: { "content-type": "application/json", @@ -162,9 +165,15 @@ async function main(): Promise { ], }), }); + } catch (error) { + const reason = error instanceof Error ? error.message : String(error); + throw new Error( + \`QVAC request failed at \${endpoint}. Is QVAC running? Check QVAC_BASE_URL. \${reason}\`, + ); + } if (!response.ok) { - throw new Error(\`QVAC request failed: \${response.status} \${response.statusText}\`); + throw new Error(\`QVAC request failed at \${endpoint}: \${response.status} \${response.statusText}\`); } const data = (await response.json()) as ChatCompletionResponse; diff --git a/test/index.test.ts b/test/index.test.ts index 198f4a3..1458d86 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -102,6 +102,9 @@ describe("create-qvac-app", () => { expect(readFileSync(join(appDirectory, "src/index.ts"), "utf8")).toContain( 'normalized.endsWith("/v1")', ); + expect(readFileSync(join(appDirectory, "src/index.ts"), "utf8")).toContain( + "Is QVAC running? Check QVAC_BASE_URL", + ); const packageJson = JSON.parse( readFileSync(join(appDirectory, "package.json"), "utf8"),