Skip to content

Полная проверка ​

Прогоняет все тринадцать остальных команд за один проход — каждую в её уже безопасном, read-only режиме — и показывает одну сводную таблицу вместо тринадцати отдельных отчётов. Предложена уже после того, как остальной набор команд был готов — быстрый способ получить полную картину перед коммитом, не вводя тринадцать команд по отдельности.

bash
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 уже не исключил.

Пример:

bash
devtoolz full-check                            # всё, в настоящем терминале спросит про stale-ts-ignore
devtoolz full-check path/to/package             # конкретная директория
devtoolz full-check --skip stale-ts-ignore      # быстрый прогон, без вопроса, без тайпчека
devtoolz full-check --json                      # машиночитаемо, без вопроса