(ref)
| 309 | // discriminator path does) and require the fields required in every leaf, so an |
| 310 | // alias-to-record variant is not left with an empty (always-matching) predicate. |
| 311 | const requiresOf = (ref) => { |
| 312 | const leaves = unionLeaves(ref, types).map( |
| 313 | (l) => new Set(types[l].fields.filter((f) => f.required).map((f) => f.name)), |
| 314 | ) |
| 315 | return leaves.length ? [...leaves[0]].filter((k) => leaves.every((s) => s.has(k))) : [] |
| 316 | } |
| 317 | return { ordered: variants.map((ref) => ({ ref, requires: requiresOf(ref) })) } |
| 318 | } |
| 319 |
no test coverage detected