吉尔斯@fungi.computer/gills(中文(简体) )
Gills 定义了浏览器和终端共享的紧凑的,纯文本的 App 视图 师曰. 它拥有行线格式, Gill 声明, 限定请求和 响应, 以及认证的客户端 。 东道主也承认了, 通航与通读入取.
安装或设置
npm install @fungi.computer/gills [email protected]
吉尔斯是无害环境管理。 效果是它唯一的运行时间依赖. 所有出口都可以提供
从 @fungi.computer/gills 在节点,浏览器和工人.
快开始
解码行页和呼叫者可能发送的选定者:
import * as Schema from "effect/Schema";
import { rowPageSchemaV1, gillRequestSchema } from "@fungi.computer/gills";
const rows = Schema.decodeUnknownSync(rowPageSchemaV1)([
{ id: "session-a", title: "Review the draft", tone: "attention" },
]);
const request = Schema.decodeUnknownSync(gillRequestSchema, {
onExcessProperty: "error",
})({ viewId: "inbox" });
console.log(rows[0]?.title, request.viewId);
核心概念
- A 类 声明 记录Gill的App本地身份,源读法, 可选位置参数及其选项读取方法、更改种子和 桌面大小 。 Agar 从后端生成; Puffball 包含在 发布文摘.
- A 类 请求 包含视图 ID、放置参数和可选源 光标。 主机在援引"App"之前承认了这种方法和计算机.
- A 类 回应 是一个空页,文本行的完整一页,或是一个错误。 A 类
请求与
options: <parameter key>返回选择页面.decodeDeclaredGillResponse拒绝另一种观点的身份. - 空响应可能携带
emptyText(一条App-worded行,1至120) 字符,如"与代理人交谈:要求一个小游戏"等. )和action: { kind: "open" }。主机以“ Open {App} ” 显示行 按钮;action当 App 提供它自己的文本时, 它会保留按钮 . 也没有,部件说"这里还没有" 和按钮. - A 类 横行 带有显示文本和可选导航参数。 东道主 打开 Gill 自己的 App; 该 App 解释参数 。 无法命名行 不同的 App、 URL 或会议特定目标。 保留导航值 最多4 096个字符,包括计算机文件路径; 显示缩短 永不改变导航值.
- 可选
row.status带有 App 的平面标签和语义语调 紧凑状态指标。 App绘制了它的状态;主机没有推断它. - 错误可以提供
recovery: { kind: "configure", param: "computer" }或者说recovery: { kind: "open" }。配置必须指定一个已声明的参数和 打开已存在的拾取器。 打开时使用主机的发射器 相同的 App. 两个表格都没有 App ID, URL 或命令 。 应用程序名称和图标 保留主机目录演示文稿, 在此线外 .
API 参考
见 生成 API 假设类型和
createGillClient。 。 。 .
实例
createGillClient({ endpoint, fetch, declaration }) 发送已绑定的选择器
用 PUT 解码结果。 提供经认证的 fetch 被钉住
选中的 App 和 Release 。 可选 decodeRefusal(raw, declaration) 手柄
使用主机自己的解码器识别出HTTP 503个机体. 未获承认的拒绝
抛出;客户端不选择主机策略.
Agar 的 App 执行拒绝解码器仍在 @fungi.computer/agar/gills。 。 。 .
App生产商和出品商直接从中导入共享合同
软件包.
限制和错误
页面最多包含200行. 行标签允许4,096个字符,身份 513 和细节 1,024. 导航意图最多有16个参数 64-字符键和4,096-字符值. 请求绑定光标至 1 024 字符和放置上下文为有256个字符值的四个键. 申报提供最多四种独特的参数:计算机、存储器或 分支,以及来自 S、 M 和 L 的独特桌面大小 已有存储标记或绑定更改种子。 资源信封和行 诉讼不属于合同范围.
解码器拒绝无效的电线值 。 Gill 输出为文本数据, 永远无法执行 乌伊 UI. 装入是主机状态 。 客户端投放 HTTP 错误, 除非注入 主机解码器确认拒绝.
贡献和许可证
运行 pnpm build, (中文(简体) ), pnpm typecheck, (中文(简体) ), pnpm lint, (中文(简体) ), pnpm test, (中文(简体) ), pnpm docs 财务报告和审定财务报表
pnpm stranger 本包中。 重新生成 API 文件 pnpm docs:write。 。 。 .
许可证根据 麻省理工学院。 。 。 .
共享行时间复制
relativeTime 从 @fungi.computer/gills/presentation 报告格式
毫秒印用Apps现有的英语相对时间复制. 这个
纯输入不装入 Gill 解码器。 源码方法保持时间戳
不变; 投影只能格式化时间标其源返回.