Полная проверка
Прогоняет все тринадцать остальных команд за один проход — каждую в её уже безопасном, read-only режиме — и показывает одну сводную таблицу вместо тринадцати отдельных отчётов. Предложена уже после того, как остальной набор команд был готов — быстрый способ получить полную картину перед коммитом, не вводя тринадцать команд по отдельности.
devtoolz full-check [dir] [options]Реальный вывод — небольшой пакет с несколькими реальными, не связанными между собой проблемами:
✖ strip-comments 1 found
✔ console-strip clean
✖ dead-exports 1 found
✔ case-check clean
✔ exports-doctor clean
✔ readme-check clean
✔ unused-deps clean
✔ circular-imports clean
✖ empty-catch 1 found
✔ todo-report clean
✖ scripts-check 3 found
✔ orphan-tests clean
✔ stale-ts-ignore clean
9 clean, 4 found something — see `devtoolz <command> --help` for full detail on any of them.Число рядом с каждой командой считает отдельные находки — комментарии, вызовы, экспорты, что бы конкретная команда ни репортила — никогда не файлы. strip-comments и console-strip не исключение, хотя их собственный отчёт группирует изменения по файлам под капотом.
Никогда ничего не применяет
Три из тринадцати команд здесь (strip-comments, console-strip, case-check) сами по себе умеют писать изменения на диск через -y/--fix. full-check никогда не передаёт ни то, ни другое — каждая из тринадцати выполняется ровно так же, как обычный запуск без обоих флагов: только отчёт. У самой full-check нечего превьюить или применять — чтобы реально исправить найденное, запустите конкретную команду напрямую.
Одна общая директория, без флагов на каждую команду
full-check принимает один-единственный [dir] (по умолчанию .) и передаёт его каждой команде в той форме, которую ожидают именно её опции — { paths: ['.'], cwd: dir } для большинства, { dir } для тех немногих, что принимают только это. Она не пытается прокидывать --ext/--ignore/--tsconfig и подобное в каждую из тринадцати — это осознанное ограничение: full-check — про быстрый обзор с настройками по умолчанию, а не про переконфигурацию всего набора разом. Для чего-то более специфичного запустите нужную команду напрямую с её собственными флагами.
stale-ts-ignore — единственная команда, про которую стоит спросить
Каждая команда здесь выполняется по очереди — stale-ts-ignore последней, поскольку это единственная, которая может сделать full-check реально медленной (настоящий тайпчек всего проекта, дважды). Запуск devtoolz full-check без флагов в настоящем интерактивном терминале спрашивает про неё отдельно перед началом:
stale-ts-ignore runs a full project typecheck twice — this can take noticeably longer than the other commands on a large project.
1) Run it anyway (full sweep)
2) Skip it for this run
Choice [1/2, Enter = 1]:Enter (или 1) — выполнить её. 2 — пропустить именно её на этот прогон. Вопрос появляется только в настоящем терминале, если на него уже не ответили заранее --skip/--json — пайпнутый вывод, CI и --json сразу переходят к выполнению всего, так же, как если бы нажали Enter.
--skip stale-ts-ignore пропускает и вопрос, и саму команду напрямую — способ сделать прогон быстрым и без вопросов каждый раз:
✖ strip-comments 1 found
✔ console-strip clean
✖ dead-exports 1 found
✔ case-check clean
✔ exports-doctor clean
✔ readme-check clean
✔ unused-deps clean
✔ circular-imports clean
✖ empty-catch 1 found
✔ todo-report clean
✖ scripts-check 3 found
✔ orphan-tests clean
⊘ stale-ts-ignore skipped
8 clean, 4 found something, 1 skipped — see `devtoolz <command> --help` for full detail on any of them.--no-prompt отключает именно вопрос, не саму команду — полезно для скрипта, который и так хочет полный прогон и которому не важна (безвредная, но бессмысленная вне настоящего терминала) проверка TTY.
Упавшая команда не останавливает весь прогон
Каждая из тринадцати команд выполняется независимо — если одна падает (настоящее исключение, не просто находка) или не может найти то, что ей нужно (нет package.json, нет tsconfig.json), это отражается как ошибка именно у этой команды, а остальные всё равно выполняются и репортят как обычно.
Опции
[dir]
Директория, которую сканирует/читает каждая команда — одна и та же для всех тринадцати (по умолчанию: .).
--skip <command>
Пропустить команду по имени (повторяемый) — допустимые имена: strip-comments, console-strip, dead-exports, case-check, exports-doctor, readme-check, unused-deps, circular-imports, empty-catch, todo-report, scripts-check, orphan-tests, stale-ts-ignore.
--no-prompt
Не спрашивать про stale-ts-ignore даже в интерактивном терминале — выполнить её, если --skip уже не исключил.
Пример:
devtoolz full-check # всё, в настоящем терминале спросит про stale-ts-ignore
devtoolz full-check path/to/package # конкретная директория
devtoolz full-check --skip stale-ts-ignore # быстрый прогон, без вопроса, без тайпчека
devtoolz full-check --json # машиночитаемо, без вопроса