diff --git a/.changeset/evil-houses-chew.md b/.changeset/evil-houses-chew.md new file mode 100644 index 0000000..6009207 --- /dev/null +++ b/.changeset/evil-houses-chew.md @@ -0,0 +1,5 @@ +--- +'openapi-ts-request': patch +--- + +fix: fix bug #536 diff --git a/openapi-ts-request.config.ts b/openapi-ts-request.config.ts index 8d483e6..5a1b6e6 100644 --- a/openapi-ts-request.config.ts +++ b/openapi-ts-request.config.ts @@ -1,6 +1,8 @@ +import { type GenerateServiceProps } from './src/index'; + export default [ { schemaPath: 'http://petstore.swagger.io/v2/swagger.json', serversPath: './apis/app', }, -]; +] as GenerateServiceProps[]; diff --git a/src/generator/serviceGenarator.ts b/src/generator/serviceGenarator.ts index a4685e5..0a87996 100644 --- a/src/generator/serviceGenarator.ts +++ b/src/generator/serviceGenarator.ts @@ -688,12 +688,22 @@ export default class ServiceGenerator { if (response?.isAnonymous) { const responseName = upperFirst(`${functionName}Response`); + // 使用正则表达式移除 response?.type 中包含 this.config.namespace 的部分,isAnonymous模式不需要 this.config.namespace 前缀 + const cleanType = response?.type?.includes( + `${this.config.namespace}.` + ) + ? response?.type?.replace( + new RegExp(`${this.config.namespace}\\.`, 'g'), + '' + ) + : response?.type || ''; this.interfaceTPConfigs.push({ typeName: responseName, - type: response?.type, + type: cleanType, isEnum: false, props: [], }); + response.type = `${this.config.namespace}.${responseName}`; }