kindergarten_java/lesingle-edu-reading-platform-frontend/orval.config.ts
En 40589f59e7 chore: 重命名项目目录
前后端目录重命名:
- reading-platform-java/ → lesingle-edu-reading-platform-backend/
- reading-platform-frontend/ → lesingle-edu-reading-platform-frontend/

更新相关文件:
- 所有 shell 脚本中的目录引用
- pom.xml 和 application.yml 中的项目名称
- package.json 中的项目名称
- .claude/CLAUDE.md 中的路径引用
- README 文档中的路径引用
2026-03-26 11:31:47 +08:00

68 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineConfig } from 'orval';
/** 内联 schema避免 ResultObject[] 的 $ref 导致 oneOf 验证错误 */
const RESULT_OBJECT_ARRAY_SCHEMA = {
type: 'object',
properties: {
code: { type: 'integer', format: 'int32' },
message: { type: 'string' },
data: { type: 'array', items: { type: 'object', additionalProperties: true } },
},
};
export default defineConfig({
readingPlatform: {
output: {
mode: 'split',
target: 'src/api/generated/index.ts',
schemas: 'src/api/generated/model',
client: 'axios',
override: {
mutator: {
path: 'src/api/generated/mutator.ts',
name: 'customMutator',
},
// 自定义类型名称
name: (type) => {
// 移除命名空间前缀,简化类型名称
return type.replace(/^(Result|ResultPageResult)/, '');
},
},
// 导入优化
imports: {
axios: true,
},
},
input: {
// 使用 api:fetch 生成的 openapi.jsonapi:update 会自动先执行 api:fetch
target: './openapi.json',
// 路径重写:确保 OpenAPI 文档中的路径正确
override: {
// 使用转换器修复路径 - 将 `/api/v1/xxx` 转换为 `/v1/xxx`(因为 baseURL 已经是 `/api`
transformer: (spec) => {
const paths = spec.paths || {};
for (const path of Object.keys(paths)) {
let newKey = path.replace(/^\/api\/v1\//, '/v1/');
if (newKey !== path) {
paths[newKey] = paths[path];
delete paths[path];
}
}
for (const pathObj of Object.values(paths)) {
for (const op of Object.values(pathObj)) {
const content = op?.responses?.['200']?.content;
if (!content) continue;
for (const media of Object.values(content)) {
if (media?.schema?.['$ref']?.endsWith('ResultObject[]')) {
media.schema = { ...RESULT_OBJECT_ARRAY_SCHEMA };
}
}
}
}
return spec;
},
},
},
},
});