Files
DiceCloud/app/imports/api/engine/action/functions/recalculateInlineCalculations.ts
2024-12-01 22:02:47 +02:00

21 lines
1.0 KiB
TypeScript

import embedInlineCalculations from '/imports/api/engine/computation/utility/embedInlineCalculations';
import recalculateCalculation from './recalculateCalculation'
import { InlineCalculation } from '/imports/api/properties/subSchemas/inlineCalculationField';
import { EngineAction } from '/imports/api/engine/action/EngineActions';
import ResolveLevel from '/imports/parser/types/ResolveLevel';
import InputProvider from '/imports/api/engine/action/functions/userInput/InputProvider';
export default async function recalculateInlineCalculations(
inlineCalcObj: InlineCalculation, action: EngineAction,
parseLevel: ResolveLevel, userInput: InputProvider
) {
// Skip if there are no calculations
if (!inlineCalcObj?.inlineCalculations?.length) return;
// Recalculate each calculation with the current scope
for (const calc of inlineCalcObj.inlineCalculations) {
await recalculateCalculation(calc, action, parseLevel, userInput);
}
// Embed the new calculated values
embedInlineCalculations(inlineCalcObj);
}