refactor(cli): extract deprecation guard to helper module

Move the Node v23+ process.noDeprecation try/catch guard into
src/cli/update-cli/suppress-deprecations.ts so that update-cli.ts
does not grow past the 1000-line size-guard threshold.

No behavior change.
This commit is contained in:
Rain 2026-02-12 23:04:41 +08:00 committed by Peter Steinberger
parent b92938c8a8
commit 11bb9f141a
2 changed files with 18 additions and 6 deletions

View File

@ -62,6 +62,7 @@ import { formatCliCommand } from "./command-format.js";
import { installCompletion } from "./completion-cli.js";
import { runDaemonRestart } from "./daemon-cli.js";
import { formatHelpExamples } from "./help-format.js";
import { suppressDeprecations } from "./update-cli/suppress-deprecations.js";
export type UpdateCommandOptions = {
json?: boolean;
@ -672,12 +673,7 @@ function printResult(result: UpdateRunResult, opts: PrintResultOptions) {
}
export async function updateCommand(opts: UpdateCommandOptions): Promise<void> {
try {
process.noDeprecation = true;
} catch {
/* read-only on Node v23+ */
}
process.env.NODE_NO_WARNINGS = "1";
suppressDeprecations();
const timeoutMs = opts.timeout ? Number.parseInt(opts.timeout, 10) * 1000 : undefined;
const shouldRestart = opts.restart !== false;

View File

@ -0,0 +1,16 @@
/**
* Suppress Node.js deprecation warnings.
*
* On Node.js v23+ `process.noDeprecation` may be a read-only property
* (defined via a getter on the prototype with no setter), so the
* assignment can throw. We fall back to the environment variable which
* achieves the same effect.
*/
export function suppressDeprecations(): void {
try {
process.noDeprecation = true;
} catch {
// read-only on Node v23+; NODE_NO_WARNINGS below covers this case
}
process.env.NODE_NO_WARNINGS = "1";
}