From 1ad90c5b9e3bb662e064a7606de3055eaafb4df3 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 30 May 2025 10:06:32 +0200 Subject: [PATCH] Add useUnknown config option to openapi codegen See https://github.com/oazapfts/oazapfts/pull/707 --- .../rtk-query-codegen-openapi/package.json | 2 +- .../rtk-query-codegen-openapi/src/generate.ts | 2 ++ .../rtk-query-codegen-openapi/src/types.ts | 5 ++++ yarn.lock | 25 ++++++++++++------- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/rtk-query-codegen-openapi/package.json b/packages/rtk-query-codegen-openapi/package.json index 1213e5766a..cf64bf024a 100644 --- a/packages/rtk-query-codegen-openapi/package.json +++ b/packages/rtk-query-codegen-openapi/package.json @@ -77,7 +77,7 @@ "@apidevtools/swagger-parser": "^10.1.1", "commander": "^6.2.0", "lodash.camelcase": "^4.3.0", - "oazapfts": "^6.1.0", + "oazapfts": "^6.3.0", "prettier": "^3.2.5", "semver": "^7.3.5", "swagger2openapi": "^7.0.4", diff --git a/packages/rtk-query-codegen-openapi/src/generate.ts b/packages/rtk-query-codegen-openapi/src/generate.ts index d128d100b4..2acd049ad6 100644 --- a/packages/rtk-query-codegen-openapi/src/generate.ts +++ b/packages/rtk-query-codegen-openapi/src/generate.ts @@ -117,6 +117,7 @@ export async function generateApi( useEnumType = false, mergeReadWriteOnly = false, httpResolverOptions, + useUnknown = false, }: GenerationOptions ) { const v3Doc = (v3DocCache[spec] ??= await getV3Doc(spec, httpResolverOptions)); @@ -125,6 +126,7 @@ export async function generateApi( unionUndefined, useEnumType, mergeReadWriteOnly, + useUnknown, }); // temporary workaround for https://github.com/oazapfts/oazapfts/issues/491 diff --git a/packages/rtk-query-codegen-openapi/src/types.ts b/packages/rtk-query-codegen-openapi/src/types.ts index 437e058087..0f9f2f96e9 100644 --- a/packages/rtk-query-codegen-openapi/src/types.ts +++ b/packages/rtk-query-codegen-openapi/src/types.ts @@ -111,6 +111,11 @@ export interface CommonOptions { * resolution mechanism will be used. */ prettierConfigFile?: string; + /** + * default to false + * If set to `true`, `unknown` will be used instead of `any` for empty schemas. + */ + useUnknown?: boolean; } export type TextMatcher = string | RegExp | (string | RegExp)[]; diff --git a/yarn.lock b/yarn.lock index e92552b700..9200516b2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8120,7 +8120,7 @@ __metadata: lodash.camelcase: "npm:^4.3.0" msw: "npm:^2.1.5" node-fetch: "npm:^3.3.2" - oazapfts: "npm:^6.1.0" + oazapfts: "npm:^6.3.0" openapi-types: "npm:^9.1.0" prettier: "npm:^3.2.5" pretty-quick: "npm:^4.0.0" @@ -24075,21 +24075,21 @@ __metadata: languageName: node linkType: hard -"oazapfts@npm:^6.1.0": - version: 6.2.2 - resolution: "oazapfts@npm:6.2.2" +"oazapfts@npm:^6.3.0": + version: 6.3.0 + resolution: "oazapfts@npm:6.3.0" dependencies: "@apidevtools/swagger-parser": "npm:^10.1.1" lodash: "npm:^4.17.21" minimist: "npm:^1.2.8" swagger2openapi: "npm:^7.0.8" - tapable: "npm:^2.2.1" - typescript: "npm:^5.8.2" + tapable: "npm:^2.2.2" + typescript: "npm:^5.8.3" peerDependencies: "@oazapfts/runtime": "*" bin: oazapfts: cli.js - checksum: 10/20402b38e657679a04a122217fe8728318e967f7684e9f968cf4c690e094d0e3c17ac248448bb16b4111b30db4f936d7db52ad115c06a6a228b68ef46c82ccfe + checksum: 10/a8f0d04123aca7578093eac91e7206936c2a1d0515eda34bde70b172065f36af6bbda3d15a38c8bcf687ffd2accf0a88117e115c455af2be3f4c4d5fa6c70c94 languageName: node linkType: hard @@ -30897,6 +30897,13 @@ __metadata: languageName: node linkType: hard +"tapable@npm:^2.2.2": + version: 2.2.2 + resolution: "tapable@npm:2.2.2" + checksum: 10/065a0dc44aba1b32020faa1c27c719e8f76e5345347515d8494bf158524f36e9f22ad9eaa5b5494f9d5d67bf0640afdd5698505948c46d720b6b7e69d19349a6 + languageName: node + linkType: hard + "tar@npm:^7.4.3": version: 7.4.3 resolution: "tar@npm:7.4.3" @@ -31761,7 +31768,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.8.2": +"typescript@npm:^5.8.2, typescript@npm:^5.8.3": version: 5.8.3 resolution: "typescript@npm:5.8.3" bin: @@ -31801,7 +31808,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.8.2#optional!builtin": +"typescript@patch:typescript@npm%3A^5.8.2#optional!builtin, typescript@patch:typescript@npm%3A^5.8.3#optional!builtin": version: 5.8.3 resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=8c6c40" bin: