@ amritk/ 帮助
为mjst代码生成生态系统提供共享的计程器和运行时辅助器.
概览
@amritk/helpers 是用于 密码发电机 财务报告和审定财务报表 以运行时间代码表示 这些发电机产生的。 每个帮助者都作为自己的子路径输出发表,因此消费者(和产生的产出)只能拉动他们需要的东西——没有桶子,没有附带的依赖.
安装
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 | 验证记录形状和附加属性. |
使用量
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——主要消费者@amritk/mjst- CLI表面