summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/utils/ConsolePatcher.ts
diff options
context:
space:
mode:
authorAllen Hutchison <[email protected]>2025-08-05 16:11:21 -0700
committerGitHub <[email protected]>2025-08-05 23:11:21 +0000
commit2141b39c3d713a19f2dd8012a76c2ff8b7c30a5e (patch)
treeee04d073a117daefe131e1cccf36d9ff08b7aa87 /packages/cli/src/ui/utils/ConsolePatcher.ts
parent268627469b384ba3fa8dfe2e05b5186248013070 (diff)
feat(cli): route non-interactive output to stderr (#5624)
Diffstat (limited to 'packages/cli/src/ui/utils/ConsolePatcher.ts')
-rw-r--r--packages/cli/src/ui/utils/ConsolePatcher.ts27
1 files changed, 17 insertions, 10 deletions
diff --git a/packages/cli/src/ui/utils/ConsolePatcher.ts b/packages/cli/src/ui/utils/ConsolePatcher.ts
index 10be3bc7..a429698d 100644
--- a/packages/cli/src/ui/utils/ConsolePatcher.ts
+++ b/packages/cli/src/ui/utils/ConsolePatcher.ts
@@ -8,8 +8,9 @@ import util from 'util';
import { ConsoleMessageItem } from '../types.js';
interface ConsolePatcherParams {
- onNewMessage: (message: Omit<ConsoleMessageItem, 'id'>) => void;
+ onNewMessage?: (message: Omit<ConsoleMessageItem, 'id'>) => void;
debugMode: boolean;
+ stderr?: boolean;
}
export class ConsolePatcher {
@@ -46,16 +47,22 @@ export class ConsolePatcher {
originalMethod: (...args: unknown[]) => void,
) =>
(...args: unknown[]) => {
- if (this.params.debugMode) {
- originalMethod.apply(console, args);
- }
+ if (this.params.stderr) {
+ if (type !== 'debug' || this.params.debugMode) {
+ this.originalConsoleError(this.formatArgs(args));
+ }
+ } else {
+ if (this.params.debugMode) {
+ originalMethod.apply(console, args);
+ }
- if (type !== 'debug' || this.params.debugMode) {
- this.params.onNewMessage({
- type,
- content: this.formatArgs(args),
- count: 1,
- });
+ if (type !== 'debug' || this.params.debugMode) {
+ this.params.onNewMessage?.({
+ type,
+ content: this.formatArgs(args),
+ count: 1,
+ });
+ }
}
};
}