mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-19 21:46:49 +00:00
bd267c67f8
lint:size, lint:layers, lint:rtl (both baselines), lint:skips and lint:warnings only failed a count that passed its entry. A count that fell below its entry was logged and nothing more, so a file that shrank could grow back to its old entry unseen, and the entry of a deleted file stayed behind for the next file at that path. lint:format and lint:offline already fail on such a stale entry, and the docs said these counts may only shrink. Each of them now fails on an entry that lowerCounts would lower or drop, naming its count or saying the file is gone, and tells to run --update, which still only lowers. staleCounts and reportStale in lib/ratchet.mjs hold the shared part. Every baseline matches the tree today, so none needed lowering. The client CLAUDE.md says so, and that CI lints through lint:warnings rather than lint:check.
37 lines
1.9 KiB
JavaScript
37 lines
1.9 KiB
JavaScript
#!/usr/bin/env node
|
|
/*
|
|
* lint:rtl: keeps the layout following the reading direction.
|
|
*
|
|
* Arabic runs the app with dir="rtl". A physical class or style (ml-2,
|
|
* text-left, paddingLeft, left: 0) stays on the same side in either direction,
|
|
* so a gap, an indent or an alignment that follows the text in English lands
|
|
* on the wrong side in Arabic. The logical forms (ms-2, text-start,
|
|
* paddingInlineStart, insetInlineStart) follow the direction, and in a
|
|
* left-to-right language they are exactly the physical ones.
|
|
*
|
|
* Some things are physical on purpose: a map, a chart axis, a drag handle, a
|
|
* popover placed at measured coordinates. Those stay. Every file's physical
|
|
* uses are counted against scripts/rtl-baseline.json, and the check fails when
|
|
* a file holds more than its entry (a file without an entry holds none), so
|
|
* new code reaches for the logical forms. A line that is physical on purpose
|
|
* carries `rtl-lint-disable` in a comment (in a string it is no marker). The
|
|
* marked lines are counted too, against scripts/rtl-disable-baseline.json, so
|
|
* the marker cannot quietly take the place of the logical forms: a new one
|
|
* raises its file's entry by hand, where review sees it. An entry of either
|
|
* baseline above what its file holds now, or for a file that is gone, fails
|
|
* as well until --update lowers it.
|
|
*
|
|
* npm run lint:rtl check against the baselines (CI)
|
|
* npm run lint:rtl -- --list print every counted use, file by file
|
|
* npm run lint:rtl -- --update lower both baselines to what the files hold now;
|
|
* it never raises an entry
|
|
*
|
|
* The matching lives in scripts/lib/rtl.mjs.
|
|
*/
|
|
import { fileURLToPath } from 'node:url';
|
|
import { runCli } from './lib/ratchet.mjs';
|
|
import { check } from './lib/rtl.mjs';
|
|
|
|
const root = fileURLToPath(new URL('..', import.meta.url));
|
|
await runCli('lint:rtl', (args) => check({ root, update: args.includes('--update'), list: args.includes('--list') }));
|