@ 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/:viewIdURLs (英语).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 补丁助手 页:1set, (中文(简体) ),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 通过.