dazn-commerce-contracts

中文文档
2.108.0发布于 2026/11/03UNLICENSEDTypeScriptCommonJS

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

中文使用文档
文档目录6 节
  1. 安装
  2. 使用模式和类型
  3. 使用类型化客户端
  4. OpenAPI
  5. 黄金法则
  6. 脚本

dazn-commerce-contracts

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

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

安装

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

pnpm add dazn-commerce-contracts

使用模式和类型

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 类型。

使用类型化客户端

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 版本名称空间。

脚本

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

版本与发布记录

dazn-commerce-contracts 共发布 41 个版本,首次发布于 2026/09/01;过去 12 个月发布了 41 个版本。

版本发布日期距今
2.108.0latest2026/11/03今天
2.107.02026/11/021 天前
2.106.02026/10/313 天前
2.105.02026/10/286 天前
2.104.02026/10/286 天前
2.101.02026/10/2212 天前

关于 dazn-commerce-contracts 的常见问题

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 和提交记录判断。