diff --git a/packages/tui/src/terminal.ts b/packages/tui/src/terminal.ts index 52f6361c..5ebb4967 100644 --- a/packages/tui/src/terminal.ts +++ b/packages/tui/src/terminal.ts @@ -1,7 +1,10 @@ import * as fs from "node:fs"; +import { createRequire } from "node:module"; import { setKittyProtocolActive } from "./keys.js"; import { StdinBuffer } from "./stdin-buffer.js"; +const cjsRequire = createRequire(import.meta.url); + /** * Minimal terminal interface for TUI */ @@ -176,7 +179,7 @@ export class ProcessTerminal implements Terminal { // Dynamic require to avoid bundling koffi's 74MB of cross-platform // native binaries into every compiled binary. Koffi is only needed // on Windows for VT input support. - const koffi = require("koffi"); + const koffi = cjsRequire("koffi"); const k32 = koffi.load("kernel32.dll"); const GetStdHandle = k32.func("void* __stdcall GetStdHandle(int)"); const GetConsoleMode = k32.func("bool __stdcall GetConsoleMode(void*, _Out_ uint32_t*)");