@amritk/helpers

中文文档
0.26.0发布于 2026/10/23MITTypeScriptES Module构建来源已验证近 30 天下载 6万

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

中文使用文档
文档目录9 节
  1. 概览
  2. 安装
  3. 模块
  4. 司马转弯
  5. 编码公用事业
  6. 运行时帮助器( 也复制到生成的输出)
  7. 使用量
  8. 相关软件包
  9. 许可证

@ amritk/ 帮助

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

status  version  license  JSON Schema  node  vibe coded


概览

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


安装

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

模块

司马转弯

子路径出口目的
@amritk/helpers/extract-refsextractRefs收集每个 $ref 从一个计划可以达到.
@amritk/helpers/resolve-refresolveRef决定a $ref JSON指针, $anchor 名称,或URI——针对根图.
@amritk/helpers/build-anchor-mapbuildAnchorMap绘制一张地图 $anchor 编号 : $dynamicAnchor jSON指针.
@amritk/helpers/build-dynamic-ref-mapbuildDynamicRefMap绘制一张地图 $dynamicAnchor • 确定地点.
@amritk/helpers/resolve-dynamic-refsresolveDynamicRefs替换 $dynamicRef 使用上方地图的出错.
@amritk/helpers/assert-id-scopesassertIdScopes拒绝其 $id- 扫描的碎片在它自己的资源里一无所获.
@amritk/helpers/max-schema-depthMAX_SCHEMA_DEPTH, (中文(简体) ), assertSchemaDepth巢盖每个回转行走者执行.
@amritk/helpers/upgrade-draft07-schemaupgradeDraft07Schema, (中文(简体) ), isDraft07SchemaA 将07草案计划升级到2020-12.
@amritk/helpers/ref-to-filenamerefToFilename, (中文(简体) ), toKebabCase转换 a $ref 到一个稳定的文件名.
@amritk/helpers/ref-to-namerefToName转换 a $ref 改为 TypeScript 标识符 (PascalCase).
@amritk/helpers/walk-ref-graphwalkRefGraph, (中文(简体) ), RefNode共享 $ref- 显示每个生成器运行的轨迹: 升级 草稿 - 07, 解决每个读取器, 重写 $dynamicRef,生成类型/文件名称,将每个输出文件一个预计算节点交给一个 visit 调用.
@amritk/helpers/build-resource-registrybuildResourceRegistry, (中文(简体) ), ResourceRegistry读取文档 $id base-URI 瞄准镜一次,表示为 JSON 指针.
@amritk/helpers/normalize-ref-scopesnormalizeRefScopes重写 $ref 编号 : $dynamicRef 使用 $id 范围.
@amritk/helpers/resolve-scoped-refresolveScopedRef, (中文(简体) ), ScopedRefTarget在一个 $ref 土地一旦 $id 适用范围基础.
@amritk/helpers/graft-external-schemasgraftExternalSchemas, (中文(简体) ), GraftedSchema将已装入外部文档的已装入正在生成的文档中,因此交叉文档将像本地文档一样解决.
@amritk/helpers/prune-external-schemaspruneExternalSchemas丢弃已删除的文档.
@amritk/helpers/extract-dynamic-anchor-defsextractDynamicAnchorDefs收集一个 #/... 每一个带a的子母 $dynamicAnchor。 。 。 .
@amritk/helpers/fold-nullablefoldNullable重写 OpenAPI 3 nullable: true 改为 a null 成员 type。 。 。 .
@amritk/helpers/referenced-conditionalreferencedConditional这个 if编号 :then 定义 a allOf 成员的地方 $ref 点数,所以类型发射器和进口采集器都同意什么是内衬.
@amritk/helpers/derive-root-type-namederiveRootTypeName转个圈子 title 输入 PascalCase 根类型名称.
@amritk/helpers/read-keyreadKey, (中文(简体) ), declaresKey读取一个作者选择的名字( C)$defs 选项, 配置密钥) __proto__ 是因为缺席.
@amritk/helpers/assign-keyassignKey在重建对象上指定密钥而不让 __proto__ 到达原型设置器.
@amritk/helpers/schema-guardsisSchemaObject, (中文(简体) ), 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-definitiongenerateTypeDefinition从 schema 节点生成 TypeScript 类型 .
@amritk/helpers/mjst-extensionMJST_EXTENSION_KEY, (中文(简体) ), MjstExtension, (中文(简体) ), hasMjstHint, (中文(简体) ), getMjstInstanceOf, (中文(简体) ), getMjstPrimitive, (中文(简体) ), getMjstBrand, (中文(简体) ), getMjstDiscriminator读取 x-mjst 供应商提示( e)instanceOf, (中文(简体) ), primitive, (中文(简体) ), brand计划 和消息 discriminator a AsyncAPI 频道名称.
@amritk/helpers/generate-index-barrelgenerateIndexBarrel打开 index.ts 再输出每个生成的文件的管子。 从名字开始 _ 仅用于兄弟会文件,而被排除在外.
@amritk/helpers/identifier-mentionsidentifierMentions询问是否释放源名称标识符, 忽略注释、 字符串和 regex 字元—— 决定 $ref 导入生成的文件保存.
@amritk/helpers/get-default-valuegetDefaultValue数据缺失时的倒置值( 作为源文本) 解析器或修复验证器的替代 : default > 翻译: const > 第一个 enum > 第一个可用 examples 条目 > 第一个工会分支 > pattern > 类型. default 财务报告和审定财务报表 examples 仅当它们符合所声明的类型时才使用.
@amritk/helpers/generate-default-from-patterngenerateDefaultFromPattern构建一个可以保证匹配的倒置字符串 pattern (和长度界限),或 null。 。 。 .
@amritk/helpers/unknown-keys-strategyUnknownKeysStrategy, (中文(简体) ), UNKNOWN_KEYS_STRATEGIES, (中文(简体) ), DEFAULT_UNKNOWN_KEYS, (中文(简体) ), isUnknownKeysStrategy生成的快速路径如何证明一个被关闭的对象没有额外的密钥 : 'count-keys' (违约)或 'count-enumerable'。 。 。 .
@amritk/helpers/escape-regex-patternescapeRegexPattern, (中文(简体) ), regexFlagsFor, (中文(简体) ), regexLiteral嵌入了 JSON 斯克马 pattern 在生成的正则文字中,在生成时验证它.
@amritk/helpers/quote-js-stringquoteJsString引用一串作为JS文字,只在需要时才逃跑.
@amritk/helpers/multiple-of-checkmultipleOfPassExpr, (中文(简体) ), multipleOfFailExpr释放一个 multipleOf 检查是否与运行时间解释器一致 .
@amritk/helpers/numeric-bound-checkboundPassExpr, (中文(简体) ), boundFailExpr, (中文(简体) ), boundOperator释放 minimum 编号 : maximum 编号 : exclusive* 与运行时间解释器一致的支票.
@amritk/helpers/string-length-checkminLengthPassExpr, (中文(简体) ), maxLengthPassExpr,, , , , , , , , 释放 minLength 编号 : maxLength 检查密码点,而不是UTF-16单位.
@amritk/helpers/unknown-key-checkunknownKeyCheck, (中文(简体) ), INLINE_KEY_LIMIT释放出未知的密钥扫描——小密钥集的内置比较, 竖起 Set 超过极限.
@amritk/helpers/parse-documentationparseDocumentation, (中文(简体) ), ObjectDocumentation解析 OpenAPI 规格标记下的一个部分( 由 a 选择) commentUrl 碎片,例如 #info-object)成为标题、描述和每笔财产描述.
@amritk/helpers/safe-accessorsafeAccessor, (中文(简体) ), hasOwnCheck, (中文(简体) ), missingCheck, (中文(简体) ), safeKey释放一个安全的 JS 属性访问表达式(dot vs 括号注出,自有属性守护 Object.prototype 页:1.

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

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

使用量

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/helpers 共发布 45 个版本,首次发布于 2026/05/12;过去 12 个月发布了 45 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.26.0latest2026/10/2314 天前
0.25.02026/10/1027 天前
0.24.02026/09/261 个月前
0.23.32026/09/241 个月前
0.23.22026/09/231 个月前
0.23.12026/09/221 个月前

关于 @amritk/helpers 的常见问题

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