From d73a0175cb2d8c74e6bb877dc30eec07fd484fff Mon Sep 17 00:00:00 2001 From: Matthieu Riegler Date: Fri, 26 Apr 2024 01:10:52 +0200 Subject: [PATCH] fix(core): link errors to ADEV (#55554) Console error links will now point to adev. PR Close #55554 --- packages/common/test/directives/ng_for_spec.ts | 4 ++-- .../injector_def/ivy_build/app/test/module_spec.ts | 2 +- .../compiler-cli/src/ngtsc/diagnostics/src/docs.ts | 2 +- .../ngtsc/diagnostics/src/error_details_base_url.ts | 2 +- packages/core/src/error_details_base_url.ts | 2 +- packages/core/src/errors.ts | 2 +- packages/core/src/image_performance_warning.ts | 4 ++-- packages/core/test/acceptance/di_forward_ref_spec.ts | 2 +- packages/core/test/acceptance/di_spec.ts | 6 +++--- packages/core/test/application_init_spec.ts | 2 +- packages/core/test/application_ref_spec.ts | 2 +- .../core/test/linker/view_injector_integration_spec.ts | 10 +++++----- packages/core/test/render3/di_spec.ts | 2 +- packages/core/test/runtime_error_spec.ts | 6 +++--- packages/forms/test/directives_spec.ts | 8 ++++---- packages/forms/test/form_control_spec.ts | 2 +- packages/forms/test/reactive_integration_spec.ts | 2 +- 17 files changed, 30 insertions(+), 30 deletions(-) diff --git a/packages/common/test/directives/ng_for_spec.ts b/packages/common/test/directives/ng_for_spec.ts index d48c3ea6474..bb034e3e0c5 100644 --- a/packages/common/test/directives/ng_for_spec.ts +++ b/packages/common/test/directives/ng_for_spec.ts @@ -118,7 +118,7 @@ describe('ngFor', () => { getComponent().items = 'whaaa'; expect(() => fixture.detectChanges()).toThrowError( - `NG02200: Cannot find a differ supporting object 'whaaa' of type 'string'. NgFor only supports binding to Iterables, such as Arrays. Find more at https://angular.io/errors/NG02200`, + `NG02200: Cannot find a differ supporting object 'whaaa' of type 'string'. NgFor only supports binding to Iterables, such as Arrays. Find more at https://angular.dev/errors/NG02200`, ); })); @@ -127,7 +127,7 @@ describe('ngFor', () => { getComponent().items = {'stuff': 'whaaa'}; expect(() => fixture.detectChanges()).toThrowError( - `NG02200: Cannot find a differ supporting object '\[object Object\]' of type 'object'. NgFor only supports binding to Iterables, such as Arrays. Did you mean to use the keyvalue pipe? Find more at https://angular.io/errors/NG02200`, + `NG02200: Cannot find a differ supporting object '\[object Object\]' of type 'object'. NgFor only supports binding to Iterables, such as Arrays. Did you mean to use the keyvalue pipe? Find more at https://angular.dev/errors/NG02200`, ); })); diff --git a/packages/compiler-cli/integrationtest/bazel/injector_def/ivy_build/app/test/module_spec.ts b/packages/compiler-cli/integrationtest/bazel/injector_def/ivy_build/app/test/module_spec.ts index f769e97dd68..8b225e9c60d 100644 --- a/packages/compiler-cli/integrationtest/bazel/injector_def/ivy_build/app/test/module_spec.ts +++ b/packages/compiler-cli/integrationtest/bazel/injector_def/ivy_build/app/test/module_spec.ts @@ -64,7 +64,7 @@ describe('NgModule', () => { expect(() => createInjector(AModule)).toThrowError( 'NG0200: Circular dependency in DI detected for AModule. ' + 'Dependency path: AModule > BModule > AModule. ' + - 'Find more at https://angular.io/errors/NG0200', + 'Find more at https://angular.dev/errors/NG0200', ); }); diff --git a/packages/compiler-cli/src/ngtsc/diagnostics/src/docs.ts b/packages/compiler-cli/src/ngtsc/diagnostics/src/docs.ts index 9243aa0f2df..a8b93f8ee1a 100644 --- a/packages/compiler-cli/src/ngtsc/diagnostics/src/docs.ts +++ b/packages/compiler-cli/src/ngtsc/diagnostics/src/docs.ts @@ -10,7 +10,7 @@ import {ErrorCode} from './error_code'; /** * Contains a set of error messages that have detailed guides at angular.io. - * Full list of available error guides can be found at https://angular.io/errors + * Full list of available error guides can be found at https://angular.dev/errors */ export const COMPILER_ERRORS_WITH_GUIDES = new Set([ ErrorCode.DECORATOR_ARG_NOT_LITERAL, diff --git a/packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts b/packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts index 2c7cac3c6f1..23691fb75ef 100644 --- a/packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts +++ b/packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts @@ -13,4 +13,4 @@ * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts * - packages/core/src/error_details_base_url.ts */ -export const ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors'; +export const ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.dev/errors'; diff --git a/packages/core/src/error_details_base_url.ts b/packages/core/src/error_details_base_url.ts index 417f681e355..39fd3f50946 100644 --- a/packages/core/src/error_details_base_url.ts +++ b/packages/core/src/error_details_base_url.ts @@ -13,7 +13,7 @@ * - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts * - packages/core/src/error_details_base_url.ts */ -export const ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors'; +export const ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.dev/errors'; /** * URL for the XSS security documentation. diff --git a/packages/core/src/errors.ts b/packages/core/src/errors.ts index fdbe9ee10a8..c4945d886c0 100644 --- a/packages/core/src/errors.ts +++ b/packages/core/src/errors.ts @@ -16,7 +16,7 @@ import {ERROR_DETAILS_PAGE_BASE_URL} from './error_details_base_url'; * angular.io. This extra annotation is needed to avoid introducing a separate set to store * error codes which have guides, which might leak into runtime code. * - * Full list of available error guides can be found at https://angular.io/errors. + * Full list of available error guides can be found at https://angular.dev/errors. * * Error code ranges per package: * - core (this package): 100-999 diff --git a/packages/core/src/image_performance_warning.ts b/packages/core/src/image_performance_warning.ts index ab4a783f129..ad5b5f4c4f6 100644 --- a/packages/core/src/image_performance_warning.ts +++ b/packages/core/src/image_performance_warning.ts @@ -177,7 +177,7 @@ function logLazyLCPWarning(src: string) { `changing the loading value of the LCP image to "eager", or by using the ` + `NgOptimizedImage directive's prioritization utilities. For more ` + `information about addressing or disabling this warning, see ` + - `https://angular.io/errors/NG0913`, + `https://angular.dev/errors/NG0913`, ), ); } @@ -189,7 +189,7 @@ function logOversizedImageWarning(src: string) { `An image with src ${src} has intrinsic file dimensions much larger than its ` + `rendered size. This can negatively impact application loading performance. ` + `For more information about addressing or disabling this warning, see ` + - `https://angular.io/errors/NG0913`, + `https://angular.dev/errors/NG0913`, ), ); } diff --git a/packages/core/test/acceptance/di_forward_ref_spec.ts b/packages/core/test/acceptance/di_forward_ref_spec.ts index c418760ea52..fa82e1a8785 100644 --- a/packages/core/test/acceptance/di_forward_ref_spec.ts +++ b/packages/core/test/acceptance/di_forward_ref_spec.ts @@ -30,7 +30,7 @@ describe('di with forwardRef', () => { TestBed.configureTestingModule({declarations: [DirectiveA, DirectiveB, MyComp]}); expect(() => TestBed.createComponent(MyComp)).toThrowError( - 'NG0200: Circular dependency in DI detected for DirectiveA. Find more at https://angular.io/errors/NG0200', + 'NG0200: Circular dependency in DI detected for DirectiveA. Find more at https://angular.dev/errors/NG0200', ); }); diff --git a/packages/core/test/acceptance/di_spec.ts b/packages/core/test/acceptance/di_spec.ts index a88a2d42d98..ceff3b136b0 100644 --- a/packages/core/test/acceptance/di_spec.ts +++ b/packages/core/test/acceptance/di_spec.ts @@ -1103,7 +1103,7 @@ describe('di', () => { TestBed.configureTestingModule({declarations: [DirectiveA, DirectiveB, MyComp]}); expect(() => TestBed.createComponent(MyComp)).toThrowError( - 'NG0200: Circular dependency in DI detected for DirectiveA. Find more at https://angular.io/errors/NG0200', + 'NG0200: Circular dependency in DI detected for DirectiveA. Find more at https://angular.dev/errors/NG0200', ); }); @@ -2216,7 +2216,7 @@ describe('di', () => { TestBed.configureTestingModule({declarations: [DirectiveString, MyComp, MyApp]}); expect(() => TestBed.createComponent(MyApp)).toThrowError( - 'NG0201: No provider for String found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for String found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }); @@ -2289,7 +2289,7 @@ describe('di', () => { TestBed.configureTestingModule({declarations: [DirectiveComp, MyComp, MyApp]}); expect(() => TestBed.createComponent(MyApp)).toThrowError( - 'NG0201: No provider for MyApp found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for MyApp found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }); diff --git a/packages/core/test/application_init_spec.ts b/packages/core/test/application_init_spec.ts index a20a0b22650..54ec30b47c3 100644 --- a/packages/core/test/application_init_spec.ts +++ b/packages/core/test/application_init_spec.ts @@ -183,7 +183,7 @@ describe('ApplicationInitStatus', () => { 'NG0209: Unexpected type of the `APP_INITIALIZER` token value ' + `(expected an array, but got string). ` + 'Please check that the `APP_INITIALIZER` token is configured as a ' + - '`multi: true` provider. Find more at https://angular.io/errors/NG0209', + '`multi: true` provider. Find more at https://angular.dev/errors/NG0209', ); }); }); diff --git a/packages/core/test/application_ref_spec.ts b/packages/core/test/application_ref_spec.ts index 9acb3422603..9dfad384e80 100644 --- a/packages/core/test/application_ref_spec.ts +++ b/packages/core/test/application_ref_spec.ts @@ -532,7 +532,7 @@ describe('bootstrap', () => { `NG0403: The module MyModule was bootstrapped, ` + `but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. ` + `Please define one of these. ` + - `Find more at https://angular.io/errors/NG0403`; + `Find more at https://angular.dev/errors/NG0403`; expect(e.message).toEqual(expectedErrMsg); expect(mockConsole.res[0].join('#')).toEqual('ERROR#Error: ' + expectedErrMsg); }, diff --git a/packages/core/test/linker/view_injector_integration_spec.ts b/packages/core/test/linker/view_injector_integration_spec.ts index 5de7d48b92f..87d0dc2b225 100644 --- a/packages/core/test/linker/view_injector_integration_spec.ts +++ b/packages/core/test/linker/view_injector_integration_spec.ts @@ -666,7 +666,7 @@ describe('View injector', () => { it('should not instantiate a directive with cyclic dependencies', () => { TestBed.configureTestingModule({declarations: [CycleDirective]}); expect(() => createComponent('
')).toThrowError( - 'NG0200: Circular dependency in DI detected for CycleDirective. Find more at https://angular.io/errors/NG0200', + 'NG0200: Circular dependency in DI detected for CycleDirective. Find more at https://angular.dev/errors/NG0200', ); }); @@ -683,7 +683,7 @@ describe('View injector', () => { }); expect(() => createComponent('
')).toThrowError( - 'NG0201: No provider for service found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for service found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }, ); @@ -705,7 +705,7 @@ describe('View injector', () => { expect(() => createComponent('
'), ).toThrowError( - 'NG0201: No provider for service found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for service found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }, ); @@ -715,7 +715,7 @@ describe('View injector', () => { expect(() => createComponent('
'), ).toThrowError( - 'NG0201: No provider for SimpleDirective found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for SimpleDirective found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }); @@ -761,7 +761,7 @@ describe('View injector', () => { set: {template: '
'}, }); expect(() => createComponent('
')).toThrowError( - 'NG0201: No provider for SimpleDirective found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for SimpleDirective found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }); diff --git a/packages/core/test/render3/di_spec.ts b/packages/core/test/render3/di_spec.ts index 46d364b81b3..516ec94f252 100644 --- a/packages/core/test/render3/di_spec.ts +++ b/packages/core/test/render3/di_spec.ts @@ -50,7 +50,7 @@ describe('di', () => { expect(() => { TestBed.createComponent(App).detectChanges(); }).toThrowError( - 'NG0201: No provider for DirNotOnSelf found in NodeInjector. Find more at https://angular.io/errors/NG0201', + 'NG0201: No provider for DirNotOnSelf found in NodeInjector. Find more at https://angular.dev/errors/NG0201', ); }); }); diff --git a/packages/core/test/runtime_error_spec.ts b/packages/core/test/runtime_error_spec.ts index dccb7de4d04..011f248bbba 100644 --- a/packages/core/test/runtime_error_spec.ts +++ b/packages/core/test/runtime_error_spec.ts @@ -11,7 +11,7 @@ import {RuntimeError, RuntimeErrorCode} from '../src/errors'; describe('RuntimeError utils', () => { it('should correctly format an error without an error message', () => { const error = new RuntimeError(RuntimeErrorCode.EXPORT_NOT_FOUND, ''); - expect(error.toString()).toBe('Error: NG0301. Find more at https://angular.io/errors/NG0301'); + expect(error.toString()).toBe('Error: NG0301. Find more at https://angular.dev/errors/NG0301'); }); it('should correctly format an error without an error message not aio guide', () => { @@ -27,7 +27,7 @@ describe('RuntimeError utils', () => { it('should correctly format an error with both an error message and an aio guide', () => { const error = new RuntimeError(RuntimeErrorCode.EXPORT_NOT_FOUND, 'Some error message'); expect(error.toString()).toBe( - 'Error: NG0301: Some error message. Find more at https://angular.io/errors/NG0301', + 'Error: NG0301: Some error message. Find more at https://angular.dev/errors/NG0301', ); }); @@ -39,7 +39,7 @@ describe('RuntimeError utils', () => { errorMessage, ); expect(error.toString()).toBe( - `Error: NG0302: Pipe not found${character} Find more at https://angular.io/errors/NG0302`, + `Error: NG0302: Pipe not found${character} Find more at https://angular.dev/errors/NG0302`, ); }), ); diff --git a/packages/forms/test/directives_spec.ts b/packages/forms/test/directives_spec.ts index 23d70b3f201..c592ce91728 100644 --- a/packages/forms/test/directives_spec.ts +++ b/packages/forms/test/directives_spec.ts @@ -212,7 +212,7 @@ describe('Form Directives', () => { expect(() => form.addControl(dir)).toThrowError( new RegExp( - `NG01203: No value accessor for form control name: 'login'. Find more at https://angular.io/errors/NG01203`, + `NG01203: No value accessor for form control name: 'login'. Find more at https://angular.dev/errors/NG01203`, ), ); }); @@ -225,7 +225,7 @@ describe('Form Directives', () => { expect(() => form.addControl(dir)).toThrowError( new RegExp( - `NG01203: No value accessor for form control path: 'passwords -> password'. Find more at https://angular.io/errors/NG01203`, + `NG01203: No value accessor for form control path: 'passwords -> password'. Find more at https://angular.dev/errors/NG01203`, ), ); }); @@ -620,7 +620,7 @@ describe('Form Directives', () => { expect(() => namedDir.ngOnChanges({})).toThrowError( new RegExp( - `NG01203: No value accessor for form control name: 'one'. Find more at https://angular.io/errors/NG01203`, + `NG01203: No value accessor for form control name: 'one'. Find more at https://angular.dev/errors/NG01203`, ), ); }); @@ -630,7 +630,7 @@ describe('Form Directives', () => { expect(() => unnamedDir.ngOnChanges({})).toThrowError( new RegExp( - `NG01203: No value accessor for form control unspecified name attribute. Find more at https://angular.io/errors/NG01203`, + `NG01203: No value accessor for form control unspecified name attribute. Find more at https://angular.dev/errors/NG01203`, ), ); }); diff --git a/packages/forms/test/form_control_spec.ts b/packages/forms/test/form_control_spec.ts index d69e902f648..943da92f394 100644 --- a/packages/forms/test/form_control_spec.ts +++ b/packages/forms/test/form_control_spec.ts @@ -1523,7 +1523,7 @@ import {asyncValidator, asyncValidatorReturningObservable} from './util'; expect(fn).toThrowError( 'NG01101: Expected async validator to return Promise or Observable. ' + 'Are you using a synchronous validator where an async validator is expected? ' + - 'Find more at https://angular.io/errors/NG01101', + 'Find more at https://angular.dev/errors/NG01101', ); }); diff --git a/packages/forms/test/reactive_integration_spec.ts b/packages/forms/test/reactive_integration_spec.ts index 63c12dbbdd3..ee4cfdae17d 100644 --- a/packages/forms/test/reactive_integration_spec.ts +++ b/packages/forms/test/reactive_integration_spec.ts @@ -5803,7 +5803,7 @@ describe('reactive forms integration tests', () => { expect(() => { fixture.detectChanges(); }).toThrowError( - `NG01203: No value accessor for form control name: 'control'. Find more at https://angular.io/errors/NG01203`, + `NG01203: No value accessor for form control name: 'control'. Find more at https://angular.dev/errors/NG01203`, ); // Making sure that cleanup between tests doesn't cause any issues