Currently all of our migrations are set up to find the tsconfig paths within a project, create a `Program` out of each and migrate the files inside of the `Program`. The problem is that the `Program` can include files outside of the project and the CLI APIs that we use to interact with the file system assume that all files are within the project. These changes consolidate the logic, that determines whether a file can be migrated, in a single place and add an extra check to exclude files outside of the root. Fixes #39778. PR Close #39790
ViewEncapsulation.Native migration
Automatically migrates usages of ViewEncapsulation.Native to ViewEncapsulation.ShadowDom.
For most practical purposes the Native mode is compatible with the ShadowDom mode.
The migration covers any reference to the Native value that can be traced to @angular/core.
Some examples:
- Inside the
encapsulationproperty ofComponentdecorators. - In property assignments for the
COMPILER_OPTIONSprovider. - In variables.
Before
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
template: '...',
encapsulation: ViewEncapsulation.Native
})
export class App {
}
After
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
template: '...',
encapsulation: ViewEncapsulation.ShadowDom
})
export class App {
}