@dotcom-reliability-kit/serialize-error

中文文档
5.1.0发布于 2026/08/20MITTypeScriptES Module零依赖近 30 天下载 2万

用于串行一个对日志、查看引擎和转换为 JSON 的对错误对象的功能

中文使用文档
文档目录6 节
  1. 使用量
  2. serializeError
  3. SerializedError 类型
  4. 移动
  5. 捐款
  6. 许可证

@dotcom-可靠性-kit/序列化-error

一个用于序列化一个错误对象的功能,其方式对日志,查看引擎,以及转换为JSON是友好的. 此模块是 FT.com 可靠性工具包。 。 。 .

使用量

安装 @dotcom-reliability-kit/serialize-error 作为依附关系:

npm install --save @dotcom-reliability-kit/serialize-error

在代码中包含 :

import serializeError from '@dotcom-reliability-kit/serialize-error';

[TIP] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置: tsconfig.json 避免类型错误的文件 :

{
    "esModuleInterop": true,
    "module": "nodenext",
    "moduleResolution": "nodenext"
}

serializeError

这个 serializeError 函数接受类似错误的对象(例如 Error 或带有 message 属性),并返回一个平版 JavaScript 对象(符合 SerializedError 类型包含相关属性:

serializeError(new Error('example message'));
// {
//     id: null,
//     fingerprint: '...',
//     name: 'Error',
//     code: 'UNKNOWN',
//     message: 'An error occurred',
//     isOperational: false,
//     relatesToSystems: [],
//     cause: null,
//     stack: '...',
//     statusCode: null,
//     data: {}
// }

在普通对象中也可以通过,如果您已经有一个看起来像出错的物体(例如来自JSON API响应):

serializeError({
    message: 'example message'
});

SerializedError 类型

这个 SerializedError 类型文档的返回值 serializeError 函数。它将永远具有以下属性,从给定的错误对象中提取这些属性.

SerializedError.id

这取自于 error.id 财产,但只有在它是一个 String默认 null。 。 。 .

SerializedError.fingerprint

这是错误堆栈第一部分的散列,用于帮助代码库同一部分发生的分组错误. 指纹是 null 如果错误不包括堆栈跟踪.

[尖叫声]
不要依赖错误指纹的格式或长度,因为下面的散列可能会不提前变化. 你个 能够 取决于指纹对所抛出错误类型的独特性.

SerializedError.name

这取自于 error.name 总是被扔到一个 String默认 "Error"。 。 。 .

SerializedError.code

这取自于 error.code 总是被扔到一个 String默认 "UNKNOWN"。 。 。 .

SerializedError.message

这取自于 error.message 总是被扔到一个 String默认 "An error occurred",但我们希望这个库能够适应出乎意料的输入数据.

SerializedError.isOperational

这表明错误是否在运行(已知). 见文档 OperationalError 更多信息。 这是从 error.isOperational 属性。 它总是被一个 Boolean 默认为 false。 。 。 .

SerializedError.relatesToSystems

此数组包含一个列表 系统代码 与错误有关。 它默认为空数组 .

SerializedError.cause

这是从“% 1” 中提取的错误实例 error.cause 属性,在分配前按序列排列。 默认为 null。 。 。 .

SerializedError.errors

这是从 error.errors 财产(例如来自 总和错误) (中文(简体) ). 错误在被指定之前进行序列化.

SerializedError.stack

这取自于 error.stack 属性。 如果此属性不是字符串, 那么它将默认为 null。 。 。 .

SerializedError.statusCode

这取自于 error.statusCode 属性,然后是 error.status 属性(我们使用两个属性来保持与第三方请求和错误库的相容性)。 这些总是被扔到一个 Number 此属性默认为 null。 。 。 .

SerializedError.data

这取自于 error.data 属性。 如果此属性不是普通对象, 那么它会默认为空对象 : {}。 。 。 .

移动

咨询 移徙指南 如果你想要迁移到这个软件包的后期主要版本.

捐款

见 可靠性工具包中心贡献指南。 。 。 .

许可证

凭 麻省理工学院 执照.
版权:"2022","金融时报"有限公司.

版本与发布记录

@dotcom-reliability-kit/serialize-error 共发布 27 个版本,首次发布于 2022/05/16;过去 12 个月发布了 6 个版本。

版本发布日期距今
5.1.0latest2026/08/202 个月前
5.0.12026/07/144 个月前
5.0.02026/06/234 个月前
5.0.0-beta.2prerelease2026/06/035 个月前
5.0.0-beta.12026/03/177 个月前
4.2.02025/12/0411 个月前

关于 @dotcom-reliability-kit/serialize-error 的常见问题

@dotcom-reliability-kit/serialize-error 是什么?

用于串行一个对日志、查看引擎和转换为 JSON 的对错误对象的功能

如何安装 @dotcom-reliability-kit/serialize-error?

在项目目录运行 npm install @dotcom-reliability-kit/serialize-error,或使用 pnpm add / yarn add / bun add。

@dotcom-reliability-kit/serialize-error 支持 TypeScript 吗?

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

@dotcom-reliability-kit/serialize-error 支持 ESM 还是 CommonJS?

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

@dotcom-reliability-kit/serialize-error 需要什么版本的 Node.js?

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

@dotcom-reliability-kit/serialize-error 可以商用吗?

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

@dotcom-reliability-kit/serialize-error 的下载量有多少?

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

@dotcom-reliability-kit/serialize-error 还在维护吗?

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