---
docgen:
  source: npm/rules/bun/js/layout.mjs
  crc: ba2a6730
  score: 100
---

# layout.mjs

## Огляд

Файл надає інструмент для перевірки відповідності даних визначеному контракту. Функція `check` (bun.mdc) виконує перевірку стану даних і повертає логічний результат, що вказує на успішність виконання перевірки. У разі невдачі функція повертає `false` або `null` замість генерації винятку.

## Поведінка

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

2. Перевірка зв'язку скриптів
   Система перевіряє зв'язок між ідентифікаторами правил, визначеними у конфігурації, та наявністю скриптів у кореневому `package.json`.

3. Оцінка стану власників
   Оцінювач визначає стан кожного правила-власника, порівнюючи активні правила з налаштуваннями. Якщо активне правило присутнє, результат позначається як успішний. Якщо власник відсутній у налаштуваннях, результат позначається як провал, якщо власник не був вимкнений.

4. Перевірка ланцюжків виконання
   Система перевіряє, чи згадує ланцюжок виконання `bun run <скрипт>` конкретний скрипт. Ця перевірка виконується для уникнення хибних спрацьовувань через префікси.

5. Перевірка відповідності
   Основна перевірка встановлює, що якщо скрипт присутній у `package.json`, він повинен бути активним у конфігурації. Якщо скрипт присутній, але власники не активні, система вимагає видалення скрипта з кореневого файлу.

6. Перевірка ланцюжків та вимкнених правил
   Якщо ланцюжок виконання `bun run <скрипт>` присутній, але жоден власник не активний, система вимагає видалення з ланцюжка виконання.

7. Перевірка відсутності
   Якщо скрипт відсутній і власники не активні, система позначає це як успішне проходження.

8. Перевірка заборонених файлів
   Система перевіряє наявність заборонених файлів у корені репозиторію, включаючи файли блокування залежностей та директорії `.yarn`.

9. Перевірка залежностей
   Система перевіряє наявність необхідного файлу `bun.lock`. Відсутність цього файлу є провалом, що вимагає запуску `bun i`.

10. Перевірка конфігурації Bun
    Система перевіряє наявність файлу `bunfig.toml`, який використовується для перевірки структури, необхідної для використання `linker = "hoisted"` у `bun.mdc`.

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

check — перевіряє, чи відповідає проєкт вимогам bun.mdc

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

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