Skip to content

Commit

Permalink
Merge pull request #29677 from ingowagner/next
Browse files Browse the repository at this point in the history
Angular: Default to standalone components in Angular v19
  • Loading branch information
yannbf authored Nov 21, 2024
2 parents 80905a2 + 1c9f923 commit 8ba4fb5
Showing 1 changed file with 9 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
Provider,
ɵReflectionCapabilities as ReflectionCapabilities,
importProvidersFrom,
VERSION,
} from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {
Expand Down Expand Up @@ -176,15 +177,20 @@ export class PropertyExtractor implements NgModuleMetadata {
const isDeclarable = isComponent || isDirective || isPipe;

// Check if the hierarchically lowest Component or Directive decorator (the only relevant for importing dependencies) is standalone.
const isStandalone = !!(

let isStandalone =
(isComponent || isDirective) &&
[...decorators]
.reverse() // reflectionCapabilities returns decorators in a hierarchically top-down order
.find(
(d) =>
this.isDecoratorInstanceOf(d, 'Component') || this.isDecoratorInstanceOf(d, 'Directive')
)?.standalone
);
)?.standalone;

//Starting in Angular 19 the default (in case it's undefined) value for standalone is true
if (isStandalone === undefined) {
isStandalone = !!(VERSION.major && Number(VERSION.major) >= 19);
}

return { isDeclarable, isStandalone };
};
Expand Down

0 comments on commit 8ba4fb5

Please sign in to comment.