9
9
GeneratorMutator ,
10
10
GeneratorOptions ,
11
11
GeneratorVerbOptions ,
12
- getFileInfo ,
13
12
getNumberWord ,
14
13
getRefInfo ,
15
14
isBoolean ,
@@ -454,7 +453,7 @@ export const parseZodValidationSchemaDefinition = (
454
453
input : ZodValidationSchemaDefinition ,
455
454
context : ContextSpecs ,
456
455
coerceTypes : boolean | ZodCoerceType [ ] = false ,
457
- preprocessResponse ?: GeneratorMutator ,
456
+ preprocess ?: GeneratorMutator ,
458
457
) : { zod : string ; consts : string } => {
459
458
if ( ! input . functions . length ) {
460
459
return { zod : '' , consts : '' } ;
@@ -592,8 +591,8 @@ ${Object.entries(args)
592
591
consts += input . consts . join ( '\n' ) ;
593
592
594
593
const schema = input . functions . map ( parseProperty ) . join ( '' ) ;
595
- const value = preprocessResponse
596
- ? `.preprocess(${ preprocessResponse . name } , ${
594
+ const value = preprocess
595
+ ? `.preprocess(${ preprocess . name } , ${
597
596
schema . startsWith ( '.' ) ? 'zod' : ''
598
597
} ${ schema } )`
599
598
: schema ;
@@ -946,10 +945,21 @@ const generateZodRoute = async (
946
945
} ) ,
947
946
) ;
948
947
948
+ const preprocessParams = override . zod . preprocess ?. param
949
+ ? await generateMutator ( {
950
+ output,
951
+ mutator : override . zod . preprocess . response ,
952
+ name : `${ operationName } PreprocessParams` ,
953
+ workspace : context . workspace ,
954
+ tsconfig : context . output . tsconfig ,
955
+ } )
956
+ : undefined ;
957
+
949
958
const inputParams = parseZodValidationSchemaDefinition (
950
959
parsedParameters . params ,
951
960
context ,
952
961
override . zod . coerce . param ,
962
+ preprocessParams ,
953
963
) ;
954
964
955
965
if ( override . coerceTypes ) {
@@ -958,21 +968,55 @@ const generateZodRoute = async (
958
968
) ;
959
969
}
960
970
971
+ const preprocessQueryParams = override . zod . preprocess ?. query
972
+ ? await generateMutator ( {
973
+ output,
974
+ mutator : override . zod . preprocess . response ,
975
+ name : `${ operationName } PreprocessQueryParams` ,
976
+ workspace : context . workspace ,
977
+ tsconfig : context . output . tsconfig ,
978
+ } )
979
+ : undefined ;
980
+
961
981
const inputQueryParams = parseZodValidationSchemaDefinition (
962
982
parsedParameters . queryParams ,
963
983
context ,
964
984
override . zod . coerce . query ?? override . coerceTypes ,
985
+ preprocessQueryParams ,
965
986
) ;
987
+
988
+ const preprocessHeader = override . zod . preprocess ?. header
989
+ ? await generateMutator ( {
990
+ output,
991
+ mutator : override . zod . preprocess . response ,
992
+ name : `${ operationName } PreprocessHeader` ,
993
+ workspace : context . workspace ,
994
+ tsconfig : context . output . tsconfig ,
995
+ } )
996
+ : undefined ;
997
+
966
998
const inputHeaders = parseZodValidationSchemaDefinition (
967
999
parsedParameters . headers ,
968
1000
context ,
969
1001
override . zod . coerce . header ,
1002
+ preprocessHeader ,
970
1003
) ;
971
1004
1005
+ const preprocessBody = override . zod . preprocess ?. body
1006
+ ? await generateMutator ( {
1007
+ output,
1008
+ mutator : override . zod . preprocess . response ,
1009
+ name : `${ operationName } PreprocessBody` ,
1010
+ workspace : context . workspace ,
1011
+ tsconfig : context . output . tsconfig ,
1012
+ } )
1013
+ : undefined ;
1014
+
972
1015
const inputBody = parseZodValidationSchemaDefinition (
973
1016
parsedBody . input ,
974
1017
context ,
975
1018
override . zod . coerce . body ,
1019
+ preprocessBody ,
976
1020
) ;
977
1021
978
1022
const preprocessResponse = override . zod . preprocess ?. response
0 commit comments