Skip to content

Support Angular 21/22 and Ionic 9 - #24

Merged
rdlabo merged 6 commits into
mainfrom
feat/angular-eslint-22-compat
Aug 21, 2026
Merged

Support Angular 21/22 and Ionic 9#24
rdlabo merged 6 commits into
mainfrom
feat/angular-eslint-22-compat

Conversation

@rdlabo

@rdlabo rdlabo commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • support Angular and Angular ESLint 21/22 with Ionic Framework 9
  • replace deny-import-from-ionic-module with prefer-ionic-standalone
  • require Ionic Angular root imports and reject IonicModule, legacy standalone imports, and NgModule-based lazy imports
  • update Ionic attribute checks for boolean autocorrect in Ionic 9
  • add a 21.x to 22.x migration guide and compatibility table
  • verify Angular 21/22 and Ionic Angular 9 peer combinations in CI

Verification

  • lint and TypeScript build
  • 25 Jest suites / 531 tests on Angular 21 and Angular 22 dependency sets
  • isolated Ionic Angular 9 peer fixtures for Angular 21 and 22
  • package export smoke test and pack dry run
  • git diff check

Review

  • approved after iterative maintainer-level review
  • approved after iterative third-party acceptance review
  • unrelated pre-existing documentation edits were excluded from this PR

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the plugin’s dependencies and internal TypeScript ESLint imports to support Angular ESLint 21–22, while aligning tests/docs with updated rule reporting patterns.

Changes:

  • Expand @angular-eslint/template-parser peer dependency range to include v22 and update Angular/TS ESLint/TypeScript dev toolchain versions.
  • Replace @typescript-eslint/utils/dist/... deep imports with public @typescript-eslint/utils imports across multiple rules.
  • Update rule tests to assert messageId + data (instead of full message strings) and document the supported Angular ESLint range.

Reviewed changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tsconfig.json Adds explicit node/jest types to the TS build config.
tests/rules/signal-use-as-signal-template-complex.ts Updates RuleTester expectations to use messageId + data.
src/rules/types.ts Switches TSESTree import to public @typescript-eslint/utils.
src/rules/signal-use-as-signal-template.ts Switches TSESTree import to public @typescript-eslint/utils.
src/rules/prefer-disable-handler.ts Switches TSESTree import to public @typescript-eslint/utils.
src/rules/ionic-attr-type-check.ts Switches TSESTree import to public @typescript-eslint/utils.
src/rules/implements-ionic-lifecycle.ts Consolidates TS ESLint imports and updates ClassElement typing.
src/rules/deny-soft-private-modifier.ts Replaces deep RuleFix import with TSESLint.RuleFix.
src/rules/deny-element.ts Switches TSESTree import to public @typescript-eslint/utils.
README.md Documents Angular ESLint 21–22 support in the Angular/Ionic note.
package.json Updates peer/dev dependency versions for Angular ESLint 22 + TS 6 tooling.
package-lock.json Locks updated dependency graph for the new toolchain versions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/rules/implements-ionic-lifecycle.ts Outdated
import { TSESLint } from '@typescript-eslint/utils';
import { AST_NODE_TYPES } from '@typescript-eslint/types';
import { ClassElement } from '@typescript-eslint/types/dist/generated/ast-spec';
import { AST_NODE_TYPES, TSESLint, TSESTree } from '@typescript-eslint/utils';
@rdlabo rdlabo changed the title Support Angular ESLint 22 Support Angular 21/22 and Ionic 9 Aug 21, 2026
@rdlabo
rdlabo merged commit 698d24f into main Aug 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants