Skip to content

Commit 241c6c9

Browse files
Kasim Ahmicmarkerikson
authored andcommitted
Expose HTTPResolverOptions in GenerationOptions
1 parent ac4d85e commit 241c6c9

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

packages/rtk-query-codegen-openapi/src/generate.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,10 @@ export async function generateApi(
9292
flattenArg = false,
9393
useEnumType = false,
9494
mergeReadWriteOnly = false,
95+
httpResolverOptions,
9596
}: GenerationOptions
9697
) {
97-
const v3Doc = await getV3Doc(spec);
98+
const v3Doc = await getV3Doc(spec, httpResolverOptions);
9899

99100
const apiGen = new ApiGenerator(v3Doc, {
100101
unionUndefined,

packages/rtk-query-codegen-openapi/src/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type SwaggerParser from '@apidevtools/swagger-parser';
12
import type { OpenAPIV3 } from 'openapi-types';
23

34
export type OperationDefinition = {
@@ -77,6 +78,10 @@ export interface CommonOptions {
7778
* `true` will not generate separate types for read-only and write-only properties.
7879
*/
7980
mergeReadWriteOnly?: boolean;
81+
/**
82+
* HTTPResolverOptions object that is passed to the SwaggerParser bundle function.
83+
*/
84+
httpResolverOptions?: SwaggerParser.HTTPResolverOptions;
8085
}
8186

8287
export type TextMatcher = string | RegExp | (string | RegExp)[];

packages/rtk-query-codegen-openapi/src/utils/getV3Doc.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,18 @@ import type { OpenAPIV3 } from 'openapi-types';
33
// @ts-ignore
44
import converter from 'swagger2openapi';
55

6-
export async function getV3Doc(spec: string): Promise<OpenAPIV3.Document> {
7-
const doc = await SwaggerParser.bundle(spec);
6+
export async function getV3Doc(
7+
spec: string,
8+
httpResolverOptions?: SwaggerParser.HTTPResolverOptions
9+
): Promise<OpenAPIV3.Document> {
10+
const doc = await SwaggerParser.bundle(spec, {
11+
resolve: {
12+
http: httpResolverOptions,
13+
},
14+
});
15+
816
const isOpenApiV3 = 'openapi' in doc && doc.openapi.startsWith('3');
17+
918
if (isOpenApiV3) {
1019
return doc as OpenAPIV3.Document;
1120
} else {

0 commit comments

Comments
 (0)