feat(core/frameworks): add ignore plugin for Angular IO functions #4789
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.
Since Angular 16 and 17 there is a new way to perform IO operations with data inside components and directives using signals with the
input()
,model()
andoutput()
functions. These functions are effectively a counterpart of the@Input()
and@Output()
decorators and thus accept a configuration object as part of their parameters.Currently, StrykerJS doesn't place mutations inside decorators so the configuration object while performing IO with them are unaffected. But functions are mutated, so the configuration object inside them is as well leading into errors with the ivy compiler.
This PR aims to include a new ignore plugin inside the core package that can be used to avoid the mentioned problem when using the new signal functions. It can be used by including the
angular
ignorer inside theignorers
property in the configuration file, e.g.Closes #4771