Skip to content

build: update to angular 22 - #538

Open
samuelmbabhazi wants to merge 6 commits into
angular-split:mainfrom
samuelmbabhazi:update/angular-22
Open

samuelmbabhazi wants to merge 6 commits into
angular-split:mainfrom
samuelmbabhazi:update/angular-22

Conversation

@samuelmbabhazi

Copy link
Copy Markdown

What

Updates the toolchain from Angular 20 to Angular 22.1 (stepping through 21 with its migrations), with ngx-bootstrap 22, ng-packagr 22 and TypeScript 6.

TypeScript 6 turns strict null checks and no implicit any on by default, so the library and demo app are made properly null safe instead of opting out: real narrowing in SplitGuttersManagerService, overloads on getPointFromEvent so the touch path types its possible undefined, draggedGutterIndex typed as it is used, and viewChild.required where the demo templates guarantee presence. The deprecated baseUrl is replaced by tsconfig-relative paths. ignoreDeprecations remains only for the ts-node bundled in Cypress 13, which still registers with moduleResolution: node10; it can go once Cypress is upgraded (which #450 will want anyway).

The library's peerDependencies stay at >=19.0.0 and its package.json version is untouched, so the release bump stays a maintainer step and published v20 consumers on older Angular are unaffected.

CI moves from Node 20/22 to 22/24: Angular 22's engines are ^22.22.3 || ^24.15.0, so the 20.x lane would no longer install.

Why

Angular is at 22.1 while the repo toolchain is at 20. #531 (thanks @shlomoa for the groundwork) predates the recent refactors on main (#529, #532) and targets 21, which is already one major behind. This supersedes it with a minimal diff on top of current main: outside the lockfile, 29 files, +141/-88.

Verification

  • npm run build green (library and app)
  • npm run lint green
  • Cypress: all 44 specs passing against the production build
  • npm install resolves with no peer conflicts

Angular 22 requires typescript 6, whose defaults enable strict null
checks and no implicit any. The library gets real narrowing instead of
suppressions and the deprecated baseUrl is replaced by tsconfig-relative
paths. ignoreDeprecations stays only for the ts-node bundled in cypress
13, which still registers with moduleResolution node10.
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.

1 participant