* Refactor Gemini model display: filter old versions, group low/high pro, and improve naming * Fix potential negative minutes and refine Gemini 3 Pro grouping logic based on PR feedback * The account change process has been sped up * Address PR review: enhance error message and parameterize polling interval in process handler * Address PR review: fix potential race condition in database backup logic * fix: prevent renderer white screen and harden sentry gating * feat: localize model labels * chore: enable hoisted node-linker * chore: ignore .agent/.claude/.codex in prettier --------- Co-authored-by: Draculabo <[email protected]>
51 lines
1.1 KiB
Markdown
51 lines
1.1 KiB
Markdown
---
|
|
title: Early Return from Functions
|
|
impact: LOW-MEDIUM
|
|
impactDescription: avoids unnecessary computation
|
|
tags: javascript, functions, optimization, early-return
|
|
---
|
|
|
|
## Early Return from Functions
|
|
|
|
Return early when result is determined to skip unnecessary processing.
|
|
|
|
**Incorrect (processes all items even after finding answer):**
|
|
|
|
```typescript
|
|
function validateUsers(users: User[]) {
|
|
let hasError = false;
|
|
let errorMessage = '';
|
|
|
|
for (const user of users) {
|
|
if (!user.email) {
|
|
hasError = true;
|
|
errorMessage = 'Email required';
|
|
}
|
|
if (!user.name) {
|
|
hasError = true;
|
|
errorMessage = 'Name required';
|
|
}
|
|
// Continues checking all users even after error found
|
|
}
|
|
|
|
return hasError ? { valid: false, error: errorMessage } : { valid: true };
|
|
}
|
|
```
|
|
|
|
**Correct (returns immediately on first error):**
|
|
|
|
```typescript
|
|
function validateUsers(users: User[]) {
|
|
for (const user of users) {
|
|
if (!user.email) {
|
|
return { valid: false, error: 'Email required' };
|
|
}
|
|
if (!user.name) {
|
|
return { valid: false, error: 'Name required' };
|
|
}
|
|
}
|
|
|
|
return { valid: true };
|
|
}
|
|
```
|