refactor: Introduce (empty) SearchInfo class #2373
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.
Description
SearchInfo
will soon contain selected data passed in from the Query being executed.This is the Parameter Object pattern: it is a container for information that will be passed down through multiple levels of code, in order to be able to in future pass through more data, without having to update the function signatures of all the layers in between.
Note: Lots of the
FilterFunction
use don't need the 2nd parameter added, as they only act on theTask
.For now, I've taken the decision to only update the locations that needed to be updated in order to compile, rather than having loads of unused variables.
Motivation and Context
Task[]
down fromQuery
to the filter functionsfilter by function
to have access to the path of the query block - to providequery.file.path
etc in custom filtering and grouping.Now we pass through a
SearchInfo
object, rather than keeping on adding more parameters to pass down through all the layers fromQuery
toFilterFunction
.And in future
Query
can add more data toSearchInfo
, and the filters that need that information can use it.How has this been tested?
Screenshots (if appropriate)
Types of changes
Internal changes:
refactor
- non-breaking change which only improves the design or structure of existing code, and making no changes to its external behaviour)test
- additions and improvements to unit tests and the smoke tests)Checklist
yarn run lint
.Terms