@aglyn/tenant-runtime

中文文档
1.18.0发布于 2026/11/07Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1.2万

服务器侧运行时间服务于已公布的 Aglyn 站点:插件所收听的主机-事件接合,以及将存储的屏幕转换成一页所制作的节点树的屏幕-组合管道. 如果你正在运行 Aglyn 的租户服务器,安装它,

中文使用文档
文档目录6 节
  1. 安装
  2. 里面有什么东西
  3. 使用量
  4. 变形道从不等待无约束 I/ 欧
  5. 怎样才合适
  6. 许可证

@aglyn/tenant-runtime (英语)

为已出版的Aglyn网站服务的服务器端运行时间:主机活动 切换插件的收听, 和屏幕组合管道 将屏幕存储到一个页面生成的节点树上。 运行时安装 Aglyn 的租户服务器, 或者写需要发送主机的插件服务器代码 事件或编成屏幕.

从Aglyn monorepo出版到npm. 随后的版本 语义版本。 。 。 .

安装

npm install @aglyn/tenant-runtime

同伴依赖性 :

  • firebase-admin

此软件包仅限服务器使用 。 它读出Firestore通过 firebase-admin 财务报告和审定财务报表 不得从客户端代码导入.

里面有什么东西

从包根起,主机-活动运行时间. 举办活动时,没有 单个插件拥有, 并且不运行事件触发的内容 :

  • emitHostEvent 是一个释放点。 它把一个事件交给每个注册的 主机- 事件收听器并返回任何站点提示, 所以请求/ 响应 发射器(表单提交、预订)可以露出它们.
  • registerHostEventListener 插件如何听到主机事件。 一个插件 从它的服务器声明条目注册, 应用程序运行在启动时, 所以 一个从未加载插件的核心路由仍然到达它。 自动化 引擎是一个这样的收听器,并生活在自己的插件中.
  • dispatchHostAutomation 以 id 为站点活动运行一个自动化 已出版的网页通过发送的听众自我评价.
  • listHostEventListeners 财务报告和审定财务报表 runHostEventListeners 诊断和诊断 直接使用.

联系人抓取和所有者指派为客户关系管理 (单位:千美元)@aglyn/plugins-crm/server/capture-host-contact, (中文(简体) ), @aglyn/plugins-crm/server/assign-contact-owner: 另一个插件报告 a 通过平台的捕获合同(plugin-contact-capture) (中文(简体) ). 以 id 或名称查找数据集是数据插件的 (单位:千美元)@aglyn/plugins-data/server/resolve-dataset) (中文(简体) ).

通过子路径,屏幕组合管道。 这是读取路径 由租户应用程序的服务器渲染和任何需要插件共享 在服务器上创建屏幕 :

  • @aglyn/tenant-runtime/get-screen (单位:千美元)getScreen和 @aglyn/tenant-runtime/get-screen-version (单位:千美元)getScreenVersion(中文(简体) )
  • @aglyn/tenant-runtime/compose-screen-nodes (单位:千美元)composeScreenNodes, (中文(简体) ), composeNodesWithChrome(中文(简体) )
  • 他们身后有装载者 get-layout-version, (中文(简体) ), get-components, (中文(简体) ), get-variables, (中文(简体) ), get-forms, (中文(简体) ), get-plugin-installs 重复的一行来了 从保持它们的插件,通过 @aglyn/aglyn/plugin-manager/repeat-rows
  • 用于收藏、作者和搜索页面的页面作曲: compose-collection-page, (中文(简体) ), compose-author-page, (中文(简体) ), compose-search-page
  • apply-publish-schedule (单位:千美元)applyDuePublishSchedule(中文(简体) )

每个子路径映射到下面的文件 src/lib。 。 。 .

使用量

正在从插件服务器代码听到主机事件 :

import { registerHostEventListener } from '@aglyn/tenant-runtime'

registerHostEventListener('my-plugin', {
  async onEvent(hostId, event, payload, context) {
    // react to the event; optionally return site alerts.
    // `context.actor` is who caused it, when the emitting door knew:
    // { kind: 'member' | 'visitor' | 'apiKey' | 'platform', uid?, email?, apiKeyName? }
  },
})

抚养一个,是谁造成的:

await emitHostEvent(hostId, 'contactStageChanged', payload, {
  actor: { kind: 'member', uid, email },
})

在服务器上装入屏幕 :

import { getScreen } from '@aglyn/tenant-runtime/get-screen'

const screen = await getScreen({ hostId, screenId })

变形道从不等待无约束 I/ 欧

页面渲染,和它等待的一切——布局,页面数据加载器, 此管道, 插件页面浓缩器, 解析器, 重定向解析器, 重复 读取器和计算变量, 和它们面前的中间器件—— 从不 等待出入境的I/O网络,没有自己的最后期限(AGL-3565).

  • 将等待包起来 boundedAwait(work, ms, fallback, label) 从 @aglyn/shared-util-http/bounded-await: 以 fallback 何时 ms 不管做什么,都通过 传过来 signal 改为 fetch 所以请求也取消了 把尸体放进去 工作时 一个 AbortSignal 它本身不是最后期限:在Vercel,下一位 补丁 fetch {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}我答应你 AbortSignal.timeout(2500) 上面还有月台上的每一页 等待60秒函数限制 .
  • 选择一个可折回的页面,并说出它的含义: 链接到的字体样式表, 判断“ 无法获取 ” , 重定向规则 .
  • 一个进程缓存, 它比请求有效 仅持有已结算的值 (单位:千美元)createSettledValueCache拒绝承诺。 一个缓存的飞行 在以后的每一个判决中,都等待承诺,每个判决都有新的期限 一无所有.
  • 工作不需要答案 解开 void从来没有等待.

apps/tenant/specs/render-path-bounded-io.spec.ts 扫描每个符号 a 能够达到 fetch页:1 fetch 作为一种价值 一种象征 交换或 http(s).request拒绝一个没有落后的人 boundedAwait 或者说 void。其许可列表每行都包含一个理由,可能只包含 收缩。 消防员读取 firebase-admin 在外边,他们携带着 客户自己的最后期限.

怎样才合适

这是 tenant 软件包地图的范围。 这只取决于 @aglyn/aglyn, (中文(简体) ), @aglyn/tenant-data-admin (其服务器数据层)和 firebase-admin,因此它可以从租户应用的API线路中导入,并且 从插件的服务器处理器中不将应用程序代码拖入库中。 A 类 插件可能导入它; 它从不导入插件 。 插件到达它 登记一个听众, 运行时间只知道通过这个 登记和装货机清单.

许可证

阿帕奇2.0 (英语). 资料来源: https://github.com/aglyn/aglyn/tree/main/libs/tenant/runtime 互联网档案馆的存檔,存档日期2014-12-22

版本与发布记录

@aglyn/tenant-runtime 共发布 152 个版本,首次发布于 2026/09/21;过去 12 个月发布了 152 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.18.0latest2026/11/07今天
1.17.02026/11/07今天
1.16.02026/11/07今天
1.15.22026/11/061 天前
1.15.12026/11/061 天前
1.15.02026/11/061 天前

其他发布通道:beta → 1.0.0-beta.296。

关于 @aglyn/tenant-runtime 的常见问题

@aglyn/tenant-runtime 是什么?

服务器侧运行时间服务于已公布的 Aglyn 站点:插件所收听的主机-事件接合,以及将存储的屏幕转换成一页所制作的节点树的屏幕-组合管道. 如果你正在运行 Aglyn 的租户服务器,安装它,

如何安装 @aglyn/tenant-runtime?

在项目目录运行 npm install @aglyn/tenant-runtime,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:firebase-admin(^14.3.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aglyn/tenant-runtime 支持 TypeScript 吗?

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

@aglyn/tenant-runtime 支持 ESM 还是 CommonJS?

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

@aglyn/tenant-runtime 可以商用吗?

@aglyn/tenant-runtime 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aglyn/tenant-runtime 的下载量有多少?

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

@aglyn/tenant-runtime 还在维护吗?

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