From a97c3b22facd9189d0c3ddc580e0d26c6aece320 Mon Sep 17 00:00:00 2001 From: didavila Date: Tue, 24 Mar 2026 15:52:11 +0100 Subject: [PATCH] feat: enhance TagOperation interface with detailed parameter structure and update return type handling in generator --- src/generators/clean-arch.generator.ts | 8 +++++++- src/types/openapi.types.ts | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/generators/clean-arch.generator.ts b/src/generators/clean-arch.generator.ts index e4981f5..878b37d 100644 --- a/src/generators/clean-arch.generator.ts +++ b/src/generators/clean-arch.generator.ts @@ -188,7 +188,13 @@ export function generateCleanArchitecture( Object.keys(tagsMap).forEach((tag) => { const imports: { classname: string; classFilename: string; classVarName: string }[] = []; Object.keys(schemas).forEach((s) => { - if (tagsMap[tag].some((op) => op.returnType === s || op.returnType === `Array<${s}>`)) { + const usedAsReturn = tagsMap[tag].some( + (op) => op.returnType === s || op.returnType === `Array<${s}>` + ); + const usedAsParam = tagsMap[tag].some((op) => + op.allParams.some((p) => p.dataType === s || p.dataType === `Array<${s}>`) + ); + if (usedAsReturn || usedAsParam) { imports.push({ classname: s, classFilename: toCamelCase(s), diff --git a/src/types/openapi.types.ts b/src/types/openapi.types.ts index 2759cd1..1ff7a85 100644 --- a/src/types/openapi.types.ts +++ b/src/types/openapi.types.ts @@ -65,13 +65,21 @@ export interface OpenApiOperation { * Operación normalizada y lista para ser consumida por los templates Mustache. * Cada instancia representa un endpoint agrupado bajo un tag del API. */ +export interface TagOperationParam { + paramName: string; + dataType: string; + description: string; + required: boolean; + '-last': boolean; +} + export interface TagOperation { nickname: string; summary: string; notes: string; httpMethod: string; path: string; - allParams: unknown[]; + allParams: TagOperationParam[]; hasQueryParams: boolean; queryParams: unknown[]; hasBodyParam: boolean;