release: v0.14.0
Fourteen commits since v0.13.0. See CHANGELOG.md for the full list. Two additions: `npm run doctor`, which runs the config doctor from a terminal — including inside the shipped image — and exits with the worst finding, so it can gate a deployment script; and a Playwright spec that loads all fourteen admin routes against a production build. One change, invisible on screen: the admin panel got a form-field layer (#533). Five fixes: grid.gap on both axes (#513), the dashboard status badge (#539), the journal editor's unsaved-changes guard (#538), essay paragraph markup (#537), and aria-pressed on the panel's switches and pickers.
This commit is contained in:
26
scripts/doctor.mjs
Normal file
26
scripts/doctor.mjs
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Entry point for `npm run doctor` — see scripts/doctor.mts for the doctor
|
||||
* itself, and for why it is TypeScript run by node's own type stripping (#521).
|
||||
*
|
||||
* This launcher is plain JavaScript so that it parses on every Node version.
|
||||
* Type stripping arrived in Node 22.18; older runtimes fail on the `.mts` file
|
||||
* with an ERR_UNKNOWN_FILE_EXTENSION stack trace, which is not an answer to
|
||||
* give someone whose site is already down. The version is checked here, before
|
||||
* the import that would throw.
|
||||
*/
|
||||
|
||||
const [major, minor] = process.versions.node.split('.').map(Number);
|
||||
|
||||
if (major < 22 || (major === 22 && minor < 18)) {
|
||||
process.stderr.write(
|
||||
`\nThe config doctor needs Node 22.18 or newer (this is ${process.versions.node}).\n` +
|
||||
`It runs TypeScript directly, which older versions cannot do.\n\n` +
|
||||
`The same checks are in the admin panel: /admin → the status badge → Diagnostics.\n` +
|
||||
`The shipped Docker image already has a new enough Node:\n` +
|
||||
` docker compose exec folio npm run doctor\n\n`,
|
||||
);
|
||||
process.exit(3);
|
||||
}
|
||||
|
||||
const { main } = await import('./doctor.mts');
|
||||
process.exitCode = await main();
|
||||
Reference in New Issue
Block a user