---
docgen:
  source: npm/scripts/lib/run-rule.mjs
  crc: 94f3ac44
---

# run-rule.mjs

## Огляд

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

## Поведінка

- `runTemplateSubsetConcern`: Перевіряє файл-концерт за допомогою шаблону, повертаючи 0, якщо все ОК, або 1, якщо є порушення.
- `evaluateAppliesGate`: Викликає функцію `applies` з `js/applies.mjs`, якщо вона існує та повертає `true`.
- `runPolicyConcern`: Запускає policy-концерт через `runConftestBatch`, повертаючи 0, якщо все ОК, або 1, якщо є порушення.
- `runRule`: Оркеструє правила, викликаючи `evaluateAppliesGate`, JS-концерни та policy-концерни, об'єднуючи exit-коди.

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

- runTemplateSubsetConcern — Перевірка відповідності шаблонів: порівнює конфігурацію шаблонів з фактичним файлом, забезпечуючи дотримання правил.
- runRule — Запуск правила: виконує послідовність дій, включаючи перевірку концернів, і застосовує політику.

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

- `applies-гейт` викликає `applies` з `js/applies.mjs`.
- `applies` повертає `false` — виводить `✅ правило не застосовне` і завершує.
- `JS-концерни` викликають `applies` після `applies-гейт`.
- `JS-концерни` можуть викликати `check` для виведення контексту.
- `Policy-концерни` викликають `runConftestBatch`.
- `resolveTargetFiles` кешує результати `walkCache` між `JS-концернами`.
- `createCheckReporter` у `Policy-концерни` OR-ює exit-коди.
- Exit-код правила — 0 або 1.
- `runTemplateSubsetConcern` запускає підмножину шаблонів.
- `runRule` запускає правило.
- Кеш використовується для зберігання результатів `resolveTargetFiles` у межах прогону.
- Немає взаємодії з мережею.
