fix: Cyclic dependency not resolving in JS Editor (#8003)
This commit is contained in:
parent
70c282da5a
commit
72f6ad8d99
|
|
@ -235,22 +235,28 @@ ctx.addEventListener(
|
||||||
}
|
}
|
||||||
case EVAL_WORKER_ACTIONS.PARSE_JS_FUNCTION_BODY: {
|
case EVAL_WORKER_ACTIONS.PARSE_JS_FUNCTION_BODY: {
|
||||||
const { body, jsAction } = requestData;
|
const { body, jsAction } = requestData;
|
||||||
|
/**
|
||||||
if (!dataTreeEvaluator) {
|
* In case of a cyclical dependency, the dataTreeEvaluator will not
|
||||||
return true;
|
* be present. This causes an issue because evalTree is needed to resolve
|
||||||
}
|
* the cyclical dependency in a JS Collection
|
||||||
|
*
|
||||||
|
* By setting evalTree to an empty object, the parsing can still take place
|
||||||
|
* and it would resolve the cyclical dependency
|
||||||
|
* **/
|
||||||
|
const currentEvalTree = dataTreeEvaluator
|
||||||
|
? dataTreeEvaluator.evalTree
|
||||||
|
: {};
|
||||||
try {
|
try {
|
||||||
const { evalTree, result } = parseJSCollection(
|
const { evalTree, result } = parseJSCollection(
|
||||||
body,
|
body,
|
||||||
jsAction,
|
jsAction,
|
||||||
dataTreeEvaluator.evalTree,
|
currentEvalTree,
|
||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
evalTree,
|
evalTree,
|
||||||
result,
|
result,
|
||||||
};
|
};
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
const evalTree = dataTreeEvaluator.evalTree;
|
|
||||||
const errors = [
|
const errors = [
|
||||||
{
|
{
|
||||||
errorType: PropertyEvaluationErrorType.PARSE,
|
errorType: PropertyEvaluationErrorType.PARSE,
|
||||||
|
|
@ -259,9 +265,13 @@ ctx.addEventListener(
|
||||||
errorMessage: e.message,
|
errorMessage: e.message,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
_.set(evalTree, `${jsAction.name}.${EVAL_ERROR_PATH}.body`, errors);
|
_.set(
|
||||||
|
currentEvalTree,
|
||||||
|
`${jsAction.name}.${EVAL_ERROR_PATH}.body`,
|
||||||
|
errors,
|
||||||
|
);
|
||||||
return {
|
return {
|
||||||
evalTree,
|
currentEvalTree,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user