Testing: Enforce array as Lodash path argument #6247
Merged
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.
This pull request seeks to enforce a new custom ESLint rule encouraging the use of an array as the second parameter of Lodash functions accepting a "path" (e.g.
_.get
). The intent here is to skip a parsing step to convert a string path to its array equivalent, which occurs internally in Lodash (source).The performance impact is not as bad as I had suspected for simple strings, as the internal logic tests for properties, skipping the parse for use like
_.get( foo, 'bar' )
. Further, itsstringToPath
is memoized so only calculated once. All the same, this rule encourages consistency, avoids any such regular expression testing, avoids memory overhead of memoization, and avoids the string ever needing to be parsed.Testing instructions:
There should be no behavior impact of these changes.
Ensure tests pass: