Skip to content

Commit 7f1324b

Browse files
Honanexxeln
authored andcommitted
fix(tui): preserve renderer initialization errors (anomalyco#33996)
Co-authored-by: Shoubhit Dash <[email protected]>
1 parent 22172e2 commit 7f1324b

1 file changed

Lines changed: 18 additions & 16 deletions

File tree

‎packages/tui/src/app.tsx‎

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { ClipboardProvider, useClipboard } from "./context/clipboard"
88
import { ExitProvider, useExit } from "./context/exit"
99
import { EpilogueProvider } from "./context/epilogue"
1010
import * as Selection from "./util/selection"
11-
import { createCliRenderer, MouseButton, type CliRenderer } from "@opentui/core"
11+
import { createCliRenderer, MouseButton } from "@opentui/core"
1212
import { RouteProvider, useRoute } from "./context/route"
1313
import {
1414
Switch,
@@ -183,21 +183,23 @@ export const run = Effect.fn("Tui.run")(function* (input: TuiInput) {
183183
const result = yield* Effect.scoped(
184184
Effect.gen(function* () {
185185
const renderer = yield* Effect.acquireRelease(
186-
Effect.tryPromise(() =>
187-
createCliRenderer({
188-
externalOutputMode: "passthrough",
189-
targetFps: 60,
190-
gatherStats: false,
191-
exitOnCtrlC: false,
192-
useKittyKeyboard: {},
193-
autoFocus: false,
194-
openConsoleOnError: false,
195-
useMouse: !Flag.OPENCODE_DISABLE_MOUSE && input.config.mouse,
196-
consoleOptions: {
197-
keyBindings: [{ name: "y", ctrl: true, action: "copy-selection" }],
198-
},
199-
}),
200-
),
186+
Effect.tryPromise({
187+
try: () =>
188+
createCliRenderer({
189+
externalOutputMode: "passthrough",
190+
targetFps: 60,
191+
gatherStats: false,
192+
exitOnCtrlC: false,
193+
useKittyKeyboard: {},
194+
autoFocus: false,
195+
openConsoleOnError: false,
196+
useMouse: !Flag.OPENCODE_DISABLE_MOUSE && input.config.mouse,
197+
consoleOptions: {
198+
keyBindings: [{ name: "y", ctrl: true, action: "copy-selection" }],
199+
},
200+
}),
201+
catch: (error) => (error instanceof Error ? error : new Error(String(error))),
202+
}),
201203
(renderer) =>
202204
Effect.sync(() => {
203205
destroyRenderer(renderer)

0 commit comments

Comments
 (0)