WIP: Control access to state variables in transform method
This is a major refactor of how components work. They are now required to create a Permissions object in their constructor, which contains information on which state variables the transform method is allowed to read and write. Trying to read/write a variable without permission will result in a runtime error. This should help ensure people are more thoughtful in their design of components and prevent inadvertent side-effects. It also provides necessary information for implementing the automatic ordering of the execution of components (#384).
Closes #383
Does this now include #399? Is that on purpose?
Does this now include #399? Is that on purpose?
Yes. I didn't want to add all the permission for the old closure implementation and then have to re-do it for the new one. The plan is to merge #399 first though. Then we can rebase and do final review on this one.
Codecov Report
:x: Patch coverage is 58.05297% with 586 lines in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 29.22%. Comparing base (0e601f7) to head (7d17184).
Additional details and impacted files
@@ Coverage Diff @@
## master #421 +/- ##
==========================================
+ Coverage 22.50% 29.22% +6.72%
==========================================
Files 87 94 +7
Lines 8071 8750 +679
Branches 1146 1224 +78
==========================================
+ Hits 1816 2557 +741
+ Misses 6085 5932 -153
- Partials 170 261 +91
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.