angular-cn/packages/core/schematics/migrations/renderer-to-renderer2
Kristiyan Kostadinov 1a26f6da6e fix(core): migration error if program contains files outside of the project (#39790)
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
2020-11-20 12:51:19 -08:00
..
BUILD.bazel refactor(core): move renderer2 migration lint rule into google3 folder (#31817) 2019-08-09 10:46:45 -07:00
README.md feat(core): add automatic migration from Renderer to Renderer2 (#30936) 2019-07-03 09:03:37 -07:00
helpers.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
index.ts fix(core): migration error if program contains files outside of the project (#39790) 2020-11-20 12:51:19 -08:00
migration.ts feat(core): add automated migration to replace async with waitForAsync (#39212) 2020-10-13 09:55:34 -07:00
util.ts feat(core): add automated migration to replace async with waitForAsync (#39212) 2020-10-13 09:55:34 -07:00

README.md

Renderer -> Renderer2 migration

Automatically migrates from Renderer to Renderer2 by changing method calls, renaming imports and renaming types. Tries to either map method calls directly from one renderer to the other, or if that's not possible, inserts custom helper functions at the bottom of the file.

Before

import { Renderer, ElementRef } from '@angular/core';

@Component({})
export class MyComponent {
  constructor(private _renderer: Renderer, private _elementRef: ElementRef) {}

  changeColor() {
    this._renderer.setElementStyle(this._element.nativeElement, 'color', 'purple');
  }
}

After

import { Renderer2, ElementRef } from '@angular/core';

@Component({})
export class MyComponent {
  constructor(private _renderer: Renderer2, private _elementRef: ElementRef) {}

  changeColor() {
    this._renderer.setStyle(this._element.nativeElement, 'color', 'purple');
  }
}