angular-cn/packages/core/schematics/migrations/navigation-extras-omissions
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 feat(router): add migration to update calls to navigateByUrl and createUrlTree with invalid parameters (#38825) 2020-09-16 15:16:18 -07:00
README.md feat(router): add migration to update calls to navigateByUrl and createUrlTree with invalid parameters (#38825) 2020-09-16 15:16:18 -07:00
index.ts fix(core): migration error if program contains files outside of the project (#39790) 2020-11-20 12:51:19 -08:00
util.ts feat(router): add migration to update calls to navigateByUrl and createUrlTree with invalid parameters (#38825) 2020-09-16 15:16:18 -07:00

README.md

Router.navigateByUrl and Router.createUrlTree extras migration

Previously the extras parameter of Router.navigateByUrl and Router.createUrlTree accepted the full NavigationExtras object, even though only a subset of properties was supported. This migration removes the unsupported properties from the relevant method call sites.

Before

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({})
export class MyComponent {
  constructor(private _router: Router) {}

  goHome() {
    this._router.navigateByUrl('/', {skipLocationChange: false, fragment: 'foo'});
  }
}

After

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({})
export class MyComponent {
  constructor(private _router: Router) {}

  goHome() {
    this._router.navigateByUrl('/', { /* Removed unsupported properties by Angular migration: fragment. */ skipLocationChange: false });
  }
}