summaryrefslogtreecommitdiff
path: root/packages/server/src/core
diff options
context:
space:
mode:
authorJaana Dogan <[email protected]>2025-04-21 12:15:47 -0700
committerGitHub <[email protected]>2025-04-21 12:15:47 -0700
commit53a5728009adf1e91115ee0eb839eafa00262adf (patch)
tree2ad9b1a643f55ea22cc19946213f5790a9f2c8ce /packages/server/src/core
parentdea0782c891b2d849cc31c1364b32a9fb9a7a312 (diff)
Remove redundant else branches (#86)
Else branches are an anti pattern especially if you can easily return from the previous branch. Over time, else branches cause deep nesting and make code unreadable and unmaintainable. Remove elses where possible.
Diffstat (limited to 'packages/server/src/core')
-rw-r--r--packages/server/src/core/gemini-client.ts5
-rw-r--r--packages/server/src/core/turn.ts49
2 files changed, 26 insertions, 28 deletions
diff --git a/packages/server/src/core/gemini-client.ts b/packages/server/src/core/gemini-client.ts
index b9b44534..5829afa8 100644
--- a/packages/server/src/core/gemini-client.ts
+++ b/packages/server/src/core/gemini-client.ts
@@ -129,10 +129,9 @@ export class GeminiClient {
if (error instanceof Error && error.name === 'AbortError') {
console.log('Gemini stream request aborted by user.');
throw error;
- } else {
- console.error(`Error during Gemini stream or tool interaction:`, error);
- throw error;
}
+ console.error(`Error during Gemini stream or tool interaction:`, error);
+ throw error;
}
}
diff --git a/packages/server/src/core/turn.ts b/packages/server/src/core/turn.ts
index 31656466..a93cbc57 100644
--- a/packages/server/src/core/turn.ts
+++ b/packages/server/src/core/turn.ts
@@ -152,14 +152,13 @@ export class Turn {
);
if (confirmationDetails) {
return { ...pendingToolCall, confirmationDetails };
- } else {
- const result = await tool.execute(pendingToolCall.args);
- return {
- ...pendingToolCall,
- result,
- confirmationDetails: undefined,
- };
}
+ const result = await tool.execute(pendingToolCall.args);
+ return {
+ ...pendingToolCall,
+ result,
+ confirmationDetails: undefined,
+ };
} catch (execError: unknown) {
return {
...pendingToolCall,
@@ -191,17 +190,17 @@ export class Turn {
type: GeminiEventType.ToolCallConfirmation,
value: serverConfirmationetails,
};
- } else {
- const responsePart = this.buildFunctionResponse(outcome);
- this.fnResponses.push(responsePart);
- const responseInfo: ToolCallResponseInfo = {
- callId: outcome.callId,
- responsePart,
- resultDisplay: outcome.result?.returnDisplay,
- error: outcome.error,
- };
- yield { type: GeminiEventType.ToolCallResponse, value: responseInfo };
}
+ const responsePart = this.buildFunctionResponse(outcome);
+ this.fnResponses.push(responsePart);
+ const responseInfo: ToolCallResponseInfo = {
+ callId: outcome.callId,
+ responsePart,
+ resultDisplay: outcome.result?.returnDisplay,
+ error: outcome.error,
+ };
+ yield { type: GeminiEventType.ToolCallResponse, value: responseInfo };
+ return;
}
}
@@ -225,23 +224,23 @@ export class Turn {
// Builds the Part array expected by the Google GenAI API
private buildFunctionResponse(outcome: ServerToolExecutionOutcome): Part {
const { name, result, error } = outcome;
- let fnResponsePayload: Record<string, unknown>;
-
if (error) {
// Format error for the LLM
const errorMessage = error?.message || String(error);
- fnResponsePayload = { error: `Tool execution failed: ${errorMessage}` };
console.error(`[Server Turn] Error executing tool ${name}:`, error);
- } else {
- // Pass successful tool result (content meant for LLM)
- fnResponsePayload = { output: result?.llmContent ?? '' }; // Default to empty string if no content
+ return {
+ functionResponse: {
+ name,
+ id: outcome.callId,
+ response: { error: `Tool execution failed: ${errorMessage}` },
+ },
+ };
}
-
return {
functionResponse: {
name,
id: outcome.callId,
- response: fnResponsePayload,
+ response: { output: result?.llmContent ?? '' },
},
};
}