Files
TREK/shared/scripts/format-lint.mjs
T
Maurice 1ea435d730 ci: server and shared lint stop rewriting files, and Prettier is checked per file
shared's lint ran eslint --fix with prettier/prettier as an error, so in
lint-prettier.yml the format:check after it only ever saw files it had just
rewritten, and the server's format scripts pointed at a test/ directory that
does not exist. Now lint is check-only in both (lint:fix applies fixes), the
server scripts cover src/ and tests/, and a lint:format ratchet on the shared
library holds every file outside scripts/format-baseline.json to Prettier in
both workspaces: in the server job of test.yml and in lint-prettier.yml,
which keeps providing the lint check. Formatting leaves ESLint in shared, and
the unused eslint-plugin-prettier goes. Once the tree is reformatted in one
commit, --update empties the baselines and the check is a full prettier
--check.
2026-10-10 20:15:54 +02:00

40 lines
1.6 KiB
JavaScript

#!/usr/bin/env node
/*
* lint:format: new shared code is formatted with Prettier.
*
* lint-prettier.yml used to run `npm run lint` with --fix ahead of
* format:check, so the check only ever saw files it had just rewritten, and
* many files differ from what .prettierrc asks for. Formatting all of them
* belongs in one mechanical commit of its own; until it lands, the files that were unformatted when
* this check came in are listed in scripts/format-baseline.json and the list
* only shrinks: every file outside it, a new one in particular, must be
* formatted, and a listed file leaves the list once it has been. After the
* mass reformat, --update empties the list and the check is a plain
* prettier --check over src/.
*
* npm run lint:format check against the baseline (CI)
* npm run lint:format -- --list print every unformatted file
* npm run lint:format -- --update take formatted and deleted files off the list;
* it never adds one
*
* To format a file: npx prettier --write <file>. The comparison lives in
* scripts/lib/format.mjs at the repository root; Prettier and its config come
* from this workspace.
*/
import { fileURLToPath } from 'node:url';
import * as prettier from 'prettier';
import { check } from '../../scripts/lib/format.mjs';
import { runCli } from '../../scripts/lib/ratchet.mjs';
const root = fileURLToPath(new URL('..', import.meta.url));
await runCli('lint:format', (args) =>
check({
prettier,
root,
dirs: ['src'],
accepts: (key) => key.endsWith('.ts'),
update: args.includes('--update'),
list: args.includes('--list'),
}),
);