Skip to content

Commit cba318e

Browse files
committed
Fix unused or empty destructured variables
1 parent 8cc3c10 commit cba318e

File tree

4 files changed

+30
-3
lines changed

4 files changed

+30
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@povio/openapi-codegen-cli",
3-
"version": "0.13.0",
3+
"version": "0.13.1",
44
"main": "./dist/index.js",
55
"bin": {
66
"openapi-codegen": "./dist/sh.js"

src/generators/templates/partials/query-use-mutation.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export const {{queryName endpoint mutation=true}} = (options?: AppMutationOption
2929
onSuccess: async (resData, variables, context) => {
3030
{{! Mutation effects }}
3131
{{#if updateQueryEndpoints}}
32-
const { {{endpointArgs endpoint includeOnlyRequiredParams=true excludeBodyParam=true}} } = variables;
32+
{{#if destructuredVariables}}const { {{commaSeparated destructuredVariables }} } = variables;{{/if}}
3333
const updateKeys = [{{#each updateQueryEndpoints as | endpoint |}}keys.{{endpointName endpoint}}({{{endpointArgs endpoint includeOnlyRequiredParams=true}}}), {{/each}}];
3434
{{/if}}
3535
await runMutationEffects(resData, options{{#if updateQueryEndpoints}}, updateKeys{{/if}});

src/generators/utils/hbs/hbs.partials.utils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
mapEndpointParamsToFunctionParams,
1515
} from "../generate/generate.endpoints.utils";
1616
import { getHbsPartialTemplateDelegate } from "../hbs/hbs-template.utils";
17-
import { isInfiniteQuery, isMutation, isQuery } from "../query.utils";
17+
import { getDestructuredVariables, isInfiniteQuery, isMutation, isQuery } from "../query.utils";
1818
import { isNamedZodSchema } from "../zod-schema.utils";
1919

2020
enum PartialsHelpers {
@@ -153,6 +153,7 @@ function registerGenerateMutationHelper(resolver: SchemaResolver) {
153153
}
154154

155155
const updateQueryEndpoints = getUpdateQueryEndpoints(endpoint, queryEndpoints);
156+
const destructuredVariables = getDestructuredVariables(resolver, endpoint, updateQueryEndpoints);
156157
const hasAclCheck = resolver.options.checkAcl && endpoint.acl;
157158

158159
return getHbsPartialTemplateDelegate("query-use-mutation")({
@@ -166,6 +167,7 @@ function registerGenerateMutationHelper(resolver: SchemaResolver) {
166167
hasMutationEffects: resolver.options.mutationEffects,
167168
mutationEffectsType: MUTATION_EFFECTS.optionsType,
168169
updateQueryEndpoints,
170+
destructuredVariables,
169171
hasAclCheck,
170172
aclCheckHook: ACL_CHECK_HOOK,
171173
});

src/generators/utils/query.utils.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { INFINITE_QUERY_PARAMS } from "../const/queries.const";
2+
import { SchemaResolver } from "../core/SchemaResolver.class";
23
import { Endpoint } from "../types/endpoint";
4+
import { mapEndpointParamsToFunctionParams } from "./generate/generate.endpoints.utils";
35

46
export const isQuery = (endpoint: Endpoint) => endpoint.method === "get";
57

@@ -10,3 +12,26 @@ export const isInfiniteQuery = (endpoint: Endpoint, infiniteQueryParams?: string
1012
(infiniteQueryParams ?? Object.values(INFINITE_QUERY_PARAMS)).every((infiniteQueryParam) =>
1113
endpoint.parameters.some((param) => param.name === infiniteQueryParam && param.type === "Query"),
1214
);
15+
16+
export const getDestructuredVariables = (
17+
resolver: SchemaResolver,
18+
endpoint: Endpoint,
19+
updateQueryEndpoints: Endpoint[],
20+
) => {
21+
const requiredUpdateQueryParams = updateQueryEndpoints.reduce(
22+
(acc, updateEndpoint) => [
23+
...acc,
24+
...mapEndpointParamsToFunctionParams(resolver, updateEndpoint, { includeOnlyRequiredParams: true }).map(
25+
(param) => param.name,
26+
),
27+
],
28+
[] as string[],
29+
);
30+
31+
return mapEndpointParamsToFunctionParams(resolver, endpoint, {
32+
includeOnlyRequiredParams: true,
33+
excludeBodyParam: true,
34+
})
35+
.filter((param) => requiredUpdateQueryParams.includes(param.name))
36+
.map((param) => param.name);
37+
};

0 commit comments

Comments
 (0)