(schema: LibraryJSONSchema)
| 638 | } |
| 639 | |
| 640 | export function compileSchema(schema: LibraryJSONSchema): ParamMap { |
| 641 | const map: ParamMap = new Map(); |
| 642 | const defs = schema.$defs ?? {}; |
| 643 | |
| 644 | for (const [name, def] of Object.entries(defs)) { |
| 645 | const properties = def.properties ?? {}; |
| 646 | const required = def.required ?? []; |
| 647 | const params = Object.keys(properties).map((key) => ({ |
| 648 | name: key, |
| 649 | required: required.includes(key), |
| 650 | defaultValue: getSchemaDefaultValue(properties[key]), |
| 651 | })); |
| 652 | map.set(name, { params }); |
| 653 | } |
| 654 | |
| 655 | return map; |
| 656 | } |
| 657 | |
| 658 | /** |
| 659 | * Create a parser from a library JSON Schema document. |
no test coverage detected