Skip to content

angular: build against v20, allow v22 RC, inject() instead of constructor injection#2573

Open
lucas-koehler wants to merge 4 commits into
masterfrom
lk/angular-update-22rc
Open

angular: build against v20, allow v22 RC, inject() instead of constructor injection#2573
lucas-koehler wants to merge 4 commits into
masterfrom
lk/angular-update-22rc

Conversation

@lucas-koehler
Copy link
Copy Markdown
Contributor

Further changes:

  • use inject() instead of constructor injection: constructor injections are discouraged by angular's lint rules starting with Angular 20
  • Upgrade to typescript ~5.8.3 to be compatible with Angular 20 including a small fix in the vue-vuetify package to keep it compatible with 5.8.3
  • Set minimum dependency age of 72h to reduce likelyhood of supply chain attacks when updating dependencies

I tested this locally with the seed building against 22 RC.0 and it worked fine :) I needed one small code change resulting from an unrelated update of the Angular enum renderer. In addition, constructor injection of custom renderers needed to be replaced as described in the migration doc.
The examples app worked fine for me, too which builds against Angular 20 now, too

Reduce the risk of installing malicious packages when upgrading dependency versions
by only allowing package versions published at least 72h ago.
As most malicious packages are discovered and blocked within this time,
this reduces the risk of accidentally installing them.
- Upgrade to TypeScript ~5.8.3 across all packages
- Fix vue-vuetify build for TypeScript 5.8.3
  - Upgrade vue-tsc from ^2.0.11 to ^2.2.0: vue-tsc 2.0.x monkey-patches
    a TypeScript internal string (`supportedTSExtensions`) that was removed
    in TS 5.8, causing a crash. Version 2.1.0+ uses a compatible approach.
  - Change type-check from `vue-tsc --build --force` to
    `vue-tsc -p tsconfig.lib.json` and remove `composite: true` from
    tsconfig.lib.json: `composite` forces declaration emit validation even
    with `noEmit`, and TS 5.8 hits the serialization length limit (TS7056)
    on several components with complex `defineComponent` return types.
    Declaration files are generated separately by vite-plugin-dts during
    the vite build, so the type-check does not need `composite`.
@netlify
Copy link
Copy Markdown

netlify Bot commented May 18, 2026

Deploy Preview for jsonforms-examples ready!

Name Link
🔨 Latest commit 2515049
🔍 Latest deploy log https://app.netlify.com/projects/jsonforms-examples/deploys/6a0b2dfd3516b40008a09582
😎 Deploy Preview https://deploy-preview-2573--jsonforms-examples.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Replace using constructor injection with using the inject function.
Constructor injections is discouraged by angular's lint rules starting with Angular 20.
@lucas-koehler lucas-koehler force-pushed the lk/angular-update-22rc branch from d248518 to 2515049 Compare May 18, 2026 15:19
@coveralls
Copy link
Copy Markdown

coveralls commented May 18, 2026

Coverage Status

coverage: 82.946% (-0.01%) from 82.959% — lk/angular-update-22rc into master

@lucas-koehler lucas-koehler requested a review from sdirix May 19, 2026 07:18
@lucas-koehler lucas-koehler added this to the 3.8 milestone May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants