import template from 'lodash/template'; import type { IAuthenticationStepField, IJSONObject } from '@automatisch/types'; const interpolate = /{([\s\S]+?)}/g; type Variables = { [key: string]: any; }; type IVariable = Omit & Partial>; const computeAuthStepVariables = ( variableSchema: IVariable[], aggregatedData: IJSONObject ): IJSONObject => { const variables: Variables = {}; for (const variable of variableSchema) { if (variable.properties) { variables[variable.name] = computeAuthStepVariables( variable.properties, aggregatedData ); continue; } if (variable.value) { const computedVariable = template(variable.value, { interpolate })( aggregatedData ); variables[variable.name] = computedVariable; } } return variables; }; export default computeAuthStepVariables;