# @amritk/helpers 中文文档

规范地址：https://npmcn.com/package/%40amritk/helpers/

版本：0\.26\.0
npm 元数据更新时间：2026-10-22T18:54:14.384Z
中文译文更新时间：2026-11-06T01:29:54.755Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40amritk/helpers
原文对照：https://npmcn.com/package/%40amritk/helpers/?lang=original
项目主页：https://github.com/amritk/mjst/tree/main/packages/helpers#readme
源码仓库：https://github.com/amritk/mjst

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

- 包体积（解压后）：239 kB，94 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：1 个
- 首次发布：2026-05-11T18:09:31.215Z
- 最新版本发布：2026-10-22T18:54:14.035Z
- 近 30 天下载量：59544（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：45（近 12 个月 45 个）

## 中文简介

共享mjst代码生成生态系统的公用事业.

## 安装

```sh
npm install @amritk/helpers
```

也可以使用：`pnpm add @amritk/helpers`、`yarn add @amritk/helpers`、`bun add @amritk/helpers`

## README

# @ amritk/ 帮助

**为mjst代码生成生态系统提供共享的计程器和运行时辅助器.**

![status](https://img.shields.io/badge/status-pre--alpha-ef4444?style=flat-square)  ![version](https://img.shields.io/npm/v/@amritk/helpers?style=flat-square&logo=npm&logoColor=white&label=version&color=6366f1)  ![license](https://img.shields.io/badge/license-MIT-22c55e?style=flat-square)  ![JSON Schema](https://img.shields.io/badge/JSON%20Schema-2020--12-f97316?style=flat-square)  ![node](https://img.shields.io/badge/node-%E2%89%A520-339933?style=flat-square&logo=node.js&logoColor=white)  ![vibe coded](https://img.shields.io/badge/vibe-coded-a855f7?style=flat-square)

* * *

## 概览

`@amritk/helpers` 是用于 [密码](https://npmcn.com/package/README.md)发电机 **财务报告和审定财务报表** 以运行时间代码表示 这些发电机产生的。 每个帮助者都作为自己的子路径输出发表,因此消费者(和产生的产出)只能拉动他们需要的东西——没有桶子,没有附带的依赖.

* * *

## 安装

```bash
npm install @amritk/helpers
# or
pnpm add @amritk/helpers
# or
yarn add @amritk/helpers
# or
bun add @amritk/helpers
```

* * *

## 模块

### 司马转弯

| 子路径 | 出口 | 目的 |
| :-- | :-- | :-- |
| `@amritk/helpers/extract-refs` | `extractRefs` | 收集每个 `$ref` 从一个计划可以达到. |
| `@amritk/helpers/resolve-ref` | `resolveRef` | 决定a `$ref` JSON指针, `$anchor` 名称,或URI——针对根图. |
| `@amritk/helpers/build-anchor-map` | `buildAnchorMap` | 绘制一张地图 `$anchor` 编号 : `$dynamicAnchor` jSON指针. |
| `@amritk/helpers/build-dynamic-ref-map` | `buildDynamicRefMap` | 绘制一张地图 `$dynamicAnchor` • 确定地点. |
| `@amritk/helpers/resolve-dynamic-refs` | `resolveDynamicRefs` | 替换 `$dynamicRef` 使用上方地图的出错. |
| `@amritk/helpers/assert-id-scopes` | `assertIdScopes` | 拒绝其 `$id`\- 扫描的碎片在它自己的资源里一无所获. |
| `@amritk/helpers/max-schema-depth` | `MAX_SCHEMA_DEPTH`, (中文(简体) ), `assertSchemaDepth` | 巢盖每个回转行走者执行. |
| `@amritk/helpers/upgrade-draft07-schema` | `upgradeDraft07Schema`, (中文(简体) ), `isDraft07Schema` | A 将07草案计划升级到2020-12. |
| `@amritk/helpers/ref-to-filename` | `refToFilename`, (中文(简体) ), `toKebabCase` | 转换 a `$ref` 到一个稳定的文件名. |
| `@amritk/helpers/ref-to-name` | `refToName` | 转换 a `$ref` 改为 TypeScript 标识符 (PascalCase). |
| `@amritk/helpers/walk-ref-graph` | `walkRefGraph`, (中文(简体) ), `RefNode` | 共享 `$ref`\- 显示每个生成器运行的轨迹: 升级 草稿 - 07, 解决每个读取器, 重写 `$dynamicRef`,生成类型/文件名称,将每个输出文件一个预计算节点交给一个 `visit` 调用. |
| `@amritk/helpers/build-resource-registry` | `buildResourceRegistry`, (中文(简体) ), `ResourceRegistry` | 读取文档 `$id` base-URI 瞄准镜一次,表示为 JSON 指针. |
| `@amritk/helpers/normalize-ref-scopes` | `normalizeRefScopes` | 重写 `$ref` 编号 : `$dynamicRef` 使用 `$id` 范围. |
| `@amritk/helpers/resolve-scoped-ref` | `resolveScopedRef`, (中文(简体) ), `ScopedRefTarget` | 在一个 `$ref` 土地一旦 `$id` 适用范围基础. |
| `@amritk/helpers/graft-external-schemas` | `graftExternalSchemas`, (中文(简体) ), `GraftedSchema` | 将已装入外部文档的已装入正在生成的文档中,因此交叉文档将像本地文档一样解决. |
| `@amritk/helpers/prune-external-schemas` | `pruneExternalSchemas` | 丢弃已删除的文档. |
| `@amritk/helpers/extract-dynamic-anchor-defs` | `extractDynamicAnchorDefs` | 收集一个 `#/...` 每一个带a的子母 `$dynamicAnchor`。 。 。 . |
| `@amritk/helpers/fold-nullable` | `foldNullable` | 重写 OpenAPI 3 `nullable: true` 改为 a `null` 成员 `type`。 。 。 . |
| `@amritk/helpers/referenced-conditional` | `referencedConditional` | 这个 `if`编号 :`then` 定义 a `allOf` 成员的地方 `$ref` 点数,所以类型发射器和进口采集器都同意什么是内衬. |
| `@amritk/helpers/derive-root-type-name` | `deriveRootTypeName` | 转个圈子 `title` 输入 PascalCase 根类型名称. |
| `@amritk/helpers/read-key` | `readKey`, (中文(简体) ), `declaresKey` | 读取一个作者选择的名字( C)`$defs` 选项, 配置密钥) `__proto__` 是因为缺席. |
| `@amritk/helpers/assign-key` | `assignKey` | 在重建对象上指定密钥而不让 `__proto__` 到达原型设置器. |
| `@amritk/helpers/schema-guards` | `isSchemaObject`, (中文(简体) ), `hasType`, (中文(简体) ), `hasProperties`, (中文(简体) ), `hasOneOf`, (中文(简体) ), `hasAnyOf`, (中文(简体) ), `hasAllOf`, (中文(简体) ), `hasEnum`, (中文(简体) ), `hasConst`, (中文(简体) ), `hasPattern`, (中文(简体) ), `hasFormat`, (中文(简体) ), `hasDefault`, (中文(简体) ), `hasExamples`, (中文(简体) ), `hasRequired`, (中文(简体) ), `hasItems`, (中文(简体) ), `hasAdditionalProperties`, (中文(简体) ), `hasMinLength`, (中文(简体) ), `hasMaxLength`, (中文(简体) ), `hasMinimum`, (中文(简体) ), `hasMaximum`, (中文(简体) ), `hasExclusiveMinimum`, (中文(简体) ), `hasExclusiveMaximum`, (中文(简体) ), `hasMultipleOf`, (中文(简体) ), `hasMinItems`, (中文(简体) ), `hasMaxItems`, (中文(简体) ), `hasUniqueItems`, (中文(简体) ), `hasMinProperties`, (中文(简体) ), `hasMaxProperties`,, , , , , , , , | JSON Schema 关键词的收缩式上游. |

### 编码公用事业

| 子路径 | 出口 | 目的 |
| :-- | :-- | :-- |
| `@amritk/helpers/generate-type-definition` | `generateTypeDefinition` | 从 schema 节点生成 TypeScript 类型 . |
| `@amritk/helpers/mjst-extension` | `MJST_EXTENSION_KEY`, (中文(简体) ), `MjstExtension`, (中文(简体) ), `hasMjstHint`, (中文(简体) ), `getMjstInstanceOf`, (中文(简体) ), `getMjstPrimitive`, (中文(简体) ), `getMjstBrand`, (中文(简体) ), `getMjstDiscriminator` | 读取 `x-mjst` 供应商提示( e)`instanceOf`, (中文(简体) ), `primitive`, (中文(简体) ), `brand`计划 和消息 `discriminator` a AsyncAPI 频道名称. |
| `@amritk/helpers/generate-index-barrel` | `generateIndexBarrel` | 打开 `index.ts` 再输出每个生成的文件的管子。 从名字开始 `_` 仅用于兄弟会文件,而被排除在外. |
| `@amritk/helpers/identifier-mentions` | `identifierMentions` | 询问是否释放源名称标识符, 忽略注释、 字符串和 regex 字元—— 决定 `$ref` 导入生成的文件保存. |
| `@amritk/helpers/get-default-value` | `getDefaultValue` | 数据缺失时的倒置值( 作为源文本) 解析器或修复验证器的替代 : `default` > 翻译: `const` > 第一个 `enum` > 第一个可用 `examples` 条目 > 第一个工会分支 > `pattern` > 类型. `default` 财务报告和审定财务报表 `examples` 仅当它们符合所声明的类型时才使用. |
| `@amritk/helpers/generate-default-from-pattern` | `generateDefaultFromPattern` | 构建一个可以保证匹配的倒置字符串 `pattern` (和长度界限),或 `null`。 。 。 . |
| `@amritk/helpers/unknown-keys-strategy` | `UnknownKeysStrategy`, (中文(简体) ), `UNKNOWN_KEYS_STRATEGIES`, (中文(简体) ), `DEFAULT_UNKNOWN_KEYS`, (中文(简体) ), `isUnknownKeysStrategy` | 生成的快速路径如何证明一个被关闭的对象没有额外的密钥 : `'count-keys'` (违约)或 `'count-enumerable'`。 。 。 . |
| `@amritk/helpers/escape-regex-pattern` | `escapeRegexPattern`, (中文(简体) ), `regexFlagsFor`, (中文(简体) ), `regexLiteral` | 嵌入了 JSON 斯克马 `pattern` 在生成的正则文字中,在生成时验证它. |
| `@amritk/helpers/quote-js-string` | `quoteJsString` | 引用一串作为JS文字,只在需要时才逃跑. |
| `@amritk/helpers/multiple-of-check` | `multipleOfPassExpr`, (中文(简体) ), `multipleOfFailExpr` | 释放一个 `multipleOf` 检查是否与运行时间解释器一致 . |
| `@amritk/helpers/numeric-bound-check` | `boundPassExpr`, (中文(简体) ), `boundFailExpr`, (中文(简体) ), `boundOperator` | 释放 `minimum` 编号 : `maximum` 编号 : `exclusive*` 与运行时间解释器一致的支票. |
| `@amritk/helpers/string-length-check` | `minLengthPassExpr`, (中文(简体) ), `maxLengthPassExpr`,, , , , , , , , | 释放 `minLength` 编号 : `maxLength` 检查密码点,而不是UTF-16单位. |
| `@amritk/helpers/unknown-key-check` | `unknownKeyCheck`, (中文(简体) ), `INLINE_KEY_LIMIT` | 释放出未知的密钥扫描——小密钥集的内置比较, 竖起 `Set` 超过极限. |
| `@amritk/helpers/parse-documentation` | `parseDocumentation`, (中文(简体) ), `ObjectDocumentation` | 解析 OpenAPI 规格标记下的一个部分( 由 a 选择) `commentUrl` 碎片,例如 `#info-object`)成为标题、描述和每笔财产描述. |
| `@amritk/helpers/safe-accessor` | `safeAccessor`, (中文(简体) ), `hasOwnCheck`, (中文(简体) ), `missingCheck`, (中文(简体) ), `safeKey` | 释放一个安全的 JS 属性访问表达式(dot vs 括号注出,自有属性守护 `Object.prototype` 页:1. |

### 运行时帮助器( 也复制到生成的输出)

| 子路径 | 出口 | 目的 |
| :-- | :-- | :-- |
| `@amritk/helpers/coercion-runtime` | `coerceScalar`, (中文(简体) ), `coerceUnion`, (中文(简体) ), `valuesEqual`, (中文(简体) ), `allUnique`, (中文(简体) ), `everyItem`, (中文(简体) ), `escapePointer` | 验证器的强迫和匹配运行时间, 字节与副本在验证器架构中的相同 `validation-result.ts`,对于一个必须同意 `coerceX`。 。 。 . |
| `@amritk/helpers/is-object` | `isObject` | 窄 `unknown` → `Record<string, unknown>`。 。 。 . |
| `@amritk/helpers/has-ref` | `hasRef` | 将值缩小到带有字符串的对象 `$ref`。 。 。 . |
| `@amritk/helpers/validate-array` | `validateArray` | 验证数组形状和项目. |
| `@amritk/helpers/validate-record` | `validateRecord` | 验证记录形状和附加属性. |

* * *

## 使用量

```ts
import { resolveRef } from '@amritk/helpers/resolve-ref'
import { isObjectSchema, hasProperties } from '@amritk/helpers/schema-guards'

const node = resolveRef('#/$defs/info', rootSchema)

if (isObjectSchema(node) && hasProperties(node)) {
  for (const [name, property] of Object.entries(node.properties)) {
    // ...
  }
}
```

多数帮助者有一个位于同一位置的测试文件( Name`*.test.ts`) ——读取那些为犬科的例子.

* * *

## 相关软件包

-   [`@amritk/validation`](https://npmcn.com/package/%40amritk/validation) ——主要消费者
-   [`@amritk/mjst`](https://npmcn.com/package/%40amritk/cli) - CLI表面

* * *

## 许可证

[麻省理工学院](https://npmcn.com/package/LICENSE)

## 常见问题

### @amritk/helpers 是什么？

共享mjst代码生成生态系统的公用事业\.

### 如何安装 @amritk/helpers？

在项目目录运行 npm install @amritk/helpers，或使用 pnpm add / yarn add / bun add。

### @amritk/helpers 支持 TypeScript 吗？

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

### @amritk/helpers 支持 ESM 还是 CommonJS？

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

### @amritk/helpers 需要什么版本的 Node\.js？

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

### @amritk/helpers 可以商用吗？

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

### @amritk/helpers 的下载量有多少？

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

### @amritk/helpers 还在维护吗？

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

