---
type: JS Module
title: main.mjs
resource: npm/rules/js/utils_imports/main.mjs
docgen:
  crc: 450df093
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
  issues: judge:inaccurate:0.98
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

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

Поведінка

1. Ініціалізація перевірки відбувається через виклик функції `main`, яка працює в fail-safe режимі та перехоплює помилки, не викидаючи винятків назовні.
2. Робочий каталог системи слугує коренем репозиторію.
3. Конфігураційні шляхи, які мають бути виключені з перевірки (наприклад, `.git`, `node_modules`), завантажуються з файлу .n-cursor.json.
4. Визначаються кореневі каталоги монорепозиторію.
5. Проводиться пошук усіх каталогів `utils` у всіх пакетах монорепозиторію, при цьому ігноруються каталоги, які є типовими артефактами (наприклад, `node_modules`, `.git`, `dist`, `coverage`, `.turbo`, `.next`, `__fixtures__`).
6. Для кожного знайденого каталогу `utils` збирається повний набір відповідних джерел коду, виходячи за межі підкаталогів `tests/` та `__fixtures__/`.
7. Вміст кожного зібраного джерела коду зчитується з файлів.
8. Використовується парсер для аналізу синтаксису з метою витягування всіх рядкових імпортів із коду.
9. Кожен витягнутий імпорт піддається перевірці на відповідність шаблону, що визначає імпорт з батьківського каталогу.
10. Якщо імпорт заборонений, фіксується помилка, яка вказує на відносний шлях до файлу, і реєструється обов'язковий маркер повідомлення (js.mdc).
11. Після завершення перевірки всіх файлів, якщо жодних порушень не знайдено, реєструється успішне завершення (js.mdc).

## Поведінка

1. Викликається функція `main` для ініціалізації перевірки.
2. Системний робочий каталог використовується для визначення кореня репозиторію.
3. Завантажуються конфігураційні шляхи, які ігнорують перевірку, з файлу .n-cursor.json.
4. Знаходяться кореневі каталоги монорепозиторію.
5. Пошукаються всі каталоги з іменем `utils` у всіх пакетах монорепозиторію, при цьому пропускаються типові артефакти (наприклад, node_modules, .git, dist, coverage, .turbo, .next, **fixtures**).
6. Для кожного знайденого каталогу `utils` збираються всі відповідні джерела коду, виходячи за межі підкаталогів `tests/` та `__fixtures__/`.
7. Для кожного зібраного джерела коду зчитується вміст файлу.
8. Витягуються всі рядкові імпорти з коду, використовуючи парсер для аналізу синтаксису.
9. Кожен витягнутий імпорт перевіряється на відповідність шаблону, що вказує на імпорт з батьківського каталогу.
10. Якщо імпорт заборонений, фіксується помилка, яка вказує на відносний шлях до файлу.
11. Після перевірки усіх файлів, якщо порушень не знайдено, реєструється успішне завершення (js.mdc).

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

- Read-only: не виконує операцій запису (ФС/БД).
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- Свідомо пропускає шляхи: `.git`, `node_modules`.
