← All recipes
Moderne licensed

Add providePrimeNG with a detected theme preset to the root NgModule

Recipe IDorg.openrewrite.primeng.AddPrimengProviderArtifact@openrewrite/recipes-angular

Wires the v18 styled mode into an NgModule-based app by adding providePrimeNG({ theme: { preset: <Preset> } }) to the root @NgModule's providers array (detected by the presence of a bootstrap: field). The preset is chosen by scanning angular.json for a primeng/resources/themes/<themeName>/theme.css entry: lara-* maps to Lara, md-*/mdc-* to Material, nora/nano to Nora, and any other v17 theme (mira, nova, saga, vela, soho, fluent, viva, rhea, tailwind, bootstrap4, arya, luna, ...) falls back to Aura. The matching imports for providePrimeNG and the chosen preset are added automatically. Also deletes the now-defunct primeng/resources style entries from angular.json so the build doesn't try to load missing files. Idempotent: skips files that already call providePrimeNG.

Composite recipeProprietary

Usage

This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe org.openrewrite.primeng.AddPrimengProvider

If the recipe isn’t available locally, install it with:

mod config recipes npm install @openrewrite/recipes-angular

Definition

This recipe runs the following recipes in order.

  • Remove primeng/resources style references from angular.jsonorg.openrewrite.primeng.AddPrimengProvider.remove-primeng-resources