From 2203217c401e1cd7c10e60ef6297fbab10da93a0 Mon Sep 17 00:00:00 2001 From: George Kalpakas Date: Thu, 24 Jun 2021 20:57:23 +0300 Subject: [PATCH] build(docs-infra): disambiguate doc paths for global APIs (#42648) In #41788, the `disambiguateDocsPathsProcessor` was introduced to fix an issue with case-insensitively equal paths. This processor may alter the output paths of some docs. Due to its nature, the `disambiguateDocPathsProcessor` must be the last processor in the pipeline that updates a doc's output path. However, the `updateGlobalApiPathProcess` (which also alters the output paths of some docs) was not configured to run before `disambiguateDocPathsProcessor`. As a result, the changes made by `disambiguateDocPathsProcessor` were overridden by `updateGlobalApiPathProcess`, resulting in the app's failing to load such global API docs pages. An example of such an API page is: https://angular.io/api/core/global/ngApplyChanges This commit fixes it by ensuring that the `updateGlobalApiPathProcess` is explicitly run before the `disambiguateDocPathsProcessor`, so that the former does not override the changes made by the latter. PR Close #42648 --- aio/tests/deployment/e2e/smoke-tests.e2e-spec.ts | 1 + .../angular-api-package/processors/updateGlobalApiPath.js | 4 ++-- .../processors/updateGlobalApiPath.spec.js | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/aio/tests/deployment/e2e/smoke-tests.e2e-spec.ts b/aio/tests/deployment/e2e/smoke-tests.e2e-spec.ts index 2d58484fc6..66e246aeba 100644 --- a/aio/tests/deployment/e2e/smoke-tests.e2e-spec.ts +++ b/aio/tests/deployment/e2e/smoke-tests.e2e-spec.ts @@ -68,6 +68,7 @@ describe(browser.baseUrl, () => { /* Directive */ 'api/common/NgIf': 'class ngif', /* Enum */ 'api/core/ChangeDetectionStrategy': 'enum changedetectionstrategy', /* Function */ 'api/animations/animate': 'animate(', + /* Global */ 'api/core/global/ngApplyChanges': 'ng.applychanges(', /* Interface */ 'api/core/OnDestroy': 'interface ondestroy', /* Pipe */ 'api/common/JsonPipe': '| json', /* Type-Alias */ 'api/common/http/HttpEvent': 'type httpevent', diff --git a/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.js b/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.js index 4219a68f8f..dd7f4609a1 100644 --- a/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.js +++ b/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.js @@ -6,8 +6,8 @@ */ module.exports = function updateGlobalApiPathProcessor() { return { - $runAfter: ['computePathsProcessor'], - $runBefore: ['processNgModuleDocs'], + $runAfter: ['paths-computed'], + $runBefore: ['disambiguateDocPathsProcessor', 'processNgModuleDocs'], $process: function(docs) { docs.forEach(doc => { if (doc.global && doc.globalNamespace) { diff --git a/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.spec.js b/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.spec.js index 556dc1a221..726ae8732a 100644 --- a/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.spec.js +++ b/aio/tools/transforms/angular-api-package/processors/updateGlobalApiPath.spec.js @@ -12,12 +12,12 @@ describe('updateGlobalApiPath processor', () => { it('should run before the correct processor', () => { const processor = processorFactory(); - expect(processor.$runBefore).toEqual(['processNgModuleDocs']); + expect(processor.$runBefore).toEqual(['disambiguateDocPathsProcessor', 'processNgModuleDocs']); }); it('should run after the correct processor', () => { const processor = processorFactory(); - expect(processor.$runAfter).toEqual(['computePathsProcessor']); + expect(processor.$runAfter).toEqual(['paths-computed']); }); it('should update the paths of namespaced global APIs', () => {