@asyncapi/diff

中文文档
0.6.1发布于 2026/11/02Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 31.3万

比较两个 AsyncAPI 文件和报告破损,不破损,以及未分类的更改的库.

中文使用文档
文档目录11 节
  1. 特征
  2. 安装
  3. 使用量
  4. 标准对象
  5. 超越标准
  6. 示例
  7. 产出
  8. API 密码
  9. 开发
  10. 捐款
  11. 贡献者

AsyncAPI Diff

AsyncDiff是一个比较了两个AsyncAPI文件的库,通过明确指出像突破更改一样的信息来提供差异信息.

这个包裹现在生活在 asyncapi/cli 单相 下级 packages/diff/ 从那里释放(同一个 npm 名称) @asyncapi/diff) (中文(简体) ). 比较规则不变. AsyncAPIDiff 从软件包条目导出,而两个 输入错误为 TypeError 有稳定的子类 .code。参见规格 : docs/diff/spec.md。 。 。 .

npm npm

特征

  • 获取关于您对 AsyncAPI 文件所做的更改的清晰信息, 如破解、 未破解和未解密的更改 .
  • JSON,YAML和Markdown等不同类型的输出.

安装

npm install @asyncapi/diff

使用量

注: 库中没有内置的解析器来解析给定的AsyncAPI文档. 因此,您必须确保它们作为输入提供有效的AsyncAPI文档。 你可以用这个 AsyncAPI 解析器 首先分析并验证 AsyncAPI 文件。 你可以使用其他的工具,但你 必须 确保文档是有效的,并进行调试.

import { diff } from "@asyncapi/diff"; // const { diff } = require('@asyncapi/diff');

const output = diff(firstDocument, secondDocument, {
  override: {
    // object to override the standard
  },
});

标准对象

此库有一个预设的标准,标记为 breaking, (中文(简体) ), non-breaking 或者说 unclassified本标准数据作为对象存储于 standard.ts 文档.

此标准对象的格式解释如下: 这个 文档.

超越标准

要了解压倒性对象的格式,请看 这个 文档.

覆盖对象必须以下列格式传递:

{
    [jsonPointer]: {
        add: 'breaking' | 'non-breaking' | 'unclassified'
        remove: 'breaking' | 'non-breaking' | 'unclassified'
        edit: 'breaking' | 'non-breaking' | 'unclassified'
    }
}

示例

见 指数 文档以获取此库提供的所有帮助方法.

  1. 没有任何覆盖
const output = diff(firstDocument, secondDocument);

output.getOutput(); // the whole output data
output.breaking(); // the breaking changes
output.nonBreaking(); // the non-breaking changes
output.unclassified(); // the unclassified changes
  1. 带有超音速
const output = diff(firstDocument, secondDocument, {
  override: {
    "/servers/*/protocol": {
      add: "non-breaking",
      remove: "breaking",
      edit: "unclassified",
    },
  },
});

产出

该库支持以下产出:

  • 贾森: json
  • 亚马逊: yaml 或者说 yml
  • 标记下 : markdown 或者说 md
const jsonOutput = diff(firstDocument, secondDocument, {
  outputType: "json",
});

const yamlOutput = diff(firstDocument, secondDocument, {
  outputType: "yaml" | "yml",
});

const markdownOutput = diff(firstDocument, secondDocument, {
  outputType: "markdown" | "md",
});

降标输出后,您也可以选择更改的子类型为 JSON ()json) 或 YAML( 或 YAML ()yaml 或者说 yml) (中文(简体) ).

const markdownOutput = diff(firstDocument, secondDocument, {
  outputType: "markdown" | "md",
  markdownSubtype: "json" | "yaml" | "yml",
});

API 密码

检查 指数 文档来查看此库提供的所有 API .

开发

  1. 密码和测试
  2. 确保所有测试通过 npm run test
  3. 确保代码格式良好且安全 npm run lint

捐款

帮助我们使这个图书馆更加坚固. 读取 捐款 引导并开始贡献.

贡献者

感谢这些伟大的人emoji 密钥:


阿尤什·库马尔·萨胡

💻 📖 🚧 🤔 👀 ⚠️

卢卡斯·戈尔尼茨基

🤔 👀 🚧

马西杰·乌尔班奇克

👀

乔纳斯·拉戈尼

👀

维尼特·沙德奥

👀

阿努比哈夫·瓦兹

👀

谢文·辛哈

💻 ⚠️

德巴吉奥蒂·哈尔德

📖

本项目遵循 全部贡献者 规格。 任何捐款都欢迎!

版本与发布记录

@asyncapi/diff 共发布 12 个版本,首次发布于 2021/06/08;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.1latest2026/11/025 天前
0.6.02026/10/1424 天前
0.5.22025/11/2411 个月前
0.5.12025/11/2411 个月前
0.5.02024/12/161.9 年前
0.4.12023/01/123 年前

关于 @asyncapi/diff 的常见问题

@asyncapi/diff 是什么?

比较两个 AsyncAPI 文件和报告破损,不破损,以及未分类的更改的库.

如何安装 @asyncapi/diff?

在项目目录运行 npm install @asyncapi/diff,或使用 pnpm add / yarn add / bun add。

@asyncapi/diff 支持 TypeScript 吗?

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

@asyncapi/diff 支持 ESM 还是 CommonJS?

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

@asyncapi/diff 可以商用吗?

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

@asyncapi/diff 的下载量有多少?

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

@asyncapi/diff 还在维护吗?

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