---
docgen:
  source: npm/scripts/lib/assert-project-root.mjs
  crc: adb87c16
  score: 100
---

# assert-project-root.mjs

## Огляд

Файл перевіряє розташування поточного каталогу відносно кореня git-репозиторію. Функції надають доступ до шляху кореня репозиторію та перевірку, чи знаходиться поточний каталог саме в цьому корені. Код спирається на конфіги, визначені у `.n-cursor.json`.

## Поведінка

gitToplevel
Повертає абсолютний шлях до кореня git-репозиторію або null, якщо git недоступний або не повертає кореня.

assertCwdIsProjectRoot
Перевіряє, чи знаходиться поточний каталог у корені git-репозиторію. Кидає помилку, якщо каталог знаходиться всередині репозиторію, але не в корені. Пропускає перевірку, якщо git не знаходить кореня.

## Публічний API

- gitToplevel — повертає шлях до кореня git-репозиторію через `git rev-parse --show-toplevel`. Повертає `null`, якщо `dir` не є частиною git-репозиторію або `git` недоступний.
- assertCwdIsProjectRoot — генерує помилку, якщо `dir` знаходиться у піддиректорії git-репозиторію. Пропускає, якщо `toplevel` відсутній (наприклад, у `git-worktree`), дозволяючи запуск.

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

- Read-only: файл не виконує операцій запису у файлову систему.
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
- Не звертається до мережі.
