(args: {
schema: Schema;
text: string;
source: string;
recoveryHint: string;
rejectDeletedTrackerFields?: boolean;
normalize?: (value: unknown) => unknown;
})
| 618 | } |
| 619 | |
| 620 | function parseJsonWithSchema<Schema extends z.ZodTypeAny>(args: { |
| 621 | schema: Schema; |
| 622 | text: string; |
| 623 | source: string; |
| 624 | recoveryHint: string; |
| 625 | rejectDeletedTrackerFields?: boolean; |
| 626 | normalize?: (value: unknown) => unknown; |
| 627 | }): z.output<Schema> { |
| 628 | let value: unknown; |
| 629 | try { |
| 630 | value = JSON.parse(args.text); |
| 631 | } catch (err) { |
| 632 | const message = err instanceof Error ? err.message : String(err); |
| 633 | throw new PlanValidationError( |
| 634 | `${args.source} is not valid JSON: ${message}` |
| 635 | ); |
| 636 | } |
| 637 | return parseUnknownWithSchema({ |
| 638 | ...args, |
| 639 | value: args.normalize?.(value) ?? value, |
| 640 | }); |
| 641 | } |
| 642 | |
| 643 | function parseUnknownWithSchema<Schema extends z.ZodTypeAny>(args: { |
| 644 | schema: Schema; |
no test coverage detected