4.0 KiB
Empty Catch Blocks — Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development or superpowers:executing-plans.
Goal: Добавить логирование во все пустые catch-блоки (17 мест), убрать // ignore комментарии.
Architecture: В каждом catch добавить console.warn (клиент) или request.log.error (сервер) с контекстным сообщением. Минимальные, безопасные изменения.
Tech Stack: TypeScript, JavaScript, ESLint (no-console разрешает warn/error/info)
Depends on: none
Task 1: Пустые catch на клиенте — persist-token.ts (3 места)
Files:
-
Modify:
client/src/shared/model/persist-token.ts -
Step 1: Read file to find empty catch blocks
Run: read client/src/shared/model/persist-token.ts
- Step 2: Add console.warn to each catch
Each catch { /* ignore */ } becomes:
catch (err) {
console.warn('[persist-token] Failed to ...', err)
}
Specific messages based on context:
-
localStorage.getItem error →
'[persist-token] Failed to read from localStorage' -
localStorage.setItem error →
'[persist-token] Failed to write to localStorage' -
JSON.parse error →
'[persist-token] Failed to parse stored value' -
Step 3: Run lint
Run: cd client && npm run lint
Expected: PASS
- Step 4: Commit
git add client/src/shared/model/persist-token.ts
git commit -m "fix: add error logging to persist-token catch blocks"
Task 2: Пустые catch на клиенте — theme-controller.tsx (2 места)
Files:
-
Modify:
client/src/shared/model/theme-controller.tsx -
Step 1: Read file
Run: read client/src/shared/model/theme-controller.tsx
- Step 2: Add console.warn to each catch
catch (err) {
console.warn('[theme] Failed to ...', err)
}
-
Step 3: Run lint
-
Step 4: Commit
git add client/src/shared/model/theme-controller.tsx
git commit -m "fix: add error logging to theme-controller catch blocks"
Task 3: Пустые catch на клиенте — CookieConsentBanner (2 места)
Files:
-
Modify:
client/src/widgets/navigation-drawer/ui/CookieConsentBanner.tsx -
Step 1: Read file
-
Step 2: Add console.warn
catch (err) {
console.warn('[cookie-consent] Failed to ...', err)
}
-
Step 3: Run lint
-
Step 4: Commit
git add client/src/widgets/navigation-drawer/ui/CookieConsentBanner.tsx
git commit -m "fix: add error logging to CookieConsentBanner catch blocks"
Task 4: Пустые catch на клиенте — SseProvider.tsx
Files:
-
Modify:
client/src/app/SseProvider.tsx -
Step 1: Read file, find empty catch
-
Step 2: Add console.warn
catch (err) {
console.warn('[sse] Connection error:', err)
}
-
Step 3: Run lint
-
Step 4: Commit
git add client/src/app/SseProvider.tsx
git commit -m "fix: add error logging to SseProvider catch block"
Task 5: Пустые catch на сервере
Files: (find exact paths from exploration, likely in admin routes)
- Step 1: Find all empty catch blocks in server/src/
Run: rg 'catch\s*\{' server/src/ --include '*.js'
- Step 2: Add request.log.error to each
catch (err) {
request.log.error({ err }, 'Failed to [operation description]')
}
- Step 3: Run lint
Run: cd server && npm run lint
Expected: PASS
- Step 4: Run tests
Run: cd server && npm test
Expected: PASS
- Step 5: Commit
git add server/src/
git commit -m "fix: add error logging to server catch blocks"
Task 6: Финальная проверка
- Step 1: Run all lints + tests
cd client && npm run lint && npm test
cd server && npm run lint && npm test
- Step 2: Verify no new ESLint errors
Expected: PASS all