Skip to content

Latest commit

 

History

History
38 lines (29 loc) · 3.12 KB

File metadata and controls

38 lines (29 loc) · 3.12 KB
type JS Module
title use-project-paths.js
resource app/src/composables/use-project-paths.js
docgen
crc model score issues judgeModel
02e55a8e
omlx/gemma-4-e4b-it-OptiQ-4bit
100
best-of-2:retry-won,judge:inaccurate:0.98
openai-codex/gpt-5.4-mini

Огляд

Механізм реалізує функціональність useProjectPaths для управління набором шляхів до проєктів, що конфігурується в config.json. Він дозволяє додавати, видаляти шляхи та визначати останній вибраний проєкт, забезпечуючи безпечну роботу без викидання винятків; при помилках він повертає null.

Поведінка

Поведінка:

  1. Викликається хук useProjectPaths для доступу до стану шляхів проєктів.
  2. Ініціалізується стан lastProject зі збереженого в localStorage значення, або порожній рядок.
  3. Якщо шляхи проєктів ще не завантажені, викликається loadPaths для отримання списку шляхів з конфігураційного файлу config.json через виклик Tauri API.
  4. Якщо loadPaths не вдається (наприклад, у тестовому середовищі), стан шляхів залишається невизначеним, і жодних помилок назовні не генерується.
  5. Щоб додати новий шлях проєкту, викликається addProjectPath, який додає шлях до списку, усуває дублікати та синхронізує зміни з config.json.
  6. Щоб видалити шлях проєкту, викликається removeProjectPath, який видаляє шлях зі списку та синхронізує зміни з config.json.
  7. Для встановлення останнього обраного проєкту викликається setLastProject, що зберігає шлях у стані та оновлює localStorage.
  8. Зміни до списку шляхів проєкту синхронізуються з config.json з використанням механізму "fire-and-forget", що не гарантує успіх у всіх середовищах.

Публічний API

useProjectPaths — Зберігає в спільному сховищі шляхи до проектів, які шукаються, включаючи конфігурацію Rust та стандартні шляхи користувача ($\sim$/www).

Гарантії поведінки

  • Read-only: не виконує операцій запису (ФС/БД).
  • Перехоплює помилки і не пропускає винятків назовні (fail-safe).
  • За певних помилок повертає порожнє значення (напр. null) замість винятку.