| 4233 | } |
| 4234 | |
| 4235 | export class ZodPromise<T extends ZodTypeAny> extends ZodType< |
| 4236 | Promise<T["_output"]>, |
| 4237 | ZodPromiseDef<T>, |
| 4238 | Promise<T["_input"]> |
| 4239 | > { |
| 4240 | unwrap() { |
| 4241 | return this._def.type; |
| 4242 | } |
| 4243 | |
| 4244 | _parse(input: ParseInput): ParseReturnType<this["_output"]> { |
| 4245 | const { ctx } = this._processInputParams(input); |
| 4246 | if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { |
| 4247 | addIssueToContext(ctx, { |
| 4248 | code: ZodIssueCode.invalid_type, |
| 4249 | expected: ZodParsedType.promise, |
| 4250 | received: ctx.parsedType, |
| 4251 | }); |
| 4252 | return INVALID; |
| 4253 | } |
| 4254 | |
| 4255 | const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); |
| 4256 | |
| 4257 | return OK( |
| 4258 | promisified.then((data: any) => { |
| 4259 | return this._def.type.parseAsync(data, { |
| 4260 | path: ctx.path, |
| 4261 | errorMap: ctx.common.contextualErrorMap, |
| 4262 | }); |
| 4263 | }) |
| 4264 | ); |
| 4265 | } |
| 4266 | |
| 4267 | static create = <Inner extends ZodTypeAny>(schema: Inner, params?: RawCreateParams): ZodPromise<Inner> => { |
| 4268 | return new ZodPromise({ |
| 4269 | type: schema, |
| 4270 | typeName: ZodFirstPartyTypeKind.ZodPromise, |
| 4271 | ...processCreateParams(params), |
| 4272 | }); |
| 4273 | }; |
| 4274 | } |
| 4275 | |
| 4276 | ////////////////////////////////////////////// |
| 4277 | ////////////////////////////////////////////// |
nothing calls this directly
no test coverage detected