(
parsedLeft: SyncParseReturnType,
parsedRight: SyncParseReturnType
)
| 3292 | _parse(input: ParseInput): ParseReturnType<this["_output"]> { |
| 3293 | const { status, ctx } = this._processInputParams(input); |
| 3294 | const handleParsed = ( |
| 3295 | parsedLeft: SyncParseReturnType, |
| 3296 | parsedRight: SyncParseReturnType |
| 3297 | ): SyncParseReturnType<T & U> => { |
| 3298 | if (isAborted(parsedLeft) || isAborted(parsedRight)) { |
| 3299 | return INVALID; |
| 3300 | } |
| 3301 | |
| 3302 | const merged = mergeValues(parsedLeft.value, parsedRight.value); |
| 3303 | |
| 3304 | if (!merged.valid) { |
| 3305 | addIssueToContext(ctx, { |
| 3306 | code: ZodIssueCode.invalid_intersection_types, |
| 3307 | }); |
| 3308 | return INVALID; |
| 3309 | } |
| 3310 | |
| 3311 | if (isDirty(parsedLeft) || isDirty(parsedRight)) { |
| 3312 | status.dirty(); |
| 3313 | } |
| 3314 | |
| 3315 | return { status: status.value, value: merged.data }; |
| 3316 | }; |
| 3317 | |
| 3318 | if (ctx.common.async) { |
| 3319 | return Promise.all([ |
nothing calls this directly
no test coverage detected