# @basketry/rules 中文文档

规范地址：https://npmcn.com/package/%40basketry/rules/

版本：0\.2\.2
npm 元数据更新时间：2025-08-23T19:51:54.659Z
中文译文更新时间：2026-11-07T22:33:50.533Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40basketry/rules
原文对照：https://npmcn.com/package/%40basketry/rules/?lang=original
项目主页：https://basketry.io/docs/components/@basketry/rules
源码仓库：https://github.com/basketry/rules

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

- 包体积（解压后）：164 kB，120 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2022-05-20T04:44:04.955Z
- 最新版本发布：2025-08-23T19:51:54.181Z
- 近 30 天下载量：2200（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 0 个）

## 中文简介

建造篮子管的共同规则

## 安装

```sh
npm install @basketry/rules
```

也可以使用：`pnpm add @basketry/rules`、`yarn add @basketry/rules`、`bun add @basketry/rules`

## README

[![main](https://github.com/basketry/rules/workflows/build/badge.svg?branch=main&event=push)](https://github.com/basketry/rules/actions?query=workflow%3Abuild+branch%3Amain+event%3Apush) [![master](https://img.shields.io/npm/v/@basketry/rules)](https://www.npmjs.com/package/@basketry/rules)

# 篮球规则

共同建筑规则 [篮球](https://github.com/basketry/basketry) 输油管。 这些规则可与任何篮板投篮手一起使用,并可与任何其他篮板规则结合使用.

## 说明

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/method-description` | 要求所有方法都有说明 |
| `@basketry/rules/lib/parameter-description` | 要求所有方法参数都有一个描述 |
| `@basketry/rules/lib/property-description` | 要求所有类型属性都有描述 |
| `@basketry/rules/lib/type-description` | 要求所有类型都有描述 |
| `@basketry/rules/lib/description` | 合并所有其他描述规则 |

### 选项

默认情况下,违反本规则的行为将被显示为出错. 这可能会被 `severity` 选项 :

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/description",
      "options": { "severity": "warning" }
    }
  ]
}
```

## 参数长度

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/array-parameter-length` | 需要方法阵列型参数来指定最大项长度. |

### 选项

默认情况下,违反此规则将被显示为出错. 这可能会被 `severity` 选项 :

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/array-parameter-length",
      "options": { "severity": "warning" }
    }
  ]
}
```

## HTTP 状态代码

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/http-delete-status` | 要求 HTTP DELETE 状态代码必须是 `200`, (中文(简体) ), `202`,或 `204` |
| `@basketry/rules/lib/http-get-status` | 要求 HTTP 获取状态代码必须是 `200`, (中文(简体) ), `204`,或 `206` |
| `@basketry/rules/lib/http-patch-status` | 要求HTTP PATCH 状态代码必须是 `200`, (中文(简体) ), `202`,或 `204` |
| `@basketry/rules/lib/http-post-status` | 要求 HTTP POST 状态代码必须是 `200`, (中文(简体) ), `201`, (中文(简体) ), `202`,或 `204` |
| `@basketry/rules/lib/http-put-status` | 要求 HTTP PUT 状态代码必须是 `200`, (中文(简体) ), `201`, (中文(简体) ), `202`,或 `204` |
| `@basketry/rules/lib/http-no-content-status` | 需要没有返回类型状态代码的方法 `204` 而返回数据的方法不返回 `204` |
| `@basketry/rules/lib/http-status` | 合并所有其他 HTTP 状态代码规则 |

### 选项

默认情况下,违反本规则的行为将被显示为出错. 这可能会被 `severity` 选项 :

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/http-status",
      "options": { "severity": "warning" }
    }
  ]
}
```

## 倾斜

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/offset-pagination` | 需要返回数组定义的方法 `offset` 财务报告和审定财务报表 `limit` 参数 |
| `@basketry/rules/lib/relay-pagination` | 需要返回数组定义的方法 [中继风格的页形参数](https://relay.dev/graphql/connections.htm#sec-Arguments) 并返回 a ["页面信息"](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo.Fields) 对象 |

### 选项

默认情况下,违反本规则的行为将被显示为出错. 这可能会被 `severity` 选项。 此规则允许赤色阵列和信封对象返回类型 。 默认情况下,有效载荷将位于称为 `value`, (中文(简体) ), `values`,或 `data`这些期望可能会被以下因素压倒: `payload` 选项.

如果为这种方法定义了HTTP协议信息,那么规则只适用于HTTP GET方法. 这可能会被 `verb` 或者说 `verbs` 选项.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/offset-pagination",
      "options": {
        "severity": "warning",
        "payload": ["result", "results"],
        "verbs": ["GET", "POST"]
      }
    }
  ]
}
```

为了有选择地适用该规则,使用 `allow`编号 :`deny` 列表中包含方法名称.

在以下例子中,该规则只将在 `myPaginatedMethod`. 授标规则 _不会_ 以任何方法执行 _没有_ 输入 `allow` 列表中选择一个选项.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/offset-pagination",
      "options": { "allow": ["myPaginatedMethod"] }
    }
  ]
}
```

在下面的例子中,该规则将不强制执行于 `myUnpaginatedMethod`. 授标规则 _将_ 对所有方法执行 _没有_ 输入 `deny` 列表中选择一个选项.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/offset-pagination",
      "options": { "deny": ["myUnpaginatedMethod"] }
    }
  ]
}
```

两者同时使用 `allow` 财务报告和审定财务报表 `deny` 清单可能导致无法预测的结果.

## 字符串标识

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/string-id` | 需要类型属性命名 `id` 必须是类型 `string` |

### 选项

默认情况下,违反此规则将被显示为出错. 这可能会被 `severity` 选项 :

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/string-id",
      "options": { "severity": "warning" }
    }
  ]
}
```

## 答复信封

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/response-envelope` | 要求所有方法返回包含两种内容的信封对象 `errors` 阵列和有效载荷属性. |

### 选项

默认情况下,违反本规则的行为将被显示为出错. 这可能会被 `severity` 选项。 此规则既允许赤出阵列,也允许 Everlope 对象返回类型 。 默认情况下,有效载荷预计将位于称为 `value`, (中文(简体) ), `values`,或 `data`。这些期望可能与 `payload` 选项。 请注意,其他规则可能强制执行各种复数化要求,因此必须同时包括有效载荷名称的复数和单数形式.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/response-envelope",
      "options": {
        "severity": "warning",
        "payload": ["result", "results"]
      }
    }
  ]
}
```

## 对象

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/object-request-body` | 要求请求机构(如果定义的话)是对象或对象的结合. |
| `@basketry/rules/lib/object-response-body` | 要求反应机构(如果定义的话)为对象或对象结合. |
| `@basketry/rules/lib/object-body` | 综合了其他所有物体体规则. |

### 选项

默认情况下,违反本规则的行为将被显示为出错. 这可能会被 `severity` 选项.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/object-body",
      "options": { "severity": "warning" }
    }
  ]
}
```

## 没有丢弃的 HTTP 天体

HTTP/1.1规格(RFC 7231)要么禁止身体,要么没有定义某些HTTP方法的身体行为. 在这些情况下,某些系统可能忽视、拒绝或失败,如果提供了一个机构。 以下规则禁止为这些HTTP方法定义机构.

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/no-http-delete-body` | 禁止HTTP DELETE方法定义请求正文. |
| `@basketry/rules/lib/no-http-get-body` | 禁止 HTTP 获取定义请求正文的方法 . |
| `@basketry/rules/lib/no-http-head-body` | 禁止HTTP Head方法定义请求正文. |
| `@basketry/rules/lib/no-http-options-body` | 禁止HTTP选择方法定义请求机构. |
| `@basketry/rules/lib/no-http-trace-body` | 禁止HTTP TRACE方法定义请求正文. |
| `@basketry/rules/lib/no-disallowed-http-body` | 合并了所有其他不允许使用的HTTP机体规则. |

### 选项

默认情况下,违反本规则的行为将被显示为出错. 这可能会被 `severity` 选项.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/no-disallowed-http-body",
      "options": { "severity": "warning" }
    }
  ]
}
```

## 多元化

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/enum-pluralization` | 要求海内有单数名称. |
| `@basketry/rules/lib/parameter-pluralization` | 需要阵列参数具有复数化名称,而非阵列参数具有单数名称. |
| `@basketry/rules/lib/property-pluralization` | 要求阵列属性具有复数化名称,非阵列属性具有单数名称. |
| `@basketry/rules/lib/pluralization` | 合并所有其他复数规则 |

### 选项

默认情况下,违反此规则将被显示为出错. 这可能会被 `severity` 选项 :

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/string-id",
      "options": { "severity": "warning" }
    }
  ]
}
```

## 线索

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/casing` | 界定服务各个部分的外壳需要 |

### 选项

编组值必须是以下之一:

-   `snake` - 如一些 项目 名称
-   `pascal` - 比如,一些项目Name
-   `camel` - 比如说一些项目Name
-   `kebab` - 比如一些物品名称
-   `header` - 比如,一些项目... Name
-   `constant'` - 比如说,有些东西

任何其他外壳值都将默默被忽略.

可在服务中执行外壳规则时使用下列立体:

-   `enum`
-   `enumValue`
-   `path`
-   `method`
-   `parameter`
-   `query`
-   `header`
-   `property`
-   `type`

注意,如果 `query` 或者说 `header` 当 `parameter` 实值 _(单位:千美元)_ 提供,然后对信头和查询参数的更具体规则将取代所有其他参数的设置。 若为 `query` 或者说 `header` 为: _没有_ 提供的值,用于 `parameter` 还将用于信头和查询参数.

默认情况下,违反此规则将被显示为出错. 这可能会被 `severity` 选项.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/casing",
      "options": {
        "severity": "warning",
        "enum": "camel",
        "enumValue": "constant",
        "path": "kabab",
        "method": "camel",
        "parameter": "camel",
        "query": "kabab",
        "header": "header",
        "property": "camel",
        "type": "camel"
      }
    }
  ]
}
```

如果某一特定元素没有指定外壳规则,则允许任何外壳. 没有默认值 .

警告: 改变 enum 值的外壳, 路径, 查询参数, 和属性 是 HTTP( aka RESTful) 服务的突破性改变, 因为这些值直接在 HTTP 请求或响应中传递 。 查询参数在技术上不区分大小写。 Enum,方法,和类型名称从未包含在HTTP流量中.

也注意到,各种发电机可能发出一种特定语言所特有的代码,而不论这些外壳规则如何;然而,所有生成的代码MUST在跨越服务界限进行通信时都会在所指定的外壳中发送并接收值并(或)尊重它们与之订立的协议的外壳要求.

## JSON: API 错误

| 规则 |  |
| --- | --- |
| `@basketry/rules/lib/json-api-error` | 要求定义符合 [JSON: API 错误对象](https://jsonapi.org/format/#error-objects) 规格 |

### 选项

默认情况下,违反此规则将被显示为出错. 这可能会被 `severity` 选项.

默认情况下,这需要严格符合JSON:API出错对象谱. 当严格模式下, `status` 如果定义了, 则必须是字符串值, 并且 `code` 无法定义为 `enum`时 `strict` 明确设定为 `false` (单位:千美元)`true` (默认),然后 `status` 可以是数字类型,并且 `code` 可以是字符串 enum 类型.

```json
{
  "rules": [
    {
      "rule": "@basketry/rules/lib/json-api-error",
      "options": {
        "severity": "warning",
        "strict": false
      }
    }
  ]
}
```

* * *

创建于 [发电机控制台](https://www.npmjs.com/package/generator-ts-console)

## 常见问题

### @basketry/rules 是什么？

建造篮子管的共同规则

### 如何安装 @basketry/rules？

在项目目录运行 npm install @basketry/rules，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 basketry-rules，可以用 npx basketry-rules 直接运行。

### @basketry/rules 支持 TypeScript 吗？

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

### @basketry/rules 支持 ESM 还是 CommonJS？

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

### @basketry/rules 可以商用吗？

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

### @basketry/rules 的下载量有多少？

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

### @basketry/rules 还在维护吗？

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

