---
docgen:
  source: npm/scripts/lib/rule-meta.mjs
  crc: fa5ca866
---

# rule-meta.mjs

## Огляд

Цей файл парсує метадані правил npm/rules/<id>/meta.json для автоматичного виявлення проблемних місць у коді. Він визначає, коли правило має бути активним, використовуючи різні специфікації, такі як завжди-ввімкнене правило, правило, яке активується після виявлення залежностей, або правило, яке активується на основі glob-шаблонів чи незводимих предикатів. Це дозволяє системі динамічно визначати та застосовувати правила, не потребуючи явного налаштування.

## Поведінка

`RULE_ALWAYS`: визначає літерал для активації правила "завжди".
`parseRuleAutoSpec`: нормалізує значення `meta.json.auto` у дискриміновану форму.
`parseRuleLintPhase`: нормалізує значення `meta.json.lint` у фазу lint.
`readRuleMetaRaw`: читає та парсить `meta.json` одного правила, повертаючи об’єкт або `null`.

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

- RULE_ALWAYS — Активує правило.
- parseRuleAutoSpec — Перетворює значення `meta.json.auto` на конкретну опцію.
- parseRuleLintPhase — Перетворює значення `meta.json.lint` на фазу lint.
- readRuleMetaRaw — Зчитує та аналізує файл `meta.json` правила.

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

- `RULE_ALWAYS` повертає `true` якщо правило активне.
- `parseRuleAutoSpec` повертає `true` якщо специфікація правила успішно розібрана.
- `parseRuleAutoSpec` повертає `false` якщо специфікація правила не може бути розібрана.
- `parseRuleLintPhase` повертає `true` якщо правило успішно розібрано на етапі linting.
- `parseRuleLintPhase` повертає `false` якщо правило не може бути розібрано на етапі linting.
- `readRuleMetaRaw` повертає `true` якщо метадані правила успішно прочитані.
- `readRuleMetaRaw` повертає `false` якщо метадані правила не можуть бути прочитані.
- У разі невдачі, функція повертає `false` або `null`.
- Функції не кидають винятків.
- Немає кешування.
- Немає гарантій щодо стану файлів або каталогів.
- Поля `worktree` правила не використовуються.
