@@ -15,20 +15,30 @@ enum HeadingIds {
1515const getElectiveSubtree = (
1616 program : V2Program ,
1717) : V2ProgramRequirement | undefined => {
18- return program . req_tree [ 0 ] ?. children ?. find (
19- ( child ) =>
20- child . data . node_type === V2ProgramRequirementDataNodeTypeEnum . Operator &&
21- child . data . elective_flag ,
22- )
18+ const find = (
19+ nodes : V2ProgramRequirement [ ] ,
20+ ) : V2ProgramRequirement | undefined =>
21+ nodes ?. find (
22+ ( child ) =>
23+ child . data . node_type ===
24+ V2ProgramRequirementDataNodeTypeEnum . Operator &&
25+ child . data . elective_flag ,
26+ )
27+ return find ( program . req_tree ) ?? find ( program . req_tree [ 0 ] ?. children || [ ] )
2328}
2429const getRequiredSubtree = (
2530 program : V2Program ,
2631) : V2ProgramRequirement | undefined => {
27- return program ?. req_tree ?. [ 0 ] ?. children ?. find (
28- ( child ) =>
29- child . data . node_type === V2ProgramRequirementDataNodeTypeEnum . Operator &&
30- ! child . data . elective_flag ,
31- )
32+ const find = (
33+ nodes : V2ProgramRequirement [ ] ,
34+ ) : V2ProgramRequirement | undefined =>
35+ nodes ?. find (
36+ ( child ) =>
37+ child . data . node_type ===
38+ V2ProgramRequirementDataNodeTypeEnum . Operator &&
39+ ! child . data . elective_flag ,
40+ )
41+ return find ( program . req_tree ) ?? find ( program . req_tree [ 0 ] ?. children || [ ] )
3242}
3343
3444export { HeadingIds , getElectiveSubtree , getRequiredSubtree }
0 commit comments