---
docgen:
  source: npm/rules/doc-files/js/docgen-extract.mjs
  crc: e790ff64
  score: 100
---

# docgen-extract.mjs

## Огляд

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

## Поведінка

1. Витягується факт про файл.
2. Визначається мова файлу.
3. Витягується заголовок файлу.
4. Витягуються публічні експорти.
5. Витягуються імпорти, класифіковані за джерелом.
6. Витягуються внутрішні символи, імпортовані з внутрішніх модулів.
7. Витягуються локальні символи, неекспортовані функції.
8. Визначаються евристичні маркери.
    * readOnly: перевірка на наявність операцій запису.
    * catchesErrors: перевірка на наявність обробки помилок.
    * returnsFalsyOnFail: перевірка на повернення хибних значень при невдачах.
    * network: перевірка на наявність мережевих викликів.
    * caches: перевірка на наявність механізмів кешування.
    * skips: пропуск шляхів .github, .git, node_modules, base/, ua/, .firebase.

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

extractFacts — код файлу перетворює на список фактів

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

- За невдачі повертає значення помилки (`false`/`null`/`Err`) замість генерування винятку чи паніки.
- Кешує результати в межах одного прогону.
- Свідомо пропускає шляхи: `.github`, `.git`, `node_modules`, `base/`, `ua/`, `.firebase`.
