34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
|
|
import {
|
||
|
|
FormEvalOutput,
|
||
|
|
ConditionalOutput,
|
||
|
|
} from "reducers/evaluationReducers/formEvaluationReducer";
|
||
|
|
|
||
|
|
// function to extract all objects that have dynamic values
|
||
|
|
export const extractFetchDynamicValueFormConfigs = (
|
||
|
|
evalOutput: FormEvalOutput,
|
||
|
|
) => {
|
||
|
|
let output: Record<string, ConditionalOutput> = {};
|
||
|
|
Object.entries(evalOutput).forEach(([key, value]) => {
|
||
|
|
if ("fetchDynamicValues" in value && !!value.fetchDynamicValues) {
|
||
|
|
output = { ...output, [key]: value };
|
||
|
|
}
|
||
|
|
});
|
||
|
|
return output;
|
||
|
|
};
|
||
|
|
|
||
|
|
// Function to extract all the objects that have to fetch dynamic values
|
||
|
|
export const extractQueueOfValuesToBeFetched = (evalOutput: FormEvalOutput) => {
|
||
|
|
let output: Record<string, ConditionalOutput> = {};
|
||
|
|
Object.entries(evalOutput).forEach(([key, value]) => {
|
||
|
|
if (
|
||
|
|
"fetchDynamicValues" in value &&
|
||
|
|
!!value.fetchDynamicValues &&
|
||
|
|
"allowedToFetch" in value.fetchDynamicValues &&
|
||
|
|
value.fetchDynamicValues.allowedToFetch
|
||
|
|
) {
|
||
|
|
output = { ...output, [key]: value };
|
||
|
|
}
|
||
|
|
});
|
||
|
|
return output;
|
||
|
|
};
|