Support loading a config from a `openapi-codegen.config.mts` file
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 52/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- typescript
- 领域
- cli
调研方向
Reproduce the failure with npx openapi-codegen -c openapi-codegen.config.mts using the configuration shown in the issue. Start at GenerateCommand.getFromOptions around lib/cli.js:282 and trace how the .mts export is loaded. Done means the module-style config loads without the workaround and generation proceeds successfully.
由索引模型根据 Issue 内容生成。
描述
When i use the mts file extension to define my config as a module, rather than allowing it to be treated as commonjs, the loading doesnt work properly. With npx openapi-codegen -c openapi-codegen.config.mts, i see
Type Error: Cannot read properties of undefined (reading 'source')
at GenerateCommand.getFromOptions (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/@openapi-codegen/cli/lib/cli.js:282:47)
at Object.task (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/@openapi-codegen/cli/lib/cli.js:364:32)
at xe (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/@clack/prompts/dist/index.mjs:79:394)
at GenerateCommand.execute (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/@openapi-codegen/cli/lib/cli.js:359:11)
at async GenerateCommand.validateAndExecute (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/clipanion/lib/advanced/Command.mjs:49:26)
at async Cli.run (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/clipanion/lib/advanced/Cli.mjs:227:24)
at async Cli.runExit (file:///Users/emily.klassen/code/tmp/oapi-codegen-example/node_modules/clipanion/lib/advanced/Cli.mjs:236:28)
To work around this, i need to change the config like
// openapi-codegen.config.mts
import { defineConfig } from "@openapi-codegen/cli";
import {
generateSchemaTypes,
generateReactQueryComponents,
} from "@openapi-codegen/typescript";
export const example = defineConfig({
example: {
// can be overridden from cli
from: {
source: "github",
owner: "fabien0102",
repository: "openapi-codegen",
ref: "main",
specPath: "examples/spec.yaml",
},
// can be overridden from cli
outputDir: "src/queries",
to: async (context) => {
// You can transform the `context.openAPIDocument` here, can be useful to remove internal routes or fixing some known issues in the specs ;)
// Generate all the schemas types (components & responses)
const { schemasFiles } = await generateSchemaTypes(context, {
/* config */
});
// Generate all react-query components
await generateReactQueryComponents(context, {
/* config*/
schemasFiles,
});
},
},
}).example;
The primary motivation for using an mts file is, if i have a tsconfig which uses module: 'node16', the types will not resolve properly, as "@openapi-codegen/cli" et al are esm. Otherwise, i'd have to create another tsconfig specifically to target the config, which is less than ideal.
- 主要语言
- TypeScript
- 星标
- 634
- 派生
- 83
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
fabien0102/openapi-codegen 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
fabien0102/openapi-codegen#343 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
fabien0102/openapi-codegen#342 ·
-
难度 5/5 一周以上 新手友好度 30/100
fabien0102/openapi-codegen#356 ·
-
update dependencies & removed unused deprecated可能已有人在做 @el-j 于 1 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 25/100
fabien0102/openapi-codegen#354 ·
-
deepMerge mutates its arguments, corrupting request payloads across calls可能已有人在做 @richard-willis-chevin 于 45 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 72/100
fabien0102/openapi-codegen#349 ·
查看 fabien0102/openapi-codegen 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 84/100
answerLoops/answerLoops#345 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 82/100
siyuan-note/siyuan#20313 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
LanternOps/breeze#8254 ·
维护者通常 1 天内回复
-
难度 1/5 1-3 小时 新手友好度 82/100
gofish-graphics/gofish-graphics#1084 ·
维护者通常 1 天内回复