From 04908096bf8c8e184fe869418f405712abb66c72 Mon Sep 17 00:00:00 2001 From: Miroslav Drbal Date: Sun, 26 Apr 2026 09:11:23 +0200 Subject: [PATCH] fix(tui): normalize undefined to null for optional napi parameters on Windows Bun's JSC napi layer on Windows does not reliably report undefined as napi_undefined, causing napi-rs Option to fall through to bool::from_napi_value() and throw: Error: Failed to convert napi value into rust type bool Pass null instead of undefined for ellipsisKind, pad (truncateToWidth) and strict (sliceWithWidth) via ?? null. null maps to napi_null which napi-rs detects correctly on all platforms. --- packages/tui/src/utils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tui/src/utils.ts b/packages/tui/src/utils.ts index 1a4a0a680..d408caf56 100644 --- a/packages/tui/src/utils.ts +++ b/packages/tui/src/utils.ts @@ -12,7 +12,7 @@ export { Ellipsis } from "@oh-my-pi/pi-natives"; export { getDefaultTabWidth, getIndentation } from "@oh-my-pi/pi-utils"; export function sliceWithWidth(line: string, startCol: number, length: number, strict?: boolean | null): SliceResult { - return nativeSliceWithWidth(line, startCol, length, strict, getDefaultTabWidth()); + return nativeSliceWithWidth(line, startCol, length, strict ?? null, getDefaultTabWidth()); } export function truncateToWidth( @@ -21,7 +21,7 @@ export function truncateToWidth( ellipsisKind?: Ellipsis | null, pad?: boolean | null, ): string { - return nativeTruncateToWidth(text, maxWidth, ellipsisKind, pad, getDefaultTabWidth()); + return nativeTruncateToWidth(text, maxWidth, ellipsisKind ?? null, pad ?? null, getDefaultTabWidth()); } export function wrapTextWithAnsi(text: string, width: number): string[] {