@asterql/view-protocol

中文文档
0.5.0发布于 2026/07/09MITTypeScriptES Module近 30 天下载 2512

已注册的 AsterQL 视图 ids, 运单, 参数 URL, 以及处理器 .

中文使用文档

@ asterql/ view- protocol

npm install @asterql/view-protocol

已注册的视图定义、确定式视图标识、条形参数和a asterQL 的小处理器形状.

此包是“ 本地运行此查询” 和“ ship a” 之间的桥梁 可缓存的 UI 数据端点". 生产申请使用表列编号,而 本地工具可以明确选择原始查询评价.

import {
  createViewCacheHeaders,
  createManifest,
  createViewHandler,
  createViewUrl,
  defineView,
} from "@asterql/view-protocol";

const recentOrders = defineView({
  service: "dashboard",
  query: `*.orders[status == $status] | sort(-createdAt)[:10] {id, total}`,
});

const manifest = createManifest([recentOrders]);
const url = createViewUrl(recentOrders, { status: "paid" });
const cacheHeaders = createViewCacheHeaders(recentOrders, { status: "paid" });

const handle = createViewHandler({
  views: [recentOrders],
  async load({ params }) {
    return loadDashboardData(params);
  },
});

API 密码

  • defineView(input): 正常查询并计算决定性视图 id.
  • getViewId(view): 返回内容 hash id以查看.
  • createManifest(views): 发出由view id 键入的稳定显示.
  • createViewETag(view, params?, options?):从视图计算出一个弱ETag id, canonical params hash,以及可选的服务数据版本.
  • createViewCacheHeaders(view, params?, options?): 创建 Cache-Control 财务报告和审定财务报表 ETag 视图缓存策略中的标题 .
  • encodeParams(params) 编号 : decodeParams(value): Base64url Canonical JSON (英语).
  • createViewUrl(view, params?, options?): 构建 /views/:viewId URLs (英语).
  • createViewHandler(options): 对照主机数据执行已注册视图.
  • fetchView(view, params?, options?): 为客户获取微小的助手 .

状态同步原始 :

  • createEntityKey(kind, id) 编号 : parseEntityKey(key): 稳定正常化 实体编号在 kind:id 形式.
  • createScopeKey(kind, id) 编号 : parseScopeKey(scope): 稳定范围 作为 agent:agent_123。 。 。 .
  • hashRecordVersion(input) 财务报告和审定财务报表 hashServerEventId(input): 决定性 记录/活动 ID在犬科JSON.
  • ServerEvent, (中文(简体) ), ServerEventEnvelope, (中文(简体) ), EntityRecord, (中文(简体) ), EntityPatch,以及 InvalidationClass: 用于正常化的浏览器安全线和存储合同 状态同步 .
  • invalidationIntersects(a, b):匹配实体、实体、范围、服务、, 并查看无效类.
  • parseEntityPath(path) 编号 : formatEntityPath(path)贾森 指针助手 补丁路径 .
  • getEntityPathValue, (中文(简体) ), setEntityPathValue, (中文(简体) ), unsetEntityPathValue, (中文(简体) ), applyEntityPatch,以及 applyEntityPatches: 不可改变的 JSON 补丁助手 页:1 set, (中文(简体) ), unset, (中文(简体) ), merge, (中文(简体) ), appendText键入 insert,以及 removeKey。 。 。 .
  • canonicalJsonBytes(value), (中文(简体) ), sha256Base64Url(bytes), (中文(简体) ), hashCanonicalJson(prefix, value), (中文(简体) ), hashParams, (中文(简体) ), hashSchema,以及 hashViewDefinition: 与软件包相匹配的犬类散列助手 已有视图/schema/params ids.
  • createVersionedViewETag(input) 编号 : parseVersionedViewETag(etag): 薄弱 嵌入了视图的ETags id, canonical params hash, auuth-scope hash, body 的图像 hash, 以及一个排序无效的类版本映射, 因此重新验证可以 回答“这个观点是否只取决于进步?”.
  • formatInvalidationClass(class), (中文(简体) ), classVersionFromDate(value), (中文(简体) ), mergeClassVersions(...maps), (中文(简体) ), advancedClassVersions(current, baseline, keys?), (中文(简体) ), classVersionsFromETagPayload(payload), (中文(简体) ), hashAuthScope(value), (中文(简体) ), 财务报告和审定财务报表 ifNoneMatchIncludes(header, etag): 所使用的类版本词汇 通过版本的ETags和无效驱动的缓存再验证.

处理器只默认执行已注册的视图 。 已注册的视图回复 包含明确的缓存标题:带有 cache 政策使用这一政策 视图无一是 no-store原始数据 _eval 答复总是 no-store 并且只存在于 allowEval: true 通过.

版本与发布记录

@asterql/view-protocol 共发布 4 个版本,首次发布于 2026/06/11;过去 12 个月发布了 4 个版本。

版本发布日期距今
0.5.0latest2026/07/093 个月前
0.4.02026/06/304 个月前
0.3.02026/06/114 个月前
0.2.02026/06/114 个月前

关于 @asterql/view-protocol 的常见问题

@asterql/view-protocol 是什么?

已注册的 AsterQL 视图 ids, 运单, 参数 URL, 以及处理器 .

如何安装 @asterql/view-protocol?

在项目目录运行 npm install @asterql/view-protocol,或使用 pnpm add / yarn add / bun add。

@asterql/view-protocol 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@asterql/view-protocol 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@asterql/view-protocol 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@asterql/view-protocol 可以商用吗?

@asterql/view-protocol 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@asterql/view-protocol 的下载量有多少?

根据 npm 官方下载统计,@asterql/view-protocol 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,512 次,日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@asterql/view-protocol 还在维护吗?

最新版本 0.5.0 发布于 2026/07/09(3 个月前);至今共发布 4 个版本,其中过去 12 个月发布了 4 个;首次发布于 2026/06/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。