Skip to content

Commit 061d1f3

Browse files
author
Дмитрий Лось
committed
fix: --extract-request-params behavior depends on presence of query params
1 parent c4820ad commit 061d1f3

File tree

5 files changed

+4919
-1062
lines changed

5 files changed

+4919
-1062
lines changed

src/schema-routes/schema-routes.ts

+14-18
Original file line numberDiff line numberDiff line change
@@ -614,13 +614,12 @@ export class SchemaRoutes {
614614
};
615615

616616
createRequestParamsSchema = ({
617-
queryParams,
618617
queryObjectSchema,
619618
pathArgsSchemas,
620619
extractRequestParams,
621620
routeName,
622621
}) => {
623-
if (!queryParams || !queryParams.length) return null;
622+
if (!extractRequestParams) return null
624623

625624
const pathParams = pathArgsSchemas.reduce((acc, pathArgSchema) => {
626625
if (pathArgSchema.name) {
@@ -656,26 +655,24 @@ export class SchemaRoutes {
656655
},
657656
};
658657

658+
if (!Object.keys(schema.properties).length) return null;
659+
659660
const fixedSchema = this.config.hooks.onCreateRequestParams(schema);
660661

661662
if (fixedSchema) return fixedSchema;
662663

663-
if (extractRequestParams) {
664-
const generatedTypeName = this.schemaUtils.resolveTypeName(
665-
routeName.usage,
666-
{
667-
suffixes: this.config.extractingOptions.requestParamsSuffix,
668-
resolver: this.config.extractingOptions.requestParamsNameResolver,
669-
},
670-
);
671-
672-
return this.schemaParserFabric.createParsedComponent({
673-
typeName: generatedTypeName,
674-
schema: schema,
675-
});
676-
}
664+
const generatedTypeName = this.schemaUtils.resolveTypeName(
665+
routeName.usage,
666+
{
667+
suffixes: this.config.extractingOptions.requestParamsSuffix,
668+
resolver: this.config.extractingOptions.requestParamsNameResolver,
669+
},
670+
);
677671

678-
return schema;
672+
return this.schemaParserFabric.createParsedComponent({
673+
typeName: generatedTypeName,
674+
schema: schema,
675+
});
679676
};
680677

681678
extractResponseBodyIfItNeeded = (routeInfo, responseBodyInfo, routeName) => {
@@ -908,7 +905,6 @@ export class SchemaRoutes {
908905
);
909906

910907
const requestParamsSchema = this.createRequestParamsSchema({
911-
queryParams: routeParams.query,
912908
pathArgsSchemas: routeParams.path,
913909
queryObjectSchema,
914910
extractRequestParams,

templates/default/procedure-call.ejs

+7-5
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,17 @@ const requestConfigParam = {
2020
}
2121
2222
const argToTmpl = ({ name, optional, type, defaultValue }) => `${name}${!defaultValue && optional ? '?' : ''}: ${type}${defaultValue ? ` = ${defaultValue}` : ''}`;
23-
24-
const rawWrapperArgs = config.extractRequestParams ?
23+
const requestParamsArgs = [
24+
_.join(pathParamsNames, ", "),
25+
query != null ? `...${queryName}` : ''
26+
].filter(Boolean).join(', ')
27+
const rawWrapperArgs = requestParams ?
2528
_.compact([
26-
requestParams && {
27-
name: pathParams.length ? `{ ${_.join(pathParamsNames, ", ")}, ...${queryName} }` : queryName,
29+
{
30+
name: `{ ${requestParamsArgs} }`,
2831
optional: false,
2932
type: getInlineParseContent(requestParams),
3033
},
31-
...(!requestParams ? pathParams : []),
3234
payload,
3335
requestConfigParam,
3436
]) :

templates/modular/procedure-call.ejs

+7-5
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,17 @@ const requestConfigParam = {
2020
}
2121
2222
const argToTmpl = ({ name, optional, type, defaultValue }) => `${name}${!defaultValue && optional ? '?' : ''}: ${type}${defaultValue ? ` = ${defaultValue}` : ''}`;
23-
24-
const rawWrapperArgs = config.extractRequestParams ?
23+
const requestParamsArgs = [
24+
_.join(pathParamsNames, ", "),
25+
query != null ? `...${queryName}` : ''
26+
].filter(Boolean).join(', ')
27+
const rawWrapperArgs = requestParams ?
2528
_.compact([
26-
requestParams && {
27-
name: pathParams.length ? `{ ${_.join(pathParamsNames, ", ")}, ...${queryName} }` : queryName,
29+
{
30+
name: `{ ${requestParamsArgs} }`,
2831
optional: false,
2932
type: getInlineParseContent(requestParams),
3033
},
31-
...(!requestParams ? pathParams : []),
3234
payload,
3335
requestConfigParam,
3436
]) :

0 commit comments

Comments
 (0)