From f5f231c1fc49bb0367e688405a5d6f978dfeeb3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20HENAFF?= Date: Sun, 15 Mar 2026 11:09:20 +0100 Subject: [PATCH 1/3] [typescript-koa] add router options support Add router options support to allow options like "exclusive" --- .../server/typescript-koa/typescript-koa-router-builder.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts b/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts index f8ead11e..c4a3790d 100644 --- a/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts +++ b/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts @@ -62,7 +62,7 @@ export class KoaRouterBuilder extends AbstractRouterBuilder { .add("KoaRuntimeError", "RequestInputType") this.imports.from("koa").addType("Next") - this.imports.from("@koa/router").addType("RouterContext").all("KoaRouter") + this.imports.from("@koa/router").addType("RouterContext").addType("RouterOptions").all("KoaRouter") const schemaBuilderType = this.schemaBuilder.type @@ -258,8 +258,8 @@ ${this.operationTypes.flatMap((it) => it.statements).join("\n\n")} ${this.implementationExport(implementationExportName)} -export function ${createRouterExportName}(implementation: ${implementationExportName}): KoaRouter { - const router = new KoaRouter() +export function ${createRouterExportName}(implementation: ${implementationExportName}, options: RouterOptions): KoaRouter { + const router = new KoaRouter(options) ${routerStatements.join("\n\n")} From 182e5424a7eecc7b066dac4572d9ad1764851619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20HENAFF?= Date: Sun, 15 Mar 2026 11:10:24 +0100 Subject: [PATCH 2/3] [typescript-koa] Make RouterOptions optional in createRouterExportName --- .../server/typescript-koa/typescript-koa-router-builder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts b/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts index c4a3790d..0dafe835 100644 --- a/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts +++ b/packages/openapi-code-generator/src/typescript/server/typescript-koa/typescript-koa-router-builder.ts @@ -258,7 +258,7 @@ ${this.operationTypes.flatMap((it) => it.statements).join("\n\n")} ${this.implementationExport(implementationExportName)} -export function ${createRouterExportName}(implementation: ${implementationExportName}, options: RouterOptions): KoaRouter { +export function ${createRouterExportName}(implementation: ${implementationExportName}, options?: RouterOptions): KoaRouter { const router = new KoaRouter(options) ${routerStatements.join("\n\n")} From 42aa4990fae9f476baeb61ea3819bdb04c9a0582 Mon Sep 17 00:00:00 2001 From: jeromeh Date: Tue, 17 Mar 2026 14:29:19 +0100 Subject: [PATCH 3/3] [typescript-fetch] Fix default response signature --- .../typescript-fetch-client-builder.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/openapi-code-generator/src/typescript/client/typescript-fetch/typescript-fetch-client-builder.ts b/packages/openapi-code-generator/src/typescript/client/typescript-fetch/typescript-fetch-client-builder.ts index cd5a912b..7ed8b661 100644 --- a/packages/openapi-code-generator/src/typescript/client/typescript-fetch/typescript-fetch-client-builder.ts +++ b/packages/openapi-code-generator/src/typescript/client/typescript-fetch/typescript-fetch-client-builder.ts @@ -79,10 +79,15 @@ export class TypescriptFetchClientBuilder extends AbstractClientBuilder { const query = builder.query() const headers = builder.headers({nullContentTypeValue: "undefined"}) - const returnType = builder - .returnType() - .map(({statusType, responseType}) => { - return `Res<${statusType},${responseType}>` + const builderReturnType = builder.returnType() + const nonDefaultStatusTypes = builderReturnType + .filter(({isDefault}) => !isDefault) + .map(({statusType}) => statusType) + const returnType = builderReturnType + .map(({statusType, responseType, isDefault}) => { + return isDefault ? + `Res,${responseType}>` : + `Res<${statusType},${responseType}>` }) .join(" | ")