---
docgen:
  source: npm/scripts/utils/find-package-json-paths.mjs
  crc: 06c208de
---

# find-package-json-paths.mjs

## Огляд

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

## Поведінка

1.  Отримує абсолютний шлях до кореня репозиторію та список абсолютних шляхів каталогів, які потрібно ігнорувати.
2.  Ініціалізує порожній масив для зберігання шляхів до файлів `package.json`.
3.  Використовує обхід каталогу, починаючи з кореня репозиторію, для пошуку файлів `package.json`.
4.  Для кожного файлу `package.json` у каталозі, перевіряє, чи він відповідає критеріям включення (не знаходиться в ігнорованих каталогах).
5.  Якщо файл відповідає критеріям, додає його абсолютний шлях до масиву шляхів.
6.  Після завершення обходу каталогу, сортує масив шляхів до файлів `package.json` за відносним шляхом відносно кореня репозиторію.
7.  Повертає відсортований масив абсолютних шляхів до файлів `package.json`.

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

- findAllPackageJsonPaths — Знаходить всі файли `package.json` в каталозі та підкаталогах.

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

- Функція повертає масив рядків, що представляють відносні шляхи до всіх `package.json` файлів, знайдених у дереві.
- Функція ігнорує каталоги, перелічені в аргументі `walkDir`.
- Функція не гарантує, що `package.json` файли будуть доступні.
- Функція не використовує кешування.
