@@ -16,6 +16,7 @@ import { createNamedImport } from "../core/createNamedImport";
1616import { getFetcher } from "../templates/fetcher" ;
1717import { getContext } from "../templates/context" ;
1818import { getUtils } from "../templates/utils" ;
19+ import { createZodNamespaceImport } from "../utils/zodHelper" ;
1920import { createNamespaceImport } from "../core/createNamespaceImport" ;
2021import { camelizedPathParams } from "../core/camelizedPathParams" ;
2122
@@ -35,6 +36,12 @@ export type Config = ConfigBase & {
3536 * This will mark the header as optional in the component API
3637 */
3738 injectedHeaders ?: string [ ] ;
39+
40+ zodFiles ?: {
41+ schemas : string ;
42+ inferredTypes : string ;
43+ integrationTests : string ;
44+ }
3845} ;
3946
4047export const generateReactQueryComponents = async (
@@ -58,9 +65,9 @@ export const generateReactQueryComponents = async (
5865 return (
5966 printer . printNode ( ts . EmitHint . Unspecified , node , sourceFile ) +
6067 ( ts . isJSDoc ( node ) ||
61- ( ts . isImportDeclaration ( node ) &&
62- nodes [ i + 1 ] &&
63- ts . isImportDeclaration ( nodes [ i + 1 ] ) )
68+ ( ts . isImportDeclaration ( node ) &&
69+ nodes [ i + 1 ] &&
70+ ts . isImportDeclaration ( nodes [ i + 1 ] ) )
6471 ? ""
6572 : "\n" )
6673 ) ;
@@ -195,28 +202,29 @@ export const generateReactQueryComponents = async (
195202 url : route ,
196203 verb,
197204 name : operationFetcherFnName ,
205+ printNodes,
198206 } ) ,
199207 ...( component === "useQuery"
200208 ? createQueryHook ( {
201- operationFetcherFnName,
202- operation,
203- dataType,
204- errorType,
205- variablesType,
206- contextHookName,
207- name : `use${ c . pascal ( operationId ) } ` ,
208- operationId,
209- url : route ,
210- } )
209+ operationFetcherFnName,
210+ operation,
211+ dataType,
212+ errorType,
213+ variablesType,
214+ contextHookName,
215+ name : `use${ c . pascal ( operationId ) } ` ,
216+ operationId,
217+ url : route ,
218+ } )
211219 : createMutationHook ( {
212- operationFetcherFnName,
213- operation,
214- dataType,
215- errorType,
216- variablesType,
217- contextHookName,
218- name : `use${ c . pascal ( operationId ) } ` ,
219- } ) )
220+ operationFetcherFnName,
221+ operation,
222+ dataType,
223+ errorType,
224+ variablesType,
225+ contextHookName,
226+ name : `use${ c . pascal ( operationId ) } ` ,
227+ } ) )
220228 ) ;
221229 } ) ;
222230 }
@@ -232,25 +240,25 @@ export const generateReactQueryComponents = async (
232240 keyManagerItems . length > 0
233241 ? f . createUnionTypeNode ( keyManagerItems )
234242 : f . createTypeLiteralNode ( [
235- f . createPropertySignature (
236- undefined ,
237- f . createIdentifier ( "path" ) ,
238- undefined ,
239- f . createKeywordTypeNode ( ts . SyntaxKind . StringKeyword )
240- ) ,
241- f . createPropertySignature (
242- undefined ,
243- f . createIdentifier ( "operationId" ) ,
244- undefined ,
245- f . createKeywordTypeNode ( ts . SyntaxKind . NeverKeyword )
246- ) ,
247- f . createPropertySignature (
248- undefined ,
249- f . createIdentifier ( "variables" ) ,
250- undefined ,
251- f . createKeywordTypeNode ( ts . SyntaxKind . UnknownKeyword )
252- ) ,
253- ] )
243+ f . createPropertySignature (
244+ undefined ,
245+ f . createIdentifier ( "path" ) ,
246+ undefined ,
247+ f . createKeywordTypeNode ( ts . SyntaxKind . StringKeyword )
248+ ) ,
249+ f . createPropertySignature (
250+ undefined ,
251+ f . createIdentifier ( "operationId" ) ,
252+ undefined ,
253+ f . createKeywordTypeNode ( ts . SyntaxKind . NeverKeyword )
254+ ) ,
255+ f . createPropertySignature (
256+ undefined ,
257+ f . createIdentifier ( "variables" ) ,
258+ undefined ,
259+ f . createKeywordTypeNode ( ts . SyntaxKind . UnknownKeyword )
260+ ) ,
261+ ] )
254262 ) ;
255263
256264 const { nodes : usedImportsNodes , keys : usedImportsKeys } = getUsedImports (
@@ -276,6 +284,7 @@ export const generateReactQueryComponents = async (
276284 ) ,
277285 createNamespaceImport ( "Fetcher" , `./${ fetcherFilename } ` ) ,
278286 createNamedImport ( fetcherFn , `./${ fetcherFilename } ` ) ,
287+ ...createZodNamespaceImport ( config . zodFiles ?. schemas ) ,
279288 ...usedImportsNodes ,
280289 ...nodes ,
281290 queryKeyManager ,
0 commit comments