@clipboard-health/execution-context

中文文档
2.11.15发布于 2026/11/05MITTypeScriptCommonJS近 30 天下载 5.3万

使用 Async LocalStorage 管理执行上下文和元数据的轻量级节点功能.

中文使用文档
文档目录5 节
  1. 特征
  2. 目录
  3. 安装
  4. 使用量
  5. 地方发展指挥部

@clipboard-health/exution-context

ExecutionContext 是使用 TypeScript 构建的轻量级节点.js 软件包,可以杠杆 AsyncLocalStorage 创建一个与任何执行平行的静态上下文。 它提供了一个可靠、无线性的背景,可在整个执行周期内附加和访问元数据,例如API请求、背景工作或信息消费者。 这使得您的应用程序的各个部分可以通讯并共享元数据,而不需要明确传递上下文对象.

特征

  • 范围背景: 将数据附加到每个执行范围特有的上下文.
  • 静态访问: 在一个活性执行中静态访问代码库中的任意位置的上下文数据.
  • 元数据聚合: 存储和检索整个执行周期的元数据,这是记录、追踪和其他可观察任务的理想.

目录

安装

npm install @clipboard-health/execution-context

使用量

这个例子说明如何创建日志上下文,从各种函数调用中积累元数据,然后登录一个包含所收集的所有元数据的单一消息.

import {
  addMetadataToLocalContext,
  getExecutionContext,
  newExecutionContext,
  runWithExecutionContext,
} from "@clipboard-health/execution-context";

export async function processRequest() {
  // Start a context for this request
  await runWithExecutionContext(newExecutionContext("context-name"), async () => {
    const context = getExecutionContext();

    try {
      // Add metadata from the current function
      addMetadataToLocalContext({ userId: "1" });

      // Simulate calling other functions that add their own context metadata
      callFunctionThatAddsContext();
      callFunctionThatCallsAnotherFunctionThatAddsContext();

      // Log the successful processing event with accumulated metadata
      console.log("event=MessageProcessed", { ...context?.metadata });
    } catch (error) {
      // Capture and log error metadata if something goes wrong
      addMetadataToLocalContext({ error });
      console.error("event=MessageProcessed", { ...context?.metadata });
    }
  });
}

// Example function that adds its own metadata to the current context
function callFunctionThatAddsContext() {
  addMetadataToLocalContext({ operation: "dataFetch", status: "success" });
}

// Example function that calls another function, both adding their own metadata
function callFunctionThatCallsAnotherFunctionThatAddsContext() {
  addMetadataToLocalContext({ operation: "validate", validationStep: "pre-check" });
  callAnotherFunctionThatAddsContext();
}

function callAnotherFunctionThatAddsContext() {
  addMetadataToLocalContext({
    operation: "validate",
    validationStep: "post-check",
    result: "passed",
  });
}

地方发展指挥部

见 package.json scripts 用于命令列表.

版本与发布记录

@clipboard-health/execution-context 共发布 441 个版本,首次发布于 2024/10/30;过去 12 个月发布了 376 个版本。

版本发布日期距今
2.11.15latest2026/11/054 天前
2.11.142026/11/055 天前
2.11.132026/11/045 天前
2.11.122026/10/3110 天前
2.11.112026/10/2812 天前
2.11.102026/10/2813 天前

关于 @clipboard-health/execution-context 的常见问题

@clipboard-health/execution-context 是什么?

使用 Async LocalStorage 管理执行上下文和元数据的轻量级节点功能.

如何安装 @clipboard-health/execution-context?

在项目目录运行 npm install @clipboard-health/execution-context,或使用 pnpm add / yarn add / bun add。

@clipboard-health/execution-context 支持 TypeScript 吗?

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

@clipboard-health/execution-context 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@clipboard-health/execution-context 可以商用吗?

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

@clipboard-health/execution-context 的下载量有多少?

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

@clipboard-health/execution-context 还在维护吗?

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