@ fnndsc/菜单
密电合同:命令返回什么,会话交换什么 词典都狭窄到.
菜单上写着可以订购的东西和到达的东西 一个表面可以要求 上面的东西 上面的东西 上面的东西 上面的东西 建筑师声称 软件包的存在是为了制造结构:内核和内核之外不存在任何能力 钢丝,而每个表面 都可以随意编曲和呈现 这条线.
里面有什么东西
| 模块 | 目录 |
|---|---|
envelope.ts | CommandEnvelope 及其部分——状态,打入的模型槽,错误堆栈,分辨率跟踪 |
messages.ts | 会话协议: 附加、 执行、 完整、 输出、 进步、 及时、 管道、 shell、 编辑 |
validate.ts | 解析从未抛出过的边界——a ParseResult,所以打电话者可以回答而不是崩溃 |
version.ts | CONTRACT_VERSION 及其精确的主要兼容规则 |
progress.ts | 结构化进展词汇 |
proc.ts | 快速显示进程- 索引状态 |
listing.ts | ListingItem 及其计划——一个上市条目,开放 type 所以后端可以列出自己的类型 |
surface.ts (传教士) @fnndsc/menu/surface(中文(简体) ) | 发动机与它运行地点的合同: OutputSink (输出去的地方)和 Surface 以它的能力,提示,编辑和交付. 子路径,所以浏览器捆绑 永远不会遇到节点 Buffer |
为什么它是自己的包
表面作者取决于合同,而不是发生在
服务它。 在这个包裹之前,合同是 @fnndsc/calypso, (中文(简体) ),
这意味着第三方表面依赖会议主办方
学习结果的形状.
它没有从堆栈里进口任何东西 zod 没有别的了,坐在下面
cumin,因此生成信封的引擎和使
他们可以装上它.
这里的规则
开放世界. 一个信封 model.kind 是自由字符串:表面窄
它认识并回到 rendered 剩下的钱 未知的词源
数值降解而不是拒绝——未知进度操作读作
task,未知的阶段为 working - 因为丢掉的信息是无形的
通用指标不是.
从不 .strict()。 。 。 . 一个平地 z.object() 条形键未知, 所以是一个字段
由更新的对等者添加的被忽略而不是致命. .strict() 看起来像
严谨且是相容性的断开.
一艘有后退的新船. safeParse 整个消息失败
一个未知值。 当你在铁丝网上加注时,给它一个 .catch() 内
同样的变化,如果它没有.
类型是推断的,从未申报过两次. 有效载荷类型来自
z.infer<typeof schema>信封和电线曾经分开
由汇编时间断言合并保存的声明;一种推断类型
漂移是不可能的 而不是检测.
另见
docs/menu.adoc- 设计记录和计划 这个软件包是..docs/principles.adoc——规范架构docs/structured-progress.md- 详细进度合同