Skip to content

Commit 93c80e0

Browse files
committed
feat(code-gen): add hook name to required variables check in the react-query generator
1 parent 4b41fa4 commit 93c80e0

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

packages/code-gen/src/api-client/react-query.js

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,11 @@ export function reactQueryGenerateFunction(
461461
fileWrite(
462462
file,
463463
`({ signal }) => {
464-
${reactQueryCheckIfRequiredVariablesArePresent(generateContext, route)}
464+
${reactQueryCheckIfRequiredVariablesArePresent(
465+
generateContext,
466+
hookName,
467+
route,
468+
)}
465469
466470
opts.requestConfig ??= {};
467471
opts.requestConfig.signal = signal;
@@ -522,7 +526,11 @@ ${hookName}.queryKey = (
522526
return queryClient.fetchQuery(
523527
${hookName}.queryKey(${routeHasMandatoryInputs ? "opts" : ""}),
524528
() => {
525-
${reactQueryCheckIfRequiredVariablesArePresent(generateContext, route)}
529+
${reactQueryCheckIfRequiredVariablesArePresent(
530+
generateContext,
531+
`${hookName}.fetchQuery`,
532+
route,
533+
)}
526534
return ${apiName}(
527535
${apiInstanceParameter}
528536
${parameterListWithExtraction({
@@ -548,7 +556,11 @@ ${hookName}.queryKey = (
548556
return queryClient.prefetchQuery(
549557
${hookName}.queryKey(${routeHasMandatoryInputs ? "opts" : ""}),
550558
() => {
551-
${reactQueryCheckIfRequiredVariablesArePresent(generateContext, route)}
559+
${reactQueryCheckIfRequiredVariablesArePresent(
560+
generateContext,
561+
`${hookName}.prefetchQuery`,
562+
route,
563+
)}
552564
553565
return ${apiName}(
554566
${apiInstanceParameter}
@@ -596,7 +608,11 @@ ${hookName}.setQueryData = (
596608
}
597609
data: ${contextNames.responseTypeName ?? "unknown"},
598610
) => {
599-
${reactQueryCheckIfRequiredVariablesArePresent(generateContext, route)}
611+
${reactQueryCheckIfRequiredVariablesArePresent(
612+
generateContext,
613+
`${hookName}.setQueryData`,
614+
route,
615+
)}
600616
601617
return queryClient.setQueryData(${hookName}.queryKey(${
602618
routeHasMandatoryInputs ? "opts" : ""
@@ -714,17 +730,22 @@ function reactQueryWriteIsEnabled(generateContext, file, route) {
714730
* Write out the dependencies for this query to be enabled
715731
*
716732
* @param {import("../generate.js").GenerateContext} generateContext
733+
* @param {string} hookName
717734
* @param {import("../../types/advanced-types").NamedType<import("../generated/common/types").StructureRouteDefinition>} route
718735
* @returns {string}
719736
*/
720-
function reactQueryCheckIfRequiredVariablesArePresent(generateContext, route) {
737+
function reactQueryCheckIfRequiredVariablesArePresent(
738+
generateContext,
739+
hookName,
740+
route,
741+
) {
721742
const requiredFields = reactQueryGetRequiredFields(generateContext, route);
722743

723744
if (requiredFields.length > 0) {
724745
return `if (${requiredFields
725746
.map((it) => `${it} === undefined || ${it} === null`)
726747
.join("||\n")}) {
727-
throw new Error("Not all required variables where provided. This happens when you manually set 'queryOptions.enabled' or when you use 'refetch'. Both skip the generated 'queryOptions.enabled'. Make sure that all necessary arguments are set.");
748+
throw new Error("Not all required variables where provided to '${hookName}'. This happens when you manually set 'queryOptions.enabled' or when you use 'refetch'. Both skip the generated 'queryOptions.enabled'. Make sure that all necessary arguments are set.");
728749
}
729750
`;
730751
}

0 commit comments

Comments
 (0)