@@ -4,27 +4,35 @@ import type * as schemas from "./schemas.js";
44import * as util from "./util.js" ;
55
66export type $ZodErrorClass = { new ( issues : errors . $ZodIssue [ ] ) : errors . $ZodError } ;
7+ type $ParseParams = { callee ?: util . AnyFunc ; Err ?: $ZodErrorClass } ;
8+
9+ function finalizeParams ( callee : util . AnyFunc , params : $ParseParams | undefined ) : $ParseParams {
10+ return params ?. Err ? { callee : params . callee ?? callee , Err : params . Err } : { callee : params ?. callee ?? callee } ;
11+ }
712
813/////////// METHODS ///////////
914export type $Parse = < T extends schemas . $ZodType > (
1015 schema : T ,
1116 value : unknown ,
1217 _ctx ?: schemas . ParseContext < errors . $ZodIssue > ,
13- _params ?: { callee ?: util . AnyFunc ; Err ?: $ZodErrorClass }
18+ _params ?: $ParseParams
1419) => core . output < T > ;
1520
16- export const _parse : ( _Err : $ZodErrorClass ) => $Parse = ( _Err ) => ( schema , value , _ctx , _params ) => {
17- const ctx : schemas . ParseContextInternal = _ctx ? { ..._ctx , async : false } : { async : false } ;
18- const result = schema . _zod . run ( { value, issues : [ ] } , ctx ) ;
19- if ( result instanceof Promise ) {
20- throw new core . $ZodAsyncError ( ) ;
21- }
22- if ( result . issues . length ) {
23- const e = new ( _params ?. Err ?? _Err ) ( result . issues . map ( ( iss ) => util . finalizeIssue ( iss , ctx , core . config ( ) ) ) ) ;
24- util . captureStackTrace ( e , _params ?. callee ) ;
25- throw e ;
26- }
27- return result . value as core . output < typeof schema > ;
21+ export const _parse : ( _Err : $ZodErrorClass ) => $Parse = ( _Err ) => {
22+ const fn : $Parse = ( schema , value , _ctx , _params ) => {
23+ const ctx : schemas . ParseContextInternal = _ctx ? { ..._ctx , async : false } : { async : false } ;
24+ const result = schema . _zod . run ( { value, issues : [ ] } , ctx ) ;
25+ if ( result instanceof Promise ) {
26+ throw new core . $ZodAsyncError ( ) ;
27+ }
28+ if ( result . issues . length ) {
29+ const e = new ( _params ?. Err ?? _Err ) ( result . issues . map ( ( iss ) => util . finalizeIssue ( iss , ctx , core . config ( ) ) ) ) ;
30+ util . captureStackTrace ( e , _params ?. callee ?? fn ) ;
31+ throw e ;
32+ }
33+ return result . value as core . output < typeof schema > ;
34+ } ;
35+ return fn ;
2836} ;
2937
3038export const parse : $Parse = /* @__PURE__ */ _parse ( errors . $ZodRealError ) ;
@@ -33,19 +41,22 @@ export type $ParseAsync = <T extends schemas.$ZodType>(
3341 schema : T ,
3442 value : unknown ,
3543 _ctx ?: schemas . ParseContext < errors . $ZodIssue > ,
36- _params ?: { callee ?: util . AnyFunc ; Err ?: $ZodErrorClass }
44+ _params ?: $ParseParams
3745) => Promise < core . output < T > > ;
3846
39- export const _parseAsync : ( _Err : $ZodErrorClass ) => $ParseAsync = ( _Err ) => async ( schema , value , _ctx , params ) => {
40- const ctx : schemas . ParseContextInternal = _ctx ? { ..._ctx , async : true } : { async : true } ;
41- let result = schema . _zod . run ( { value, issues : [ ] } , ctx ) ;
42- if ( result instanceof Promise ) result = await result ;
43- if ( result . issues . length ) {
44- const e = new ( params ?. Err ?? _Err ) ( result . issues . map ( ( iss ) => util . finalizeIssue ( iss , ctx , core . config ( ) ) ) ) ;
45- util . captureStackTrace ( e , params ?. callee ) ;
46- throw e ;
47- }
48- return result . value as core . output < typeof schema > ;
47+ export const _parseAsync : ( _Err : $ZodErrorClass ) => $ParseAsync = ( _Err ) => {
48+ const fn : $ParseAsync = async ( schema , value , _ctx , params ) => {
49+ const ctx : schemas . ParseContextInternal = _ctx ? { ..._ctx , async : true } : { async : true } ;
50+ let result = schema . _zod . run ( { value, issues : [ ] } , ctx ) ;
51+ if ( result instanceof Promise ) result = await result ;
52+ if ( result . issues . length ) {
53+ const e = new ( params ?. Err ?? _Err ) ( result . issues . map ( ( iss ) => util . finalizeIssue ( iss , ctx , core . config ( ) ) ) ) ;
54+ util . captureStackTrace ( e , params ?. callee ?? fn ) ;
55+ throw e ;
56+ }
57+ return result . value as core . output < typeof schema > ;
58+ } ;
59+ return fn ;
4960} ;
5061
5162export const parseAsync : $ParseAsync = /* @__PURE__ */ _parseAsync ( errors . $ZodRealError ) ;
@@ -97,49 +108,69 @@ export const safeParseAsync: $SafeParseAsync = /* @__PURE__*/ _safeParseAsync(er
97108export type $Encode = < T extends schemas . $ZodType > (
98109 schema : T ,
99110 value : core . output < T > ,
100- _ctx ?: schemas . ParseContext < errors . $ZodIssue >
111+ _ctx ?: schemas . ParseContext < errors . $ZodIssue > ,
112+ _params ?: $ParseParams
101113) => core . input < T > ;
102114
103- export const _encode : ( _Err : $ZodErrorClass ) => $Encode = ( _Err ) => ( schema , value , _ctx ) => {
104- const ctx = _ctx ? { ..._ctx , direction : "backward" as const } : { direction : "backward" as const } ;
105- return _parse ( _Err ) ( schema , value , ctx as any ) as any ;
115+ export const _encode : ( _Err : $ZodErrorClass ) => $Encode = ( _Err ) => {
116+ const parse = _parse ( _Err ) ;
117+ const fn : $Encode = ( schema , value , _ctx , _params ) => {
118+ const ctx = _ctx ? { ..._ctx , direction : "backward" as const } : { direction : "backward" as const } ;
119+ return parse ( schema , value , ctx as any , finalizeParams ( fn , _params ) ) as any ;
120+ } ;
121+ return fn ;
106122} ;
107123
108124export const encode : $Encode = /* @__PURE__ */ _encode ( errors . $ZodRealError ) ;
109125
110126export type $Decode = < T extends schemas . $ZodType > (
111127 schema : T ,
112128 value : core . input < T > ,
113- _ctx ?: schemas . ParseContext < errors . $ZodIssue >
129+ _ctx ?: schemas . ParseContext < errors . $ZodIssue > ,
130+ _params ?: $ParseParams
114131) => core . output < T > ;
115132
116- export const _decode : ( _Err : $ZodErrorClass ) => $Decode = ( _Err ) => ( schema , value , _ctx ) => {
117- return _parse ( _Err ) ( schema , value , _ctx ) ;
133+ export const _decode : ( _Err : $ZodErrorClass ) => $Decode = ( _Err ) => {
134+ const parse = _parse ( _Err ) ;
135+ const fn : $Decode = ( schema , value , _ctx , _params ) => {
136+ return parse ( schema , value , _ctx , finalizeParams ( fn , _params ) ) ;
137+ } ;
138+ return fn ;
118139} ;
119140
120141export const decode : $Decode = /* @__PURE__ */ _decode ( errors . $ZodRealError ) ;
121142
122143export type $EncodeAsync = < T extends schemas . $ZodType > (
123144 schema : T ,
124145 value : core . output < T > ,
125- _ctx ?: schemas . ParseContext < errors . $ZodIssue >
146+ _ctx ?: schemas . ParseContext < errors . $ZodIssue > ,
147+ _params ?: $ParseParams
126148) => Promise < core . input < T > > ;
127149
128- export const _encodeAsync : ( _Err : $ZodErrorClass ) => $EncodeAsync = ( _Err ) => async ( schema , value , _ctx ) => {
129- const ctx = _ctx ? { ..._ctx , direction : "backward" as const } : { direction : "backward" as const } ;
130- return _parseAsync ( _Err ) ( schema , value , ctx as any ) as any ;
150+ export const _encodeAsync : ( _Err : $ZodErrorClass ) => $EncodeAsync = ( _Err ) => {
151+ const parseAsync = _parseAsync ( _Err ) ;
152+ const fn : $EncodeAsync = async ( schema , value , _ctx , _params ) => {
153+ const ctx = _ctx ? { ..._ctx , direction : "backward" as const } : { direction : "backward" as const } ;
154+ return parseAsync ( schema , value , ctx as any , finalizeParams ( fn , _params ) ) as any ;
155+ } ;
156+ return fn ;
131157} ;
132158
133159export const encodeAsync : $EncodeAsync = /* @__PURE__ */ _encodeAsync ( errors . $ZodRealError ) ;
134160
135161export type $DecodeAsync = < T extends schemas . $ZodType > (
136162 schema : T ,
137163 value : core . input < T > ,
138- _ctx ?: schemas . ParseContext < errors . $ZodIssue >
164+ _ctx ?: schemas . ParseContext < errors . $ZodIssue > ,
165+ _params ?: $ParseParams
139166) => Promise < core . output < T > > ;
140167
141- export const _decodeAsync : ( _Err : $ZodErrorClass ) => $DecodeAsync = ( _Err ) => async ( schema , value , _ctx ) => {
142- return _parseAsync ( _Err ) ( schema , value , _ctx ) ;
168+ export const _decodeAsync : ( _Err : $ZodErrorClass ) => $DecodeAsync = ( _Err ) => {
169+ const parseAsync = _parseAsync ( _Err ) ;
170+ const fn : $DecodeAsync = async ( schema , value , _ctx , _params ) => {
171+ return parseAsync ( schema , value , _ctx , finalizeParams ( fn , _params ) ) ;
172+ } ;
173+ return fn ;
143174} ;
144175
145176export const decodeAsync : $DecodeAsync = /* @__PURE__ */ _decodeAsync ( errors . $ZodRealError ) ;
0 commit comments