SuperAPI AI 工具集

runtime

编程与开发

查看项目

更新于 10-15 19:56

技能介绍

用途:该技能面向 Effect(TypeScript 函数式效果库)的 Runtime 执行引擎,帮助理解如何运行 Effect、配置自定义运行时以及管理服务与生命周期。

主要能力:

  1. 默认运行时:无需配置即可运行 Effect,提供 Effect.runPromise、Effect.runPromiseExit、Effect.runSync、Effect.runSyncExit 等运行方法,其中带 Exit 的版本不抛错而是返回 Exit。
  2. 局部作用域配置:可通过 Logger.withMinimumLogLevel 等管道操作修改特定 Effect 的运行时行为。
  3. 服务与依赖注入:使用 Context.Tag 或 Effect.Tag 创建带类型的服务标签,在 Effect.gen 中通过 yield* 获取服务。
  4. ManagedRuntime:通过 ManagedRuntime.make(AppLive) 预构建 Layer,复用服务并支持 dispose() 清理,适合应用级使用。
  5. 框架集成:资料给出 Express 与 React 的集成示例,包括在请求处理中调用 runtime.runPromise,以及在组件卸载时调用 runtime.dispose()。
  6. 运行时配置:可用 Runtime.withFiberRef、Runtime.provideService 定制执行上下文与服务。
  7. 默认服务与覆盖:Clock、Random、Tracer、Console 等默认提供,测试时可用 TestClock.layer 覆盖以实现确定性时间。
  8. 中断处理:支持 Fiber.interrupt 与 Effect.uninterruptible 保护关键区段。

使用方式:按资料示例,先定义 Layer 组合(如 Layer.mergeAll),再用 ManagedRuntime.make 创建运行时,通过 runtime.runPromise 执行程序,结束时调用 runtime.dispose()。服务通过 Layer 提供,而非直接修改运行时。

适用场景:需要依赖注入、生命周期管理、框架集成或可测试时间控制的 Effect 应用。

限制:资料未提供具体版本要求、性能数据或收费信息;部分示例依赖 DatabaseLive、LoggerLive 等未展开定义。更多细节可查阅 ${CLAUDE_PLUGIN_ROOT}/references/llms-full.txt 中的相关章节。