feat: migrate to Angular 22 - #45
Merged
Merged
Conversation
sroucheray
force-pushed
the
feat/angular-22
branch
from
August 7, 2026 16:05
ff43eba to
a9d4dfc
Compare
There was a problem hiding this comment.
Pull request overview
Migrates the Nx workspace and the @perfectmemory/ngx-contextmenu library/demo app to Angular 22 (and associated Nx/TypeScript/ESLint tooling updates) to keep the project on current framework and build tooling.
Changes:
- Upgrade Angular packages to v22 and Nx toolchain to v23, including TypeScript 6 and Jest/Storybook updates.
- Adopt ESLint v9 flat config (
eslint.config.mjs) at root and per-project level; remove legacy.eslintrc.json/.eslintignore. - Apply Nx/Angular migration outputs: tsconfig updates, Angular builder switch to
@angular/build:*, and repo hygiene updates (.gitignore,.prettierignore,migrations.json).
Reviewed changes
Copilot reviewed 34 out of 36 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.base.json | Updates root TS compiler options for TS6 migration. |
| package.json | Upgrades Angular/Nx/dev tooling versions. |
| nx.json | Updates Nx defaults/plugins for new executors & lint inputs. |
| migrations.json | Refreshes recorded migration set for new Nx/Angular versions. |
| libs/ngx-contextmenu/tsconfig.spec.json | Suppresses select Angular extended diagnostics for tests. |
| libs/ngx-contextmenu/tsconfig.lib.prod.json | Suppresses select Angular extended diagnostics for prod build. |
| libs/ngx-contextmenu/tsconfig.lib.json | Formatting + extended diagnostics suppression. |
| libs/ngx-contextmenu/tsconfig.json | Adds TS6 ignoreDeprecations for project config loading. |
| libs/ngx-contextmenu/src/stories/Setup.mdx | Documents Angular 22 compatibility row. |
| libs/ngx-contextmenu/src/stories/ngx-contextmenu/ngx-contextmenu.component.ts | Sets ChangeDetectionStrategy.Eager in story component. |
| libs/ngx-contextmenu/src/lib/directives/context-menu/context-menu.directive.spec.ts | Sets ChangeDetectionStrategy.Eager in test host. |
| libs/ngx-contextmenu/src/lib/directives/context-menu/context-menu.directive.integ.spec.ts | Migrates Spectator import to @openng/spectator. |
| libs/ngx-contextmenu/src/lib/directives/context-menu-item/context-menu-item.directive.spec.ts | Sets ChangeDetectionStrategy.Eager in test host. |
| libs/ngx-contextmenu/src/lib/directives/context-menu-content-item/context-menu-content-item.directive.spec.ts | Sets ChangeDetectionStrategy.Eager in test host. |
| libs/ngx-contextmenu/src/lib/components/context-menu/context-menu.component.ts | Sets ChangeDetectionStrategy.Eager on component. |
| libs/ngx-contextmenu/src/lib/components/context-menu-content/context-menu-content.component.html | Applies Angular safe-navigation migration helper call. |
| libs/ngx-contextmenu/project.json | Updates build defaults and revises test target config. |
| libs/ngx-contextmenu/package.json | Updates Angular v22 peer dependency ranges. |
| libs/ngx-contextmenu/eslint.config.mjs | Adds per-project flat ESLint config (Angular + JSON rules). |
| libs/ngx-contextmenu/.storybook/tsconfig.json | Adds TS6 ignoreDeprecations for Storybook tsconfig. |
| libs/ngx-contextmenu/.eslintrc.json | Removes legacy ESLint config (flat config migration). |
| eslint.config.mjs | Adds root ESLint v9 flat config. |
| apps/demo/tsconfig.spec.json | Suppresses select Angular extended diagnostics for tests. |
| apps/demo/tsconfig.json | Adds TS6 ignoreDeprecations for project config loading. |
| apps/demo/tsconfig.app.json | Adds extended diagnostics suppression for app compile. |
| apps/demo/src/main.ts | Switches bootstrap from platformBrowserDynamic to platformBrowser. |
| apps/demo/src/app/app.component.ts | Sets ChangeDetectionStrategy.Eager on component. |
| apps/demo/src/app-demo/app-demo.component.ts | Sets ChangeDetectionStrategy.Eager on component. |
| apps/demo/project.json | Switches to @angular/build:* executors and revises test target config. |
| apps/demo/eslint.config.mjs | Adds per-project flat ESLint config (Angular rules). |
| apps/demo/.eslintrc.json | Removes legacy ESLint config (flat config migration). |
| .prettierignore | Ignores new Nx self-healing directory. |
| .gitignore | Ignores new Nx/Claude-related generated directories. |
| .eslintrc.json | Removes legacy root ESLint config (flat config migration). |
| .eslintignore | Removes legacy eslintignore (flat config migration). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+1
to
+4
| import { dirname } from 'path'; | ||
| import { fileURLToPath } from 'url'; | ||
| import baseConfig from '../../eslint.config.mjs'; | ||
| import nx from '@nx/eslint-plugin'; |
Comment on lines
+1
to
+6
| import { dirname } from 'path'; | ||
| import { fileURLToPath } from 'url'; | ||
| import baseConfig from '../../eslint.config.mjs'; | ||
| import nx from '@nx/eslint-plugin'; | ||
| import jsoncEslintParser from 'jsonc-eslint-parser'; | ||
|
|
Comment on lines
+32
to
37
| "configurations": { | ||
| "ci": { | ||
| "ci": true, | ||
| "coverage": true | ||
| } | ||
| } |
Comment on lines
+72
to
77
| "configurations": { | ||
| "ci": { | ||
| "ci": true, | ||
| "coverage": true | ||
| } | ||
| } |
Comment on lines
26
to
30
| "peerDependencies": { | ||
| "@angular/cdk": "^21.0.5", | ||
| "@angular/common": "^21.0.6", | ||
| "@angular/core": "^21.0.6" | ||
| "@angular/cdk": "^22.0.7", | ||
| "@angular/common": "^22.0.8", | ||
| "@angular/core": "^22.0.8" | ||
| }, |
sroucheray
force-pushed
the
feat/angular-22
branch
from
August 7, 2026 16:15
a9d4dfc to
f55af2c
Compare
sroucheray
force-pushed
the
feat/angular-22
branch
from
August 7, 2026 16:22
f55af2c to
4f1f6aa
Compare
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.
No description provided.