@@ -2,6 +2,7 @@ import type { OpenAPILatest } from '../types/openapi';
22import type { OpenApiLatest_Schema } from './helpers' ;
33import type { Named } from './Named' ;
44import { isArray , isBoolean , isNever , isNumber , isString , isUndefined } from '../utils/type-is' ;
5+ import { ZOD_IMPORT_NAME } from './const' ;
56import { isRefSchema , requiredTypeStringify , toZodName , withGroup } from './helpers' ;
67import { JsDoc } from './JsDoc' ;
78
@@ -53,7 +54,7 @@ export class Parser {
5354
5455 if ( isRefSchema ( schema ) ) {
5556 const typeName = this . named . getRefType ( schema . $ref ) ;
56- const zodName = typeName ? this . #prepareVarName( schema . $ref ) : 'z .unknown()' ;
57+ const zodName = typeName ? this . #prepareVarName( schema . $ref ) : ` ${ ZOD_IMPORT_NAME } .unknown()` ;
5758
5859 if ( ! typeName ) {
5960 throw new Error ( `未找到 refId: ${ schema . $ref } 的类型` ) ;
@@ -86,7 +87,7 @@ export class Parser {
8687 group . map ( g => g . zod ) ,
8788 {
8889 sep : ',' ,
89- wrap : [ 'z .intersection(' , ')' ] ,
90+ wrap : [ ` ${ ZOD_IMPORT_NAME } .intersection(` , ')' ] ,
9091 } ,
9192 ) ,
9293 } ;
@@ -108,7 +109,7 @@ export class Parser {
108109 zod : withGroup (
109110 group . map ( g => g . zod ) ,
110111 {
111- wrap : [ 'z .union([' , '])' ] ,
112+ wrap : [ ` ${ ZOD_IMPORT_NAME } .union([` , '])' ] ,
112113 } ,
113114 ) ,
114115 } ;
@@ -128,7 +129,7 @@ export class Parser {
128129 group . map ( g => g . zod ) ,
129130 {
130131 sep : ',' ,
131- wrap : [ 'z .union([' , '])' ] ,
132+ wrap : [ ` ${ ZOD_IMPORT_NAME } .union([` , '])' ] ,
132133 } ,
133134 ) ,
134135 } ;
@@ -165,7 +166,7 @@ export class Parser {
165166 zod : withGroup (
166167 group . map ( g => g . zod ) ,
167168 {
168- wrap : [ 'z .union([' , '])' ] ,
169+ wrap : [ ` ${ ZOD_IMPORT_NAME } .union([` , '])' ] ,
169170 } ,
170171 ) ,
171172 } ;
@@ -201,15 +202,15 @@ export class Parser {
201202 zod : enumValues . length > 0
202203 ? withGroup (
203204 enumValues . map ( e => ( isString ( e ) )
204- ? `z .literal(${ JSON . stringify ( e ) } )`
205+ ? `${ ZOD_IMPORT_NAME } .literal(${ JSON . stringify ( e ) } )`
205206 : this . #prepareVarName( e . $ref ) ) ,
206207 {
207- wrap : [ 'z .union([' , '])' ] ,
208+ wrap : [ ` ${ ZOD_IMPORT_NAME } .union([` , '])' ] ,
208209 } ,
209210 )
210211 : isBlob
211- ? 'z .instanceof(Blob)'
212- : 'z .string()' ,
212+ ? ` ${ ZOD_IMPORT_NAME } .instanceof(Blob)`
213+ : ` ${ ZOD_IMPORT_NAME } .string()` ,
213214 } ;
214215 }
215216
@@ -242,13 +243,13 @@ export class Parser {
242243 zod : enumValues . length > 0
243244 ? withGroup (
244245 enumValues . map ( e => ( isNumber ( e )
245- ? `z .literal(${ e } )`
246+ ? `${ ZOD_IMPORT_NAME } .literal(${ e } )`
246247 : this . #prepareVarName( e . $ref ) ) ) ,
247248 {
248- wrap : [ 'z .union([' , '])' ] ,
249+ wrap : [ ` ${ ZOD_IMPORT_NAME } .union([` , '])' ] ,
249250 } ,
250251 )
251- : 'z .number()' ,
252+ : ` ${ ZOD_IMPORT_NAME } .number()` ,
252253 } ;
253254 }
254255
@@ -273,14 +274,14 @@ export class Parser {
273274 zod : enumValues . length > 0
274275 ? withGroup (
275276 enumValues . map ( e => ( isBoolean ( e )
276- ? `z .literal(${ e } )`
277+ ? `${ ZOD_IMPORT_NAME } .literal(${ e } )`
277278 : this . #prepareVarName( e . $ref ) ) ) ,
278279 {
279280 sep : ',' ,
280- wrap : [ 'z .union([' , '])' ] ,
281+ wrap : [ ` ${ ZOD_IMPORT_NAME } .union([` , '])' ] ,
281282 } ,
282283 )
283- : 'z .boolean()' ,
284+ : ` ${ ZOD_IMPORT_NAME } .boolean()` ,
284285 } ;
285286 }
286287
@@ -292,7 +293,7 @@ export class Parser {
292293 required,
293294 deps : this . #depNames,
294295 type,
295- zod : 'z .null()' ,
296+ zod : ` ${ ZOD_IMPORT_NAME } .null()` ,
296297 } ;
297298 }
298299
@@ -342,7 +343,7 @@ export class Parser {
342343 required,
343344 deps : [ ] ,
344345 type : spec ?. type || 'unknown' ,
345- zod : spec ?. zod || 'z .unknown()' ,
346+ zod : spec ?. zod || ` ${ ZOD_IMPORT_NAME } .unknown()` ,
346347 } ;
347348 }
348349
@@ -360,7 +361,7 @@ export class Parser {
360361 required : false ,
361362 deps : result . deps ,
362363 type : `Array<${ result . type } >` ,
363- zod : `z .array(${ result . zod } )` ,
364+ zod : `${ ZOD_IMPORT_NAME } .array(${ result . zod } )` ,
364365 } ;
365366 }
366367
@@ -400,7 +401,7 @@ export class Parser {
400401 } ) ) ;
401402 zodList . push ( withGroup ( propZodList , {
402403 sep : '\n' ,
403- wrap : [ 'z .object({\n' , '\n})' ] ,
404+ wrap : [ ` ${ ZOD_IMPORT_NAME } .object({\n` , '\n})' ] ,
404405 always : true ,
405406 } ) ) ;
406407 }
@@ -410,14 +411,14 @@ export class Parser {
410411 const { type, zod } = Parser . #parseInner( parser , genericProps as OpenApiLatest_Schema ) ;
411412
412413 typeList . push ( `Record<string, ${ type } >` ) ;
413- zodList . push ( `z .record(z .string(), ${ zod } )` ) ;
414+ zodList . push ( `${ ZOD_IMPORT_NAME } .record(${ ZOD_IMPORT_NAME } .string(), ${ zod } )` ) ;
414415 }
415416
416417 // 无显式属性 && 无泛型属性
417418 if ( typeList . length === 0 ) {
418419 return Parser . #parseAsUnknown( schema , required , {
419420 type : 'Record<string, unknown>' ,
420- zod : 'z .record(z .string(), z .unknown())' ,
421+ zod : ` ${ ZOD_IMPORT_NAME } .record(${ ZOD_IMPORT_NAME } .string(), ${ ZOD_IMPORT_NAME } .unknown())` ,
421422 } ) ;
422423 }
423424
@@ -431,7 +432,7 @@ export class Parser {
431432 sep : '&' ,
432433 } ) ,
433434 zod : withGroup ( zodList , {
434- wrap : [ 'z .intersection(' , ')' ] ,
435+ wrap : [ ` ${ ZOD_IMPORT_NAME } .intersection(` , ')' ] ,
435436 } ) ,
436437 } ;
437438 }
@@ -444,7 +445,7 @@ export class Parser {
444445
445446 return {
446447 type : [ jsDoc . print ( ) , `${ JSON . stringify ( propName ) } ${ requiredTypeStringify ( required ) } ${ type } ;` ] . filter ( Boolean ) . join ( '\n' ) ,
447- zod : `${ JSON . stringify ( propName ) } : ${ required ? zod : `z .optional(${ zod } )` } ,` ,
448+ zod : `${ JSON . stringify ( propName ) } : ${ required ? zod : `${ ZOD_IMPORT_NAME } .optional(${ zod } )` } ,` ,
448449 } ;
449450 }
450451
@@ -454,7 +455,7 @@ export class Parser {
454455 deps : [ ] ,
455456 required : true ,
456457 type : bool ? 'any' : 'never' ,
457- zod : bool ? 'z .any()' : 'z .never()' ,
458+ zod : bool ? ` ${ ZOD_IMPORT_NAME } .any()` : ` ${ ZOD_IMPORT_NAME } .never()` ,
458459 } ;
459460 }
460461}
0 commit comments