# dazn-commerce-contracts 中文文档

规范地址：https://npmcn.com/package/dazn-commerce-contracts/

版本：2\.108\.0
npm 元数据更新时间：2026-11-03T10:10:26.344Z
中文译文更新时间：2026-11-03T11:16:16.071Z
软件包许可：UNLICENSED

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

原始 npm 页面：https://www.npmjs.com/package/dazn-commerce-contracts
原文对照：https://npmcn.com/package/dazn-commerce-contracts/?lang=original

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

- 包体积（解压后）：2.9 MB，219 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：1 个
- 首次发布：2026-09-01T14:20:45.606Z
- 最新版本发布：2026-11-03T10:10:26.135Z
- 已发布版本数：41（近 12 个月 41 个）

## 中文简介

DAZN commerce /v1连接格式的单一事实来源：Zod模式→类型→OpenAPI 3.1→类型化客户端。发布到私有注册中心。

## 安装

```sh
npm install dazn-commerce-contracts
```

也可以使用：`pnpm add dazn-commerce-contracts`、`yarn add dazn-commerce-contracts`、`bun add dazn-commerce-contracts`

## README

# dazn-commerce-contracts

唯一的真相来源 **DAZN商务 `/v1` 有线格式**。

zd模式→推断TypeScript类型→生成 **OpenAPI 3.1** 和一个 **输入 客户端**． 发布（永久）到私有注册中心，并由 `dazn-commerce-engine` 和 `dazn-storefront`． 如果它穿过导线，它是有定义的 在这里。

## 安装

配置 `@dazn` 范围设置为私有注册中心(参见 `.npmrc`),那么:

```bash
pnpm add dazn-commerce-contracts
```

## 使用模式和类型

```ts
import { Money, Cart, OrderDetail, OrderStatus, parseOr } from 'dazn-commerce-contracts';

const price: Money = { amount: 2500, currency: 'GBP' }; // £25.00
const cart = Cart.parse(await res.json()); // validated at the boundary
```

每个模式都以相同的名称-与其推断类型一起导出 `Cart` 是 模式（一个值）和 `Cart` 类型。

## 使用类型化客户端

```ts
import { createClient } from 'dazn-commerce-contracts/client';

const api = createClient({
  baseUrl: 'https://storefront.example.com/v1',
  getToken: () => session.token,
});

const { data } = await api.catalog.listProducts({ limit: 20 });
const order = await api.orders.get('ord_01H9Z...'); // OrderDetail, validated
```

客户端使用模式验证每个响应，并抛出一个类型错误 `DaznApiError` (带标准误差 `code`)的非2xx回应。

## OpenAPI

生成的OpenAPI 3.1文档发布于 `dazn-commerce-contracts/openapi.json` 和 由发动机在 `/v1/openapi.json`。

## 黄金法则

-   **钱** 总是整数小单位+ ISO-4217 -从来没有一个浮点数，从来没有一个裸 号码。
-   **`/v1` 仅为添加剂。** 一个突破性的变化是一个新的主版本和一个新的API 版本名称空间。

## 脚本

```bash
pnpm build      # dist/ + client/ + openapi/openapi.json
pnpm test       # schema round-trip tests
pnpm lint       # ESLint
pnpm typecheck  # tsc --noEmit (strict)
```

## 常见问题

### dazn-commerce-contracts 是什么？

DAZN commerce /v1连接格式的单一事实来源：Zod模式→类型→OpenAPI 3\.1→类型化客户端。发布到私有注册中心。

### 如何安装 dazn-commerce-contracts？

在项目目录运行 npm install dazn-commerce-contracts，或使用 pnpm add / yarn add / bun add。

### dazn-commerce-contracts 支持 TypeScript 吗？

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

### dazn-commerce-contracts 支持 ESM 还是 CommonJS？

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

### dazn-commerce-contracts 需要什么版本的 Node\.js？

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

### dazn-commerce-contracts 可以商用吗？

dazn-commerce-contracts 使用 UNLICENSED 许可。作者声明为 UNLICENSED，即不授予公开使用许可（与公共领域的 Unlicense 不同）。使用前需获得作者授权。以上为概括，不构成法律意见，请以许可原文为准。

### dazn-commerce-contracts 还在维护吗？

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

