---
type: JS Module
title: progress.mjs
resource: npm/scripts/lib/lint-surface/progress.mjs
docgen:
  crc: c442f348
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Цей модуль надає спільний ProgressReporter для unified lint surface, що реалізує гібридний механізм відображення прогресу довгих процесів, згідно з каноном scripts.mdc. Репортер керує відображенням монотонного бару для концернів (з відомим загальним лімітом) та тикера для відстеження знайдених і виправлених порушень. Поведінка відображення залежить від середовища: у TTY використовується однорядковий бар, що інтерактивно оновлюється через cli-progress MultiBar, тоді як у не-TTY середовищах (CI, hooks, пайпи) вивід зведення доповнюється до кожного обробленого елемента без використання ANSI-кодів. Лічильники відображають кількість знайдених порушень у порядку, що не приховує нові виявлені порушення, а збільшує лічильник `found`. Основні функції для роботи з репортером — renderProgressLine та createProgressReporter.

## Поведінка

- `renderProgressLine` створює єдиний текстовий рядок, що відображає стан прогресу (завершено/загалом), шкалу та поточні підсумки знайдених і виправлених порушень; той самий формат використовує черга `lint --full` для показу прогресу активного прогону.
- `createProgressReporter` створює об'єкт-репортер, який керує відображенням прогресу тривалих процесів: у TTY — інтерактивний однорядковий бар, у не-TTY — append-рядки зведення (їх можна вимкнути `appendInNonTTY: false`); кожна зміна стану додатково публікується через опційний колбек `onUpdate`.

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

renderProgressLine — відображає один рядок стану прогресу, що використовується як універсальний формат для самого репортера та для відображення чергової роботи іншого процесу.
createProgressReporter — генерує об'єкт репортера, отримуючи вхідну загальну кількість елементів для обробки.

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

- (специфічних машинно-виведених гарантій немає)
