fix(utils): make cache global instead of only setup in axe.run #1535
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.
Turns out that a lot of things can call
axe.utils.getFlattenedTree
without going throughaxe.run
, including our own code when we cleanup plugins https://github.com/dequelabs/axe-core/blob/develop/lib/core/public/cleanup-plugins.js#L28. This caused the axe extensions to break.Moving the creation of the
nodeMap
to the flatten tree code meant that the cache also had to exist at that point, which meant it was created in two different places (axe.run
andgetFlattenedTree
). I decided it was cleaner to create a global private cache that always existed and could be used anywhere for any code that needed it. That way you weren't restricted to go throughaxe.run
to have the cache available.Linked issues: #1532
Reviewer checks
Required fields, to be filled out by PR reviewer(s)