@ cerios/ openapi 核心
用于解析和处理OpenAPI规格的核心公用事业. 这个软件包为OpenAPI代码生成器提供了共享的基础.
安装
npm install @cerios/openapi-core
特征
- 🔍 OpenAPI 解析 - 分析OpenAPI 3.0/3.1YAML和JSON规格
- 🔗 参考决议 - 决断
$ref全谱的参考文献 - 🏷️ 操作过滤 - 通过标签、路径和方法过滤操作
- 🛠️ 工具函数 - 用于计划处理的通用公用事业
- 📦 批量执行 - 发电机的平行和相继执行
- 🧪 测试固定器 - 用于测试的共享OpenAPI装置
使用量
import {
shouldIncludeOperation,
toPascalCase,
toCamelCase,
resolveRefName,
LRUCache,
loadOpenAPISpec,
} from "@cerios/openapi-core";
// Load and parse an OpenAPI spec
const spec = await loadOpenAPISpec("openapi.yaml");
// Extract schema name from $ref
const schemaName = resolveRefName("#/components/schemas/User"); // "User"
// Filter operations
const include = shouldIncludeOperation(operation, path, method, {
includeTags: ["users"],
excludePaths: ["/internal/*"],
});
// Name utilities
const className = toPascalCase("user-profile"); // "UserProfile"
const methodName = toCamelCase("get-user-by-id"); // "getUserById"
API 参考
类型
OpenAPISpec- OpenAPI 规格结构OpenAPISchema- Schema定义结构OpenAPIParameter- 参数定义OpenAPIRequestBody- 请求体定义OpenAPIResponse- 反应定义OperationFilters- 操作过滤选项ExecutionMode- 平行/相继执行模式BaseGeneratorOptions- 所有发电机的基本选项
光谱解析
loadOpenAPISpec()- 装入并分析 OpenAPI 光谱文件loadOpenAPISpecCached()- 装入LRU缓冲
参考决议
resolveRefName()- 从$ref路径resolveRequestBodyRef()- 解决请求机构参考resolveResponseRef()- 确定答复参考mergeParameters()- 合并路径和操作参数
操作过滤
shouldIncludeOperation()- 检查操作是否匹配过滤器validateFilters()- 验证过滤器配置createFilterStatistics()- 创建过滤器统计跟踪器formatFilterStatistics()- 用于显示的格式统计
名称 公用事业
toPascalCase()- 将字符串转换为 PascalCasetoCamelCase()- 将字符串转换为骆驼CaseresolveRefName()- 从 $ref 路径提取名称getOperationName()- 从操作ID或路径获取操作名称generateMethodNameFromPath()- 从路径生成方法名capitalize()- 首字母大写
命名方法
pathToPascalCase()- 将路径转换为PascalCase(例如,/users/{userId}→UsersByUserId(中文(简体) )generateHttpMethodName()- 从 HTTP 方法 + 路径生成方法名称extractPathParams()- 从路径模板中提取参数名称sanitizeOperationId()- 为类型脚本进行安全操作IdsanitizeParamName()- 将类型脚本的参数名称标准化
斯克马·特拉弗萨尔
extractSchemaRefs()- 全部提取出来$ref来自 schema 树的名称expandTransitiveReferences()- 扩大范围,以包括过渡性参考计划detectCircularReferences()- 检测循环参考链topologicalSortSchemas()- 按依赖关系排序计划analyzeSchemaUsage()- 分析请求/答复上下文的使用classifyEnumType()- 将enum值分类为字符串/数字/布尔/混合
页眉过滤器
shouldIgnoreHeader()- 检查信头是否匹配忽略模式filterHeaders()- 不包括被忽略的过滤头validateIgnorePatterns()- 验证和警告无与伦比的模式
模式公用事业
stripPrefix()- 从计划名称中取出前缀stripSuffix()- 从字符串中取出后缀stripAffixes()- 剥去前缀和后缀stripPathPrefix()- 从路径取出前缀( 支持 glob)isGlobPattern()- 检查字符串是否为 glob 模式
字符串公用事业
escapeJSDoc()- 逃避JSDoc内容escapeDescription()- 逃逸描述文本escapePattern()- 逃逸正反模式getPrimaryType()- 从计划中获得初级类型hasMultipleTypes()- 检查Schema是否有多种类型isNullable()- 检查计划是否无效
内容类型
getResponseParseMethod()- 确定反应解析方法(json、文本、blob等)
配置装入器
createConfigLoader()- 装有宇宙外形+Zod验证的型号安全配置装载器工厂mergeCliWithConfig()- 将 CLI 选项与配置值合并(CLI优先)
水电
findSpecFiles()- 在目录中查找 OpenAPI 光谱文件getRandomCeriosMessage()- 随机获取 CLI 问候消息
类
LRUCache- 最近使用的缓存执行最少GeneratorError- 发电机基准错误类别SpecValidationError- OpenAPI spec验证错误FileOperationError- 文件 I/O 错误ConfigValidationError- 配置错误CircularReferenceError- 通知参考检测错误CliOptionsError- CLI 选项验证错误SchemaGenerationError- Schema生成错误
批量执行
executeBatch()- 执行多个发电机getBatchExitCode()- 计算结果的退出代码Generator- 发电机执行接口
许可证
麻省理工学院