fix: use createRequire instead of bare require for lazy pi-tui import

ESM modules don't have require(). Use createRequire(import.meta.url)
which works in both jiti-loaded and native ESM contexts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Lex Christopherson 2026-03-21 10:25:28 -06:00
parent a3f5e87cb7
commit 050f260f7b

View file

@ -35,12 +35,14 @@ import { type Theme } from "@gsd/pi-coding-agent";
// shared/mod barrel) does not blow up when @gsd/pi-tui cannot be resolved —
// e.g. for commands like /exit that never render TUI components.
import { createRequire } from "node:module";
type PiTuiFns = typeof import("@gsd/pi-tui");
let _piTui: PiTuiFns | undefined;
function piTui(): PiTuiFns {
if (!_piTui) {
// eslint-disable-next-line @typescript-eslint/no-require-imports
_piTui = require("@gsd/pi-tui") as PiTuiFns;
const _require = createRequire(import.meta.url);
_piTui = _require("@gsd/pi-tui") as PiTuiFns;
}
return _piTui;
}