mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
ce1b915868
The router currently restricts all further redirects after an absolute redirect. Because there's no documented reason for _why_ this restriction is in place, I'm now deeming this unnecessary. Developers should not be restricted in this manner. Instead, configs that may have caused infinite redirects in the past should be updated to not be infinite. It is confusing to ignore configs with redirects after an absolute redirect occurred because it creates different matching rules depending on the whether an absolute redirect has happened or not. For additional context on why I believe removing this restriction is necessary, #13373 asks for allowing `redirectTo` to be a function. It would make sense to allow this function to return a `UrlTree` like other guards in the Router. When guards in the `Router` return `UrlTree`, they cancel the current navigation and start a new one to re-do the route matching. Since we're already in the router matching part, we don't need to cancel the navigation. However, the restriction on absolute redirects here then creates a weird situation where developers wouldn't see any other redirects if they returned a `UrlTree` as an absolute redirect from `redirectTo`. resolves #39770 BREAKING CHANGE: Absolute redirects no longer prevent further redirects. Route configurations may need to be adjusted to prevent infinite redirects where additional redirects were previously ignored after an absolute redirect occurred. PR Close #51731
31 lines
894 B
TypeScript
31 lines
894 B
TypeScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
/**
|
|
* The list of error codes used in runtime code of the `router` package.
|
|
* Reserved error code range: 4000-4999.
|
|
*/
|
|
export const enum RuntimeErrorCode {
|
|
NAMED_OUTLET_REDIRECT = 4000,
|
|
MISSING_REDIRECT = 4001,
|
|
NO_MATCH = 4002,
|
|
ROOT_SEGMENT_MATRIX_PARAMS = 4003,
|
|
MISPLACED_OUTLETS_COMMAND = 4004,
|
|
INVALID_DOUBLE_DOTS = 4005,
|
|
TWO_SEGMENTS_WITH_SAME_OUTLET = 4006,
|
|
FOR_ROOT_CALLED_TWICE = 4007,
|
|
NULLISH_COMMAND = 4008,
|
|
EMPTY_PATH_WITH_PARAMS = 4009,
|
|
UNPARSABLE_URL = 4010,
|
|
UNEXPECTED_VALUE_IN_URL = 4011,
|
|
OUTLET_NOT_ACTIVATED = 4012,
|
|
OUTLET_ALREADY_ACTIVATED = 4013,
|
|
INVALID_ROUTE_CONFIG = 4014,
|
|
INVALID_ROOT_URL_SEGMENT = 4015,
|
|
INFINITE_REDIRECT = 4016,
|
|
}
|