灯手( R)@fungi.computer/lantern(中文(简体) )
灯会提供终端文字标记,提示和进步. 大多数人想要 牡蛎 运行 Apps 或 Shi 以运行特工.
Fungi 命令行工具共享单词标记、 提示和进度 消息,所以每个命令不重建终端,看起来和感觉是一样的 从零开始演示文稿。 它处理终端演示. 每个命令都有 它自己的工作, 证书,坚持,和谈话状态.
安装或设置
使用节点24或更新.
npm install @fungi.computer/lantern
包船无害环境管理仅取决于 @clack/core, (中文(简体) ), @clack/prompts,以及
脚尖 用于终端颜色,全部安装
自动。 导入 @fungi.computer/lantern 用于节点命令行工具,或
@fungi.computer/lantern/banner 在不导入 Clack 的情况下制作横幅
提示或节点流.
快开始
这个示例使用非交互式的 CLI , 因此是进步和核对表 消息到所提供的输出流 :
import { Cli } from "@fungi.computer/lantern";
const cli = new Cli({ brand: "vishnu", interactive: false });
cli.welcome("Build a game");
await cli.task("Building", async (update) => {
update("Checking the project");
return "ready";
});
cli.checklist()("project", true, "ready");
终端测试进行横幅渲染、管道输入行为,以及
非交互式任务输出 test/terminal.test.ts。 。 。 .
核心概念
Cli 从 TTY 输入和输出中检测交互性, 除非呼叫者通过
interactive。它接受可选的输入、输出和终端宽度从而接受主机
可以控制提示和消息的去向. welcome, (中文(简体) ), info, (中文(简体) ), step, (中文(简体) ), outro, (中文(简体) ),
cancel, (中文(简体) ), task,以及 checklist 提供共同的介绍。 任务停止
旋转成功。 失败的任务重排原错误 。 当旋转器是
中,它显示一个没有出错细节的通用失败消息.
在非交互模式下,普通信件被写成文本并 confirm
返回时 false。 。 。 . text, (中文(简体) ), password, (中文(简体) ), select,以及 search 扔是因为他们
需要一个交互式终端. task 报告进展为平线
动画旋转器.
search 接受带有标签、描述和可选组的顺序选择
名称。 它显示分组标题, 可以崩溃一个分组后面的计数
披露行。 打字搜索每一个选择,包括崩溃的选择. 输入
扩展披露或选择选择。 呼叫者拥有目录和组
成员。 Clack拥有输入,导航和取消功能.
renderBanner 是浏览器安全渲染的入口。 它选择一个品牌
用于交互式终端的宽或紧凑的艺术,以及用于管道的平面品牌标签
或无色输出. 60栏以下的宽度在有紧凑艺术的情况下使用;
计算机以狭长的宽度省略了它的艺术. 设定 rawPty: true 写入时
直接到原始的伪地来接收 CRLF 线尾.
API 参考
见生成 灯源 API 参考 编辑
横幅引用编辑 ./banner 进口
renderBanner 和艺术弦.
实例和检查
现有的终端测试涵盖横幅宽度和颜色行为, 原始 PTY 线 结束、 立即拒绝管道输入以及非交互任务/检查列表 留言。 运行方式:
pnpm --filter @fungi.computer/lantern test
限制和错误
Lantern不运行命令或决定工作是否成功. 打电话的人 提供任务并拥有结果。 非交互任务打印不失败 抛出时行. 非互动确认总是下降,并迅速 可消耗管道输入的方法拒绝运行。 使用明确的命令 自动化选项.
横幅渲染器选择已有的艺术并用斯提普的语义来包装 调色板。 它不启动外壳 或自己的终端问候时间或 重接行为.
贡献和许可证
绿灯侠获得麻省理工学院许可. 见 LICENSE。 。 。 .