Repository navigation
Update Angular to 22 - #842
Open
four-random-common-words wants to merge 19 commits into
Open
four-random-common-words wants to merge 19 commits into
four-random-common-words wants to merge 19 commits into
Conversation
… Font Awesome to 5 and ng-idle to 16
four-random-common-words
marked this pull request as draft
October 15, 2026 14:31
four-random-common-words
added this pull request to stack #843
October 15, 2026 14:32
four-random-common-words
marked this pull request as ready for review
October 19, 2026 08:45
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates Angular from 21 to 22. Stacked on #841, review that one first.
Manual test plan:
docs/manual-tests/angular-22-upgrade.mdChanges
@angular/*, CLI / build and Material / CDK 22.2.1,@angular-eslint/*22.5.0>=6.0 <6.1; TypeScript 7 does not ship the compiler API Angular builds on yet@fortawesome/angular-fontawesome4 -> 5 (Angular 22 support only),@ng-idle/*13 -> 16 (no API changes),@types/node20 -> 24 to match the runtimeng updatemigrations, committed untouched in their own commit:ChangeDetectionStrategy.Eager(151 files), so nothing changes at runtimeHttpClientnow defaults to the fetch backend.app.module.tskeeps XHR withwithXhr(): the fetch backend buffersresponseType: 'blob'bodies in JS memory, which would break downloading large wordlists throughgetFile(). ThewithXhr()the migration added to specs is removed again, the testing backend replaces it there?.in templates now returnsundefinedinstead ofnull. The one affected expression (hashtype field on the edit hashlist page) is rewritten to show nothing while loading instead of "null - null"istanbul-lib-instrumentadded for Karma coveragebaseUrlfromtsconfig.json(an error in TypeScript 6 and 7): 38 imports of the form'src/...'now use the@src/...alias. The tsconfigs also type-check cleanly with TypeScript 7tsconfig.jsonis limited tosrc. Before,check-typesalso compileddist/andcoverage/(allowJs), and a minified build chunk declaring a globalitbroke every speceslint.config.mjsnow uses the flat configs of theangular-eslintpackage. Its newprefer-on-push-component-change-detectionrule is off, since the components are deliberately pinned to Eager@angular/animationsandBrowserAnimationsModule(deprecated, removal planned for 23). Material animates with CSS; specs that usedNoopAnimationsModulenow disable Material's animations throughMATERIAL_ANIMATIONS@angular/platform-browser-dynamic: bootstrap and tests useplatformBrowser/platformBrowserTesting. This also drops the JIT compiler from the production bundle@angular/localize(noi18nor$localizeusage)HttpClientTestingModuleandRouterTestingModulein specs@angular-devkit/build-angularKarma framework entry and the unusedisHttpProgressEventhelperFormConfigComponentgets its own selectorapp-form-config; it sharedapp-formwithFormComponent, which Angular 22 rejects as soon as both match an elementNotes
min-release-agein.npmrc. The caret ranges pick up newer patches once they are old enough.zod4.4.3 -> 4.6.5 because the CLI requires the newer version.paramsInheritanceStrategynow defaults to'always'. Every parent route in the app is componentless, so routes already inherited params and data; nothing changes.lint:tokensstill reportsedit-tasks.component.html:142, unchanged by this PR.Testing
check-typesand production build pass