# @coloop-ai/temporal-superjson-payload-converter 中文文档

规范地址：https://npmcn.com/package/%40coloop-ai/temporal-superjson-payload-converter/

版本：0\.2\.0
npm 元数据更新时间：2026-09-04T18:42:07.848Z
中文译文更新时间：2026-11-10T11:15:50.514Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40coloop-ai/temporal-superjson-payload-converter
原文对照：https://npmcn.com/package/%40coloop-ai/temporal-superjson-payload-converter/?lang=original
项目主页：https://github.com/Genei-Ltd/temporal-superjson-payload-converter#readme
源码仓库：https://github.com/Genei-Ltd/temporal-superjson-payload-converter

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：317 kB，11 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：0 个
- peer 依赖：@temporalio/common ^1\.0\.0
- 首次发布：2026-01-09T12:44:11.764Z
- 最新版本发布：2026-08-12T09:22:11.333Z
- 近 30 天下载量：22734（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

Timoral工作流程的超级JSON有效载荷转换器。 将Date,Map,Set,和BigInt等复杂类型进行适当的序列化和去序列化.

## 安装

```sh
npm install @coloop-ai/temporal-superjson-payload-converter
```

也可以使用：`pnpm add @coloop-ai/temporal-superjson-payload-converter`、`yarn add @coloop-ai/temporal-superjson-payload-converter`、`bun add @coloop-ai/temporal-superjson-payload-converter`

## README

# @ coloop-ai/ 时空- 超级json- 负载- 转换器

[![npm version](https://img.shields.io/npm/v/@coloop-ai/temporal-superjson-payload-converter.svg)](https://www.npmjs.com/package/@coloop-ai/temporal-superjson-payload-converter) [![npm downloads](https://img.shields.io/npm/dm/@coloop-ai/temporal-superjson-payload-converter.svg)](https://www.npmjs.com/package/@coloop-ai/temporal-superjson-payload-converter) [![License: MIT](https://img.shields.io/npm/l/@coloop-ai/temporal-superjson-payload-converter.svg)](https://github.com/Genei-Ltd/temporal-superjson-payload-converter/blob/main/LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue?logo=typescript)](https://www.typescriptlang.org/)

A 类 [超级JSON](https://github.com/blitz-js/superjson)\- 基于有效载荷转换器 [时间](https://temporal.io/) 工作流程。 将标准JSON无法处理的复杂JavaScript类型正确序列化并去序列化.

## 为什么?

Temperal 默认 JSON 有效载荷转换器无法处理许多常见的 JavaScript 类型 :

-   `Date` 对象成为字符串
-   `Map` 财务报告和审定财务报表 `Set` 成为空对象 `{}`
-   `BigInt` 丢出错误
-   `RegExp` 变为空对象 `{}`

这个软件包通过使用"SuperJSON"来解决了这些问题,它存储了有效载荷元数据中的类型信息,并在去序列化过程中恢复了原始类型.

## 支持类型

-   `Date`
-   `Map`
-   `Set`
-   `BigInt`
-   `RegExp`
-   `undefined`
-   `Error` (和子类)
-   `URL`
-   已打入数组( E)`Int8Array`, (中文(简体) ), `Uint8Array`页:1
-   还有 [更多](https://github.com/blitz-js/superjson#superjson)

## 安装

```bash
npm install @coloop-ai/temporal-superjson-payload-converter
```

## 快开始

有效载荷转换器必须配置在 **全部** 这些地方:

1.  创造工人
2.  客户端创建
3.  工作流程捆绑( 如果使用 `bundleWorkflowCode`(中文(简体) )
4.  测试环境

### 工人设置

```ts
import { Worker } from '@temporalio/worker'

const worker = await Worker.create({
  // ... other options
  dataConverter: {
    payloadConverterPath:
      require.resolve('@coloop-ai/temporal-superjson-payload-converter'),
  },
})
```

### 客户端设置

```ts
import { Client } from '@temporalio/client'

const client = new Client({
  connection,
  namespace: 'your-namespace',
  dataConverter: {
    payloadConverterPath:
      require.resolve('@coloop-ai/temporal-superjson-payload-converter'),
  },
})
```

### 工作流程捆绑

```ts
import { bundleWorkflowCode } from '@temporalio/worker'

const workflowBundle = await bundleWorkflowCode({
  workflowsPath: require.resolve('./workflows'),
  payloadConverterPath:
    require.resolve('@coloop-ai/temporal-superjson-payload-converter'),
})
```

### 测试环境

```ts
import { TestWorkflowEnvironment } from '@temporalio/testing'

const env = await TestWorkflowEnvironment.createTimeSkipping({
  client: {
    dataConverter: {
      payloadConverterPath:
        require.resolve('@coloop-ai/temporal-superjson-payload-converter'),
    },
  },
})
```

## 无害环境管理项目

在无害环境管理项目中,使用 `createRequire` 访问 `require.resolve`数字 :

```ts
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)

const worker = await Worker.create({
  // ... other options
  dataConverter: {
    payloadConverterPath:
      require.resolve('@coloop-ai/temporal-superjson-payload-converter'),
  },
})
```

## 示例

一旦配置,复杂类型只是工作:

```ts
// workflow.ts
import { proxyActivities } from '@temporalio/workflow'

const activities = proxyActivities({
  startToCloseTimeout: '10 seconds',
})

export async function myWorkflow(input: {
  createdAt: Date
  tags: Set<string>
  metadata: Map<string, unknown>
}) {
  // input.createdAt is a Date instance
  // input.tags is a Set instance
  // input.metadata is a Map instance
  console.log(input.createdAt.toISOString())
  console.log(input.tags.has('important'))
  console.log(input.metadata.get('key'))
}
```

```ts
// client.ts
await client.workflow.start('myWorkflow', {
  taskQueue: 'my-queue',
  workflowId: 'my-workflow-id',
  args: [
    {
      createdAt: new Date(),
      tags: new Set(['important', 'urgent']),
      metadata: new Map([['key', 'value']]),
    },
  ],
})
```

## 向后兼容

这种转换器与默认JSON转换器所生成的有效载荷相倒相兼容. 它可以去除两个:

-   没有超级JSON元数据的遗留有效载荷(作为普通JSON处理)
-   带有超级JSON元数据的新有效载荷(完整类型恢复)

**说明:** 使用默认转换器的老工人仍然可以读取新的有效载荷,但复杂的类型将会被降解(例如:, `Date` 成为ISO 字符串, `Map` 成为一系列条目).

## API 密码

### `payloadConverter`

预配置的复合转换器,处理:

-   `undefined` 数值
-   二进制数据( E)`Uint8Array`(中文(简体) )
-   具有 SuperJSON 支持的所有其他值

这是默认导出, 当您指定时会使用 `payloadConverterPath`。 。 。 .

### `SuperJsonPayloadConverter`

基础的超级JSON转换器类. 如果您需要自编转换器, 您可以直接使用 :

```ts
import {
  CompositePayloadConverter,
  UndefinedPayloadConverter,
} from '@temporalio/common'
import { SuperJsonPayloadConverter } from '@coloop-ai/temporal-superjson-payload-converter'

export const payloadConverter = new CompositePayloadConverter(
  new UndefinedPayloadConverter(),
  // Add your custom converters here
  new SuperJsonPayloadConverter(),
)
```

### `SUPERJSON_META_KEY`

元数据键`'superjson-meta'`)用于存储类型信息. 为高级用例而出出.

## 脚本

-   `npm run build` - 制作软件包
-   `npm run tc` - 类型检查,不排放
-   `npm run lint` - 运行ESLint
-   `npm run test` - 和维特一起测试
-   `npm run format` - 检查Pretier的格式

## 许可证

MIT许可证。 见 [自由主义](https://npmcn.com/package/%40coloop-ai/temporal-superjson-payload-converter/LICENSE) 详细情况.

## 常见问题

### @coloop-ai/temporal-superjson-payload-converter 是什么？

Timoral工作流程的超级JSON有效载荷转换器。 将Date,Map,Set,和BigInt等复杂类型进行适当的序列化和去序列化\.

### 如何安装 @coloop-ai/temporal-superjson-payload-converter？

在项目目录运行 npm install @coloop-ai/temporal-superjson-payload-converter，或使用 pnpm add / yarn add / bun add。

### @coloop-ai/temporal-superjson-payload-converter 支持 TypeScript 吗？

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

### @coloop-ai/temporal-superjson-payload-converter 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @coloop-ai/temporal-superjson-payload-converter 需要什么版本的 Node\.js？

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

### @coloop-ai/temporal-superjson-payload-converter 可以商用吗？

@coloop-ai/temporal-superjson-payload-converter 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @coloop-ai/temporal-superjson-payload-converter 的下载量有多少？

根据 npm 官方下载统计，@coloop-ai/temporal-superjson-payload-converter 在 2026/10/11 – 2026/11/09 这 30 天内被下载 22,734 次，日均约 758 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @coloop-ai/temporal-superjson-payload-converter 还在维护吗？

最新版本 0\.2\.0 发布于 2026/08/12（2 个月前）；至今共发布 2 个版本，其中过去 12 个月发布了 2 个；首次发布于 2026/01/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

