@ariestools/actor-engine

中文文档
2.0.0发布于 2026/09/19LGPL-3.0-onlyTypeScriptES Module近 30 天下载 3775

主机不可知演员和提供者引擎:配置编译、提供者解析、提供、监督和会话

中文使用文档

@ riestools/ 演员引擎

主机-不可知论演员和提供者引擎.

引擎解析一个系统配置,解析一个提供者图, 设置一个定位器,构建每个演员 有自己的演员配置和 相同的提供者实例,通过限制的每个参与者视图来配置和解析,并返回一个像素可中止的会话. 它不知道哪个表面驱动它:主机包,如浏览器- kit 和 cli-kit 供应生命周期适配器,必要时提供不同的监督 政策.

重命名从 @ariestools/actor-system,它仍为被消耗的别名 一个释放。 见 那个包 用于移民表.

startActorEngine(options) 在编译前返回控件。 订阅 安全粗糙的靴子事件, 读取不可更改的界限 snapshot() 记录,等待 whenReady(),并调用手柄的同能 stop() 加入清理甚至 发射时正在获取资源。 在获取期间请求停站 然后在下一个合作社 收回获得的资源 检查点没有启动后提供商或演员。 不是强迫的 中止任意工厂代码或中断已经运行的监管呼叫 . 自定义的提供商应该呼叫他们提供的 checkActive 在购置之间; 发射装置在建造演员之前也要检查 编译失败仍可通过 手柄。 事件带有固定的阶段/结果代码、顺序和不降级 通过毫秒,从不配置或原始错误消息。 两个都扔了 并且拒绝观察者, 默认提供方记录实际 提供方购置/处置;发射方记录 一弹一弹 完成事件表明其开始顺序,包括 失败的获取和回滚 。 资源ID是公共图表标签(从未) 机密; 不支持的字符或标签超过128个字符被编辑. 自定义提供方收到相同的选项 diagnostics 记者和可以使用 traceActorEngineResource 围绕自有业务。 主诊断汇构成 ,不能替换操作结果/错误。 内建监督记录驻地起动、待命和停站; 海关监管政策通过同一可选观察者接缝报告. 汇编后, snapshot().plan 获取前保留一个安全图表. describeActorEnginePlan(compiled) 独立披露同一投影: 节点、所需/可选边、绑定和没有可选能力 单独的遗漏数和每个收藏的可配置约束。 从来没有 包括作者/已解决的配置或工厂。 编译失败 保留事件而不假装已解决的图表存在. renderActorEngineBoot(snapshot, 'text' | 'tree' | 'json') 做同样的 安全的地方记录,保存缺失的图表和校正指标。 没错 不查询定位器、收集错误或传送遥测.

默认内存提供器给每个供应商工厂一个被冻结的定位器 外表上仅限于供货商宣称的依赖性 未申报 getInstance 财务报告和审定财务报表 tryGetInstance 请求拒绝 ActorEngineDependencyAccessError;别名不能允许额外访问. 表面没有登记或销毁方法,只载有 标准仪器上下文。 调查期间仍然可以进行 供应商的处置,并在其后被撤销,包括失败的创建和 倒转. 已经返回的提供者对象不会被撤销 。 自定义 提供者可以使用 createActorEngineDependencyScope 同一边界. 每个演员工厂都只接收演员的外表 依赖性,包括当主机使用自定义提供器时. 演员访问 幸存的停止钩, 在提供者发布前被取消, 关闭失败 工厂建设或一发完成。 一个居民的 whenStopped() 解决方案还取消了其范围,而兄弟般的行为者和提供商仍然保留 活着. requireResidentTerminationSignals: true 拒绝没有这个条件的居民 结构信号; 兼容性发射保留了系统排水吊销 演员没有它。 会议保留了可信任的 拥有者定位器. 特定主机的定位扩展必须如实提供 提供方,而不是通过行为者来联系.

宣告可选边距 optionalDependencies。汇编选择符合条件 一次执行和记录缺失,未配置的可选能力 内 resolution.absentOptionalDependencies。模糊性、周期性、无效 约束和所需的过渡性依赖仍然失败。 宣布缺席 可选查找返回 undefined 结束 tryGetInstance; 没有运行时间查找 选择新的提供者。 汇编的依赖性申报是不可改变的快照.

import {
  ActorEngineCatalog,
  createActorEngineProviderRegistry,
  launchActorEngine,
} from '@ariestools/actor-engine'

const actorRegistry = new ActorEngineCatalog()
const providerRegistry = createActorEngineProviderRegistry()

const session = await launchActorEngine({
  actorRegistry,
  config,
  providerRegistry,
})

await session.stop()

需要在其中检查、验证或再利用已解决计划的主机 运行时间可以将编译与运行时间获取分开:

import {
  compileActorEngine,
  launchCompiledActorEngine,
  sequentialActorEngineSupervision,
} from '@ariestools/actor-engine'

const compiled = compileActorEngine({
  actorRegistry,
  config,
  providerRegistry,
})

// No provider has been created and no actor has been constructed or started.
console.log(compiled.providerSystem.resolution)

const session = await launchCompiledActorEngine({
  actorRegistry,
  compiled,
  supervision: sequentialActorEngineSupervision,
})

parallelActorEngineSupervision 是默认,支持动态 管弦乐. sequentialActorEngineSupervision 开始演员并加入他们的 在注册顺序中准备,然后倒转或倒转 秩序。 秩序。 没有结构准备状态表面的行为者被视为已做好准备 这两种政策都存在.

编译对象保留已安装的声明和提供者描述符,所以 它是一种运行时的工艺品,而不是结构化-整流线格式。 浏览器 域名通过 : 其主机适配器,然后将这些值绑定在本地登记册上.

本地运行时间主机可以设置 requireResidentFailureSignals: true 所以每个 居民演员必须曝光 whenFailed()。 。 。 . session.whenTerminal() 种族 指定供应商和主机/运输故障源并拒绝 a 一个 ActorEngineTerminalFailureError 保存资源类型、资源 身份证,稳定代码, 和原始原因。 年长者 whenFailed() 方法仍为 一个原始的- error相容信号.

监督你自己塑造的演员

建立自己行为者的东道主——而不是从一个化身中发动他们 和目录——通过同样的政策监督它们:

import { launchActors, sequentialActorEngineSupervision } from '@ariestools/actor-engine'

const session = await launchActors(actors, {
  supervision: sequentialActorEngineSupervision,
})

await session.whenTerminal().catch(handleFailure)
await session.stop()

createParallelActorEngineSupervision({ orchestrator }) 监督 管弦乐家 呼叫者已经拥有。 那这个政策就只能阻止它 将管弦乐团的生命周期留给主人.

版本与发布记录

@ariestools/actor-engine 共发布 1 个版本,首次发布于 2026/09/19;过去 12 个月发布了 1 个版本。

版本发布日期距今
2.0.0latest2026/09/191 个月前

关于 @ariestools/actor-engine 的常见问题

@ariestools/actor-engine 是什么?

主机不可知演员和提供者引擎:配置编译、提供者解析、提供、监督和会话

如何安装 @ariestools/actor-engine?

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

@ariestools/actor-engine 支持 TypeScript 吗?

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

@ariestools/actor-engine 支持 ESM 还是 CommonJS?

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

@ariestools/actor-engine 需要什么版本的 Node.js?

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

@ariestools/actor-engine 可以商用吗?

@ariestools/actor-engine 使用 LGPL-3.0-only 许可。弱 Copyleft:作为库被调用时通常不要求开源你自己的代码,但修改库本身需以 LGPL 开源;前端打包合并后的适用边界存在不同理解。以上为概括,不构成法律意见,请以许可原文为准。

@ariestools/actor-engine 的下载量有多少?

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

@ariestools/actor-engine 还在维护吗?

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