mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
Fix Output.enable_ansi_colors usage to check stdout vs stderr (#24212)
## Summary Updated all 49 usages of `Output.enable_ansi_colors` to properly check either `Output.enable_ansi_colors_stdout` or `Output.enable_ansi_colors_stderr` based on their output destination. This prevents bugs where ANSI colors are checked against the wrong stream (e.g., checking stdout colors when writing to stderr). ## Changes ### Added - `Output.enable_ansi_colors` now a `@compileError` to prevent future misuse with helpful error message directing to correct variants ### Deleted - `Output.isEmojiEnabled()` - replaced all usages with `enable_ansi_colors_stderr` (all were error/progress output) - `Output.prettyWithPrinterFn()` - removed unused dead code ### Updated by Output Destination **Stderr (error/diagnostic output):** - logger.zig: Log messages and errors - crash_handler.zig: Crash reports and stack traces (10 instances) - PackageInstaller.zig: Error messages from lifecycle scripts (3 instances) - JSValue.zig: Test expectation error messages - JSGlobalObject.zig: Exception throwing - pack_command.zig: Progress indicators - VirtualMachine.zig: Exception printing (2 instances) - Test expect files: Test failure messages and diffs (10 instances) - diff_format.zig: Test diff output - ProgressStrings.zig: Package manager progress emojis (6 functions) - security_scanner.zig: Security scan progress emoji - output.zig: panic(), resetTerminal() **Stdout (primary output/interactive UI):** - hot_reloader.zig: Terminal clearing on reload - Version.zig: Version diff formatting - install_with_manager.zig: Package installation tree - update_interactive_command.zig: Interactive update UI (2 instances) - init_command.zig: Interactive radio buttons - create_command.zig: Template creation output (2 instances) - outdated_command.zig: Outdated packages table - publish_command.zig: Box drawing characters (6 instances) **Backward Compatible:** - BunObject.zig: `Bun.enableANSIColors` property returns `(stdout || stderr)` to maintain compatibility - fmt.zig: Removed unused `.default` field from Options struct ## Test Plan - ✅ All changes compile successfully with `bun run zig:check` - ✅ Verified all 49 usages have been updated to appropriate variant - ✅ Verified no remaining references to deprecated functions/variables - ✅ Compile error triggers if someone tries to use `Output.enable_ansi_colors` ## Stats - 24 files changed - 58 insertions, 77 deletions (net -19 lines) - 49 usages correctly updated - 3 items deleted/deprecated 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Bot <claude-bot@bun.sh> Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -69,7 +69,7 @@ pub const OutdatedCommand = struct {
|
||||
.ok => |ok| ok.lockfile,
|
||||
};
|
||||
|
||||
switch (Output.enable_ansi_colors) {
|
||||
switch (Output.enable_ansi_colors_stdout) {
|
||||
inline else => |enable_ansi_colors| {
|
||||
if (manager.options.filter_patterns.len > 0) {
|
||||
const filters = manager.options.filter_patterns;
|
||||
|
||||
Reference in New Issue
Block a user