Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Link to Jira Ticket
https://formio.atlassian.net/browse/FIO-9783
Description
We've identified a bottleneck in the way we perform form validation in our Enterprise Server - creating VM contexts per request and executing the entire form orchestration pipeline in those contexts turns out to be kind of slow and expensive. To mitigate this, I've changed the way the Evaluator class is leveraged: instead of a static singleton class, it is now a mutable class instance that can be extended and overridden as needed, giving us access to things like constructors.
On a granular level, this PR:
modules
export and moves the Evaluator (formerly the JSONLogicEvaluator) into utilities;evaluate
andinterpolate
for use in the processors and elsewhere;clearHidden
processor, the lack of which I think was an oversight.Breaking Changes / Backwards Compatibility
This introduces a fair amount of risk (although tests are passing) but there are certainly not any intentional breaking changes in this PR.
Dependencies
n/a
How has this PR been tested?
Tests are passing.
Checklist: