( target: (...args: unknown[]) => unknown, receiver: unknown, returns: Validator, path: PropertyPath, side: WrapSide, mode: ValidationMode, onfulfilled?: ((value: unknown) => unknown) | null, onrejected?: ((reason: unknown) => unknown) | null )
| 1120 | } |
| 1121 | |
| 1122 | function callValidatedThen( |
| 1123 | target: (...args: unknown[]) => unknown, |
| 1124 | receiver: unknown, |
| 1125 | returns: Validator, |
| 1126 | path: PropertyPath, |
| 1127 | side: WrapSide, |
| 1128 | mode: ValidationMode, |
| 1129 | onfulfilled?: ((value: unknown) => unknown) | null, |
| 1130 | onrejected?: ((reason: unknown) => unknown) | null |
| 1131 | ): Promise<unknown> { |
| 1132 | let then = Reflect.get(target, "then", receiver) as ( |
| 1133 | onfulfilled?: ((value: unknown) => unknown) | null, |
| 1134 | onrejected?: ((reason: unknown) => unknown) | null |
| 1135 | ) => Promise<unknown>; |
| 1136 | return Reflect.apply(then, target, [ |
| 1137 | (value: unknown) => { |
| 1138 | // Validation runs in the fulfillment handler; route a failure to onrejected so the awaiter rejects rather than hangs, |
| 1139 | // or rethrow when there is no onrejected (bare `.then(onF)`) to reject the chained promise. |
| 1140 | let wrapped: unknown; |
| 1141 | try { |
| 1142 | wrapped = validateResolvedValue(value, returns, path, side, mode); |
| 1143 | } catch (err) { |
| 1144 | if (onrejected) return onrejected(err); |
| 1145 | throw err; |
| 1146 | } |
| 1147 | return onfulfilled ? onfulfilled(wrapped) : wrapped; |
| 1148 | }, |
| 1149 | onrejected, |
| 1150 | ]); |
| 1151 | } |
| 1152 | |
| 1153 | function methodSpecFor( |
| 1154 | validator: Validator, |
no test coverage detected
searching dependent graphs…