Files
automatisch/packages/web/src/helpers/computeAuthStepVariables.ts
2022-05-03 21:12:29 +02:00

33 lines
907 B
TypeScript

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<IAuthenticationStepField, "properties"> & Partial<Pick<IAuthenticationStepField, "properties">>;
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;