@nx/angular 20.2.0-canary.20241129-2cb58b9 → 20.2.0-canary.20241203-6b87005
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/executors.json +1 -1
- package/fesm2022/nx-angular-mf.mjs.map +1 -1
- package/fesm2022/nx-angular-testing.mjs.map +1 -1
- package/fesm2022/nx-angular.mjs.map +1 -1
- package/generators.json +1 -1
- package/migrations.json +151 -1
- package/package.json +8 -15
- package/src/builders/dev-server/lib/normalize-options.js +3 -0
- package/src/builders/dev-server/lib/validate-options.js +1 -9
- package/src/builders/dev-server/schema.json +3 -4
- package/src/executors/application/application.impl.d.ts +1 -1
- package/src/executors/application/application.impl.js +4 -1
- package/src/executors/application/schema.json +78 -6
- package/src/executors/application/utils/normalize-options.d.ts +2 -0
- package/src/executors/application/utils/normalize-options.js +33 -0
- package/src/executors/application/utils/validate-options.js +18 -4
- package/src/executors/browser-esbuild/browser-esbuild.impl.d.ts +1 -1
- package/src/executors/browser-esbuild/browser-esbuild.impl.js +0 -9
- package/src/executors/browser-esbuild/schema.json +1 -1
- package/src/executors/delegate-build/delegate-build.impl.d.ts +1 -1
- package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +1 -1
- package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +1 -1
- package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +8 -12
- package/src/executors/module-federation-ssr-dev-server/schema.d.ts +2 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.d.ts +1 -2
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-packagr.js +11 -20
- package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.d.ts +1 -1
- package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +1 -1
- package/src/executors/ng-packagr-lite/schema.json +0 -8
- package/src/executors/package/ng-packagr-adjustments/ng-packagr.d.ts +1 -2
- package/src/executors/package/ng-packagr-adjustments/ng-packagr.js +4 -21
- package/src/executors/package/package.impl.d.ts +2 -2
- package/src/executors/package/package.impl.js +1 -1
- package/src/executors/package/schema.d.ts +1 -3
- package/src/executors/package/schema.json +0 -10
- package/src/executors/utilities/ng-packagr/{stylesheet-processor.js → pre-v19/stylesheet-processor.js} +2 -2
- package/src/executors/utilities/ng-packagr/stylesheet-processor.di.js +11 -5
- package/src/executors/utilities/ng-packagr/tailwindcss.d.ts +0 -6
- package/src/executors/utilities/ng-packagr/tailwindcss.js +0 -32
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.d.ts +23 -0
- package/src/executors/utilities/ng-packagr/v19+/stylesheet-processor.js +93 -0
- package/src/generators/application/application.js +1 -0
- package/src/generators/application/files/ng-module/src/app/app.component.ts__tpl__ +4 -5
- package/src/generators/application/files/nx-welcome/claimed/ng-module/src/app/nx-welcome.component.ts__tpl__ +2 -1
- package/src/generators/application/files/nx-welcome/claimed/standalone/src/app/nx-welcome.component.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/not-configured/ng-module/src/app/nx-welcome.component.ts__tpl__ +2 -1
- package/src/generators/application/files/nx-welcome/not-configured/standalone/src/app/nx-welcome.component.ts__tpl__ +2 -2
- package/src/generators/application/files/nx-welcome/unclaimed/ng-module/src/app/nx-welcome.component.ts__tpl__ +2 -1
- package/src/generators/application/files/nx-welcome/unclaimed/standalone/src/app/nx-welcome.component.ts__tpl__ +2 -2
- package/src/generators/application/files/standalone-components/src/app/app.component.ts__tpl__ +4 -6
- package/src/generators/application/lib/add-serve-static-target.d.ts +1 -1
- package/src/generators/application/lib/add-serve-static-target.js +1 -3
- package/src/generators/application/lib/create-files.js +4 -1
- package/src/generators/application/lib/create-project.js +24 -31
- package/src/generators/application/lib/normalize-options.js +1 -6
- package/src/generators/application/schema.d.ts +1 -0
- package/src/generators/application/schema.json +7 -2
- package/src/generators/component/component.js +4 -0
- package/src/generators/component/files/__fileName__.spec.ts__tpl__ +1 -1
- package/src/generators/component/files/__fileName__.ts__tpl__ +5 -13
- package/src/generators/component/lib/normalize-options.js +2 -0
- package/src/generators/component/schema.d.ts +1 -0
- package/src/generators/component/schema.json +5 -0
- package/src/generators/convert-to-application-executor/convert-to-application-executor.js +1 -4
- package/src/generators/convert-to-application-executor/schema.json +1 -1
- package/src/generators/directive/directive.js +5 -0
- package/src/generators/directive/files/__fileName__.ts__tpl__ +2 -2
- package/src/generators/directive/lib/normalize-options.js +3 -1
- package/src/generators/host/files/common/{v17+/src → src}/main.server.ts__tmpl__ +1 -1
- package/src/generators/host/lib/update-ssr-setup.js +2 -1
- package/src/generators/host/schema.d.ts +1 -0
- package/src/generators/host/schema.json +4 -0
- package/src/generators/pipe/files/__fileName__.ts__tpl__ +2 -2
- package/src/generators/pipe/lib/normalize-options.js +3 -1
- package/src/generators/pipe/pipe.js +5 -0
- package/src/generators/remote/files/common/{v17+/src → src}/main.server.ts__tmpl__ +1 -1
- package/src/generators/remote/lib/update-ssr-setup.js +2 -1
- package/src/generators/remote/schema.d.ts +1 -0
- package/src/generators/remote/schema.json +4 -0
- package/src/generators/scam/lib/normalize-options.js +3 -1
- package/src/generators/scam-directive/lib/normalize-options.js +3 -1
- package/src/generators/scam-pipe/lib/normalize-options.js +3 -1
- package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.d.ts +1 -1
- package/src/generators/scam-to-standalone/lib/convert-scam-to-standalone.js +5 -4
- package/src/generators/setup-mf/files/entry-module-files/entry.component.ts__tmpl__ +2 -1
- package/src/generators/setup-mf/files/standalone-entry-component-files/entry.component.ts__tmpl__ +2 -2
- package/src/generators/setup-mf/lib/add-remote-entry.js +5 -0
- package/src/generators/setup-ssr/files/{server → pre-v19/server}/application-builder/__serverFileName__ +1 -1
- package/src/generators/setup-ssr/files/{server/server-builder/v17+ → pre-v19/server/server-builder}/__serverFileName__ +1 -1
- package/src/generators/setup-ssr/files/v19+/application-builder/ngmodule-src/__main__ +1 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/ngmodule-src/app/__rootModuleFileName__ +13 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/ngmodule-src/app/app.routes.server.ts__tpl__ +8 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/server/__serverFileName__ +66 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/standalone-src/__main__ +7 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/standalone-src/app/app.config.server.ts__tpl__ +14 -0
- package/src/generators/setup-ssr/files/v19+/application-builder/standalone-src/app/app.routes.server.ts__tpl__ +8 -0
- package/src/generators/setup-ssr/files/v19+/application-builder-common-engine/server/__serverFileName__ +65 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/ngmodule-src/__main__ +1 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/ngmodule-src/app/__rootModuleFileName__ +14 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/root/tsconfig.server.json.template +16 -0
- package/src/generators/setup-ssr/files/{server/server-builder/pre-v17 → v19+/server-builder/server}/__serverFileName__ +25 -15
- package/src/generators/setup-ssr/files/v19+/server-builder/standalone-src/__main__ +7 -0
- package/src/generators/setup-ssr/files/v19+/server-builder/standalone-src/app/app.config.server.ts.template +11 -0
- package/src/generators/setup-ssr/lib/add-dependencies.js +6 -17
- package/src/generators/setup-ssr/lib/add-hydration.d.ts +2 -2
- package/src/generators/setup-ssr/lib/add-hydration.js +10 -2
- package/src/generators/setup-ssr/lib/add-server-file.d.ts +2 -2
- package/src/generators/setup-ssr/lib/add-server-file.js +24 -10
- package/src/generators/setup-ssr/lib/generate-files.d.ts +2 -2
- package/src/generators/setup-ssr/lib/generate-files.js +20 -8
- package/src/generators/setup-ssr/lib/generate-server-ts-config.d.ts +3 -3
- package/src/generators/setup-ssr/lib/generate-server-ts-config.js +24 -3
- package/src/generators/setup-ssr/lib/normalize-options.d.ts +3 -14
- package/src/generators/setup-ssr/lib/normalize-options.js +23 -6
- package/src/generators/setup-ssr/lib/set-router-initial-navigation.d.ts +2 -2
- package/src/generators/setup-ssr/lib/update-project-config.d.ts +3 -3
- package/src/generators/setup-ssr/lib/update-project-config.js +36 -24
- package/src/generators/setup-ssr/lib/validate-options.js +5 -0
- package/src/generators/setup-ssr/schema.d.ts +5 -0
- package/src/generators/setup-ssr/schema.json +6 -8
- package/src/generators/setup-ssr/setup-ssr.js +6 -11
- package/src/generators/setup-tailwind/lib/index.d.ts +1 -1
- package/src/generators/setup-tailwind/lib/index.js +1 -1
- package/src/generators/setup-tailwind/lib/update-application-styles.js +1 -1
- package/src/generators/setup-tailwind/lib/validate-build-target.d.ts +3 -0
- package/src/generators/setup-tailwind/lib/{add-tailwind-config-path-to-project.js → validate-build-target.js} +4 -15
- package/src/generators/setup-tailwind/setup-tailwind.js +4 -1
- package/src/generators/utils/storybook-ast/component-info.js +12 -2
- package/src/generators/utils/validations.d.ts +1 -0
- package/src/generators/utils/validations.js +10 -0
- package/src/generators/utils/version-utils.js +2 -2
- package/src/migrations/update-20-2-0/add-localize-polyfill-to-targets.d.ts +3 -0
- package/src/migrations/update-20-2-0/add-localize-polyfill-to-targets.js +48 -0
- package/src/migrations/update-20-2-0/update-angular-cli.d.ts +3 -0
- package/src/migrations/update-20-2-0/update-angular-cli.js +23 -0
- package/src/migrations/update-20-2-0/update-angular-ssr-imports-to-use-node-entry-point.d.ts +2 -0
- package/src/migrations/update-20-2-0/update-angular-ssr-imports-to-use-node-entry-point.js +55 -0
- package/src/utils/backward-compatible-versions.d.ts +4 -4
- package/src/utils/backward-compatible-versions.js +20 -19
- package/src/utils/nx-devkit/ast-utils.d.ts +10 -1
- package/src/utils/nx-devkit/ast-utils.js +32 -9
- package/src/utils/versions.d.ts +7 -7
- package/src/utils/versions.js +7 -7
- package/esm2022/index.mjs +0 -2
- package/esm2022/mf/index.mjs +0 -2
- package/esm2022/mf/mf.mjs +0 -116
- package/esm2022/mf/nx-angular-mf.mjs +0 -5
- package/esm2022/nx-angular.mjs +0 -5
- package/esm2022/src/runtime/nx/data-persistence.mjs +0 -349
- package/esm2022/testing/index.mjs +0 -2
- package/esm2022/testing/nx-angular-testing.mjs +0 -5
- package/esm2022/testing/src/testing-utils.mjs +0 -38
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.di.d.ts +0 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.di.js +0 -27
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.transform.d.ts +0 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/compile-ngc.transform.js +0 -53
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.di.d.ts +0 -15
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.di.js +0 -28
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.transform.d.ts +0 -30
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/entry-point.transform.js +0 -52
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.di.d.ts +0 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.di.js +0 -20
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.transform.d.ts +0 -9
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/entry-point/write-package.transform.js +0 -320
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/options.di.d.ts +0 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/options.di.js +0 -35
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/package.di.d.ts +0 -14
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ng-package/package.di.js +0 -37
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ngc/compile-source-files.d.ts +0 -12
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/ngc/compile-source-files.js +0 -178
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.d.ts +0 -42
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.di.d.ts +0 -10
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.di.js +0 -17
- package/src/executors/ng-packagr-lite/ng-packagr-adjustments/pre-v17/styles/stylesheet-processor.js +0 -201
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.di.d.ts +0 -14
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.di.js +0 -26
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.d.ts +0 -12
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +0 -71
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/entry-point.di.d.ts +0 -13
- package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/entry-point.di.js +0 -32
- package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.d.ts +0 -14
- package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.js +0 -35
- package/src/executors/package/ng-packagr-adjustments/ng-package/package.di.d.ts +0 -14
- package/src/executors/package/ng-packagr-adjustments/ng-package/package.di.js +0 -37
- package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.d.ts +0 -13
- package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +0 -183
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.d.ts +0 -36
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.di.d.ts +0 -10
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.di.js +0 -17
- package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +0 -194
- package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.d.ts +0 -1
- package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.js +0 -9
- package/src/generators/host/files/common/pre-v17/src/main.server.ts__tmpl__ +0 -66
- package/src/generators/remote/files/common/pre-v17/src/main.server.ts__tmpl__ +0 -72
- package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.d.ts +0 -3
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.di.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.di.js +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.transform.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-bundles.transform.js +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.di.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.di.js +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.transform.d.ts +0 -0
- /package/src/executors/ng-packagr-lite/ng-packagr-adjustments/{v17+ → pre-v19}/ng-package/entry-point/write-package.transform.js +0 -0
- /package/src/executors/utilities/ng-packagr/{stylesheet-processor.d.ts → pre-v19/stylesheet-processor.d.ts} +0 -0
- /package/src/generators/setup-ssr/files/{ngmodule/src → pre-v19/ngmodule-src}/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{ngmodule/src → pre-v19/ngmodule-src}/app/__rootModuleFileName__ +0 -0
- /package/src/generators/setup-ssr/files/{root → pre-v19/root}/tsconfig.server.json__tpl__ +0 -0
- /package/src/generators/setup-ssr/files/{standalone/src → pre-v19/standalone-src}/__main__ +0 -0
- /package/src/generators/setup-ssr/files/{standalone/src → pre-v19/standalone-src}/app/app.config.server.ts__tpl__ +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Component({
|
|
4
|
-
selector: '<%= nxWelcomeSelector %>'
|
|
4
|
+
selector: '<%= nxWelcomeSelector %>',<% if (setStandaloneFalse) { %>
|
|
5
|
+
standalone: false,<% } %>
|
|
5
6
|
template: `
|
|
6
7
|
<!--
|
|
7
8
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
@@ -2,8 +2,8 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
|
-
selector: '<%= nxWelcomeSelector %>'
|
|
6
|
-
standalone: true
|
|
5
|
+
selector: '<%= nxWelcomeSelector %>',<% if (setStandaloneTrue) { %>
|
|
6
|
+
standalone: true,<% } %>
|
|
7
7
|
imports: [CommonModule],
|
|
8
8
|
template: `
|
|
9
9
|
<!--
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Component({
|
|
4
|
-
selector: '<%= nxWelcomeSelector %>'
|
|
4
|
+
selector: '<%= nxWelcomeSelector %>',<% if (setStandaloneFalse) { %>
|
|
5
|
+
standalone: false,<% } %>
|
|
5
6
|
template: `
|
|
6
7
|
<!--
|
|
7
8
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
@@ -2,8 +2,8 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
|
-
selector: '<%= nxWelcomeSelector %>'
|
|
6
|
-
standalone: true
|
|
5
|
+
selector: '<%= nxWelcomeSelector %>',<% if (setStandaloneTrue) { %>
|
|
6
|
+
standalone: true,<% } %>
|
|
7
7
|
imports: [CommonModule],
|
|
8
8
|
template: `
|
|
9
9
|
<!--
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Component({
|
|
4
|
-
selector: '<%= nxWelcomeSelector %>'
|
|
4
|
+
selector: '<%= nxWelcomeSelector %>',<% if (setStandaloneFalse) { %>
|
|
5
|
+
standalone: false,<% } %>
|
|
5
6
|
template: `
|
|
6
7
|
<!--
|
|
7
8
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
@@ -2,8 +2,8 @@ import { Component, ViewEncapsulation } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
|
|
4
4
|
@Component({
|
|
5
|
-
selector: '<%= nxWelcomeSelector %>'
|
|
6
|
-
standalone: true
|
|
5
|
+
selector: '<%= nxWelcomeSelector %>',<% if (setStandaloneTrue) { %>
|
|
6
|
+
standalone: true,<% } %>
|
|
7
7
|
imports: [CommonModule],
|
|
8
8
|
template: `
|
|
9
9
|
<!--
|
package/src/generators/application/files/standalone-components/src/app/app.component.ts__tpl__
CHANGED
|
@@ -2,16 +2,14 @@ import { Component<% if(viewEncapsulation) { %>, ViewEncapsulation<% } %> } from
|
|
|
2
2
|
import { RouterModule } from '@angular/router';<% } %><% if(!minimal) { %>
|
|
3
3
|
import { NxWelcomeComponent } from './nx-welcome.component';<% } %>
|
|
4
4
|
|
|
5
|
-
@Component({
|
|
6
|
-
standalone: true
|
|
5
|
+
@Component({<% if (setStandaloneTrue) { %>
|
|
6
|
+
standalone: true,<% } %>
|
|
7
7
|
imports: [<% if(!minimal) { %>NxWelcomeComponent, <% } %><% if(routing) { %>RouterModule<% } %>],
|
|
8
8
|
selector: '<%= rootSelector %>',<% if(!inlineTemplate) { %>
|
|
9
9
|
templateUrl: './app.component.html',<% } else { %>
|
|
10
|
-
template: `<% if(minimal) { %><h1>Welcome <%= appName %></h1><% } else { %><<%= nxWelcomeSelector %>></<%= nxWelcomeSelector %>><% } %> <% if(routing) { %><router-outlet></router-outlet><% } %>`,<% } %><% if
|
|
11
|
-
styleUrls: ['./app.component.<%= style %>'],<% } else { %>
|
|
12
|
-
styles: [``],<% } %><% } else { if(!inlineStyle) { %>
|
|
10
|
+
template: `<% if(minimal) { %><h1>Welcome <%= appName %></h1><% } else { %><<%= nxWelcomeSelector %>></<%= nxWelcomeSelector %>><% } %> <% if(routing) { %><router-outlet></router-outlet><% } %>`,<% } %><% if(!inlineStyle) { %>
|
|
13
11
|
styleUrl: './app.component.<%= style %>',<% } else { %>
|
|
14
|
-
styles: ``,<% } %><%
|
|
12
|
+
styles: ``,<% } %><% if(viewEncapsulation) { %>
|
|
15
13
|
encapsulation: ViewEncapsulation.<%= viewEncapsulation %>,<% } %>
|
|
16
14
|
})
|
|
17
15
|
export class AppComponent {<% if(!minimal) { %>
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.addServeStaticTarget = addServeStaticTarget;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const versions_1 = require("../../../utils/versions");
|
|
6
|
-
const version_utils_1 = require("../../utils/version-utils");
|
|
7
6
|
function addServeStaticTarget(tree, options, port) {
|
|
8
7
|
addFileServerTarget(tree, options, 'serve-static', port);
|
|
9
8
|
}
|
|
@@ -11,8 +10,7 @@ function addFileServerTarget(tree, options, targetName, e2ePort) {
|
|
|
11
10
|
if (!options.skipPackageJson) {
|
|
12
11
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@nx/web': versions_1.nxVersion });
|
|
13
12
|
}
|
|
14
|
-
const
|
|
15
|
-
const isUsingApplicationBuilder = angularMajorVersion >= 17 && options.bundler === 'esbuild';
|
|
13
|
+
const isUsingApplicationBuilder = options.bundler === 'esbuild';
|
|
16
14
|
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.name);
|
|
17
15
|
projectConfig.targets[targetName] = {
|
|
18
16
|
executor: '@nx/web:file-server',
|
|
@@ -11,7 +11,7 @@ const version_utils_1 = require("../../utils/version-utils");
|
|
|
11
11
|
const onboarding_1 = require("nx/src/nx-cloud/utilities/onboarding");
|
|
12
12
|
async function createFiles(tree, options, rootOffset) {
|
|
13
13
|
const { major: angularMajorVersion, version: angularVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
14
|
-
const isUsingApplicationBuilder =
|
|
14
|
+
const isUsingApplicationBuilder = options.bundler === 'esbuild';
|
|
15
15
|
const disableModernClassFieldsBehavior = (0, semver_1.lt)(angularVersion, '18.1.0-rc.0');
|
|
16
16
|
const rootSelector = `${options.prefix}-root`;
|
|
17
17
|
(0, selector_1.validateHtmlSelector)(rootSelector);
|
|
@@ -38,6 +38,9 @@ async function createFiles(tree, options, rootOffset) {
|
|
|
38
38
|
disableModernClassFieldsBehavior,
|
|
39
39
|
useEventCoalescing: angularMajorVersion >= 18,
|
|
40
40
|
useRouterTestingModule: angularMajorVersion < 18,
|
|
41
|
+
// Angular v19 or higher defaults to true, while v18 or lower defaults to false
|
|
42
|
+
setStandaloneFalse: angularMajorVersion >= 19,
|
|
43
|
+
setStandaloneTrue: angularMajorVersion < 19,
|
|
41
44
|
connectCloudUrl,
|
|
42
45
|
tutorialUrl: options.standalone
|
|
43
46
|
? 'https://nx.dev/getting-started/tutorials/angular-standalone-tutorial?utm_source=nx-project'
|
|
@@ -8,36 +8,29 @@ function createProject(tree, options) {
|
|
|
8
8
|
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
9
9
|
const buildExecutor = options.bundler === 'webpack'
|
|
10
10
|
? '@angular-devkit/build-angular:browser'
|
|
11
|
-
:
|
|
12
|
-
|
|
13
|
-
: '@angular-devkit/build-angular:browser-esbuild';
|
|
14
|
-
const buildTargetOptionName = angularMajorVersion >= 17 ? 'buildTarget' : 'browserTarget';
|
|
15
|
-
const buildMainOptionName = angularMajorVersion >= 17 && options.bundler === 'esbuild'
|
|
16
|
-
? 'browser'
|
|
17
|
-
: 'main';
|
|
11
|
+
: '@angular-devkit/build-angular:application';
|
|
12
|
+
const buildMainOptionName = options.bundler === 'esbuild' ? 'browser' : 'main';
|
|
18
13
|
(0, target_defaults_utils_1.addBuildTargetDefaults)(tree, buildExecutor);
|
|
19
14
|
let budgets = undefined;
|
|
20
|
-
if (options.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
];
|
|
40
|
-
}
|
|
15
|
+
if (options.strict) {
|
|
16
|
+
budgets = [
|
|
17
|
+
{ type: 'initial', maximumWarning: '500kb', maximumError: '1mb' },
|
|
18
|
+
{
|
|
19
|
+
type: 'anyComponentStyle',
|
|
20
|
+
maximumWarning: '4kb',
|
|
21
|
+
maximumError: '8kb',
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
budgets = [
|
|
27
|
+
{ type: 'initial', maximumWarning: '2mb', maximumError: '5mb' },
|
|
28
|
+
{
|
|
29
|
+
type: 'anyComponentStyle',
|
|
30
|
+
maximumWarning: '6kb',
|
|
31
|
+
maximumError: '10kb',
|
|
32
|
+
},
|
|
33
|
+
];
|
|
41
34
|
}
|
|
42
35
|
const inlineStyleLanguage = options?.style !== 'css' ? options.style : undefined;
|
|
43
36
|
const project = {
|
|
@@ -97,10 +90,10 @@ function createProject(tree, options) {
|
|
|
97
90
|
: undefined,
|
|
98
91
|
configurations: {
|
|
99
92
|
production: {
|
|
100
|
-
|
|
93
|
+
buildTarget: `${options.name}:build:production`,
|
|
101
94
|
},
|
|
102
95
|
development: {
|
|
103
|
-
|
|
96
|
+
buildTarget: `${options.name}:build:development`,
|
|
104
97
|
},
|
|
105
98
|
},
|
|
106
99
|
defaultConfiguration: 'development',
|
|
@@ -108,7 +101,7 @@ function createProject(tree, options) {
|
|
|
108
101
|
'extract-i18n': {
|
|
109
102
|
executor: '@angular-devkit/build-angular:extract-i18n',
|
|
110
103
|
options: {
|
|
111
|
-
|
|
104
|
+
buildTarget: `${options.name}:build`,
|
|
112
105
|
},
|
|
113
106
|
},
|
|
114
107
|
},
|
|
@@ -5,7 +5,6 @@ const devkit_1 = require("@nx/devkit");
|
|
|
5
5
|
const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
|
|
6
6
|
const eslint_1 = require("@nx/eslint");
|
|
7
7
|
const test_runners_1 = require("../../../utils/test-runners");
|
|
8
|
-
const version_utils_1 = require("../../utils/version-utils");
|
|
9
8
|
async function normalizeOptions(host, options) {
|
|
10
9
|
await (0, project_name_and_root_utils_1.ensureProjectName)(host, options, 'application');
|
|
11
10
|
const { projectName: appProjectName, projectRoot: appProjectRoot } = await (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(host, {
|
|
@@ -20,11 +19,7 @@ async function normalizeOptions(host, options) {
|
|
|
20
19
|
const parsedTags = options.tags
|
|
21
20
|
? options.tags.split(',').map((s) => s.trim())
|
|
22
21
|
: [];
|
|
23
|
-
|
|
24
|
-
if (!bundler) {
|
|
25
|
-
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(host);
|
|
26
|
-
bundler = angularMajorVersion >= 17 ? 'esbuild' : 'webpack';
|
|
27
|
-
}
|
|
22
|
+
const bundler = options.bundler ?? 'esbuild';
|
|
28
23
|
// Set defaults and then overwrite with user options
|
|
29
24
|
return {
|
|
30
25
|
style: 'css',
|
|
@@ -169,9 +169,10 @@
|
|
|
169
169
|
"default": false
|
|
170
170
|
},
|
|
171
171
|
"bundler": {
|
|
172
|
-
"description": "Bundler to use to build the application.
|
|
172
|
+
"description": "Bundler to use to build the application.",
|
|
173
173
|
"type": "string",
|
|
174
|
-
"enum": ["
|
|
174
|
+
"enum": ["esbuild", "webpack"],
|
|
175
|
+
"default": "esbuild",
|
|
175
176
|
"x-prompt": "Which bundler do you want to use to build the application?",
|
|
176
177
|
"x-priority": "important"
|
|
177
178
|
},
|
|
@@ -180,6 +181,10 @@
|
|
|
180
181
|
"type": "boolean",
|
|
181
182
|
"x-prompt": "Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)?",
|
|
182
183
|
"default": false
|
|
184
|
+
},
|
|
185
|
+
"serverRouting": {
|
|
186
|
+
"description": "Creates a server application using the Server Routing and App Engine APIs (Developer Preview). _Note: this is only supported in Angular versions >= 19.0.0_.",
|
|
187
|
+
"type": "boolean"
|
|
183
188
|
}
|
|
184
189
|
},
|
|
185
190
|
"additionalProperties": false,
|
|
@@ -12,6 +12,7 @@ async function componentGenerator(tree, rawOptions) {
|
|
|
12
12
|
name: options.name,
|
|
13
13
|
fileName: options.fileName,
|
|
14
14
|
symbolName: options.symbolName,
|
|
15
|
+
exportDefault: options.exportDefault,
|
|
15
16
|
style: options.style,
|
|
16
17
|
inlineStyle: options.inlineStyle,
|
|
17
18
|
inlineTemplate: options.inlineTemplate,
|
|
@@ -21,6 +22,9 @@ async function componentGenerator(tree, rawOptions) {
|
|
|
21
22
|
viewEncapsulation: options.viewEncapsulation,
|
|
22
23
|
displayBlock: options.displayBlock,
|
|
23
24
|
selector: options.selector,
|
|
25
|
+
// Angular v19 or higher defaults to true, while v18 or lower defaults to false
|
|
26
|
+
setStandalone: (angularMajorVersion >= 19 && !options.standalone) ||
|
|
27
|
+
(angularMajorVersion < 19 && options.standalone),
|
|
24
28
|
angularMajorVersion,
|
|
25
29
|
tpl: '',
|
|
26
30
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
-
import { <%= symbolName %> } from './<%= fileName %>';
|
|
2
|
+
import <% if (exportDefault) { %><%= symbolName %><% } else { %>{ <%= symbolName %> }<% } %> from './<%= fileName %>';
|
|
3
3
|
|
|
4
4
|
describe('<%= symbolName %>', () => {
|
|
5
5
|
let component: <%= symbolName %>;
|
|
@@ -2,26 +2,18 @@ import { <% if(changeDetection !== 'Default') { %>ChangeDetectionStrategy, <% }%
|
|
|
2
2
|
import { CommonModule } from '@angular/common';<% } %>
|
|
3
3
|
|
|
4
4
|
@Component({<% if(!skipSelector) {%>
|
|
5
|
-
selector: '<%= selector %>',<%}%><% if(
|
|
6
|
-
standalone:
|
|
5
|
+
selector: '<%= selector %>',<%}%><% if (setStandalone) { %>
|
|
6
|
+
standalone: <%= standalone %>,<% } %><% if(standalone) { %>
|
|
7
7
|
imports: [CommonModule],<%}%><% if(inlineTemplate) { %>
|
|
8
8
|
template: `<p><%= name %> works!</p>`<% } else { %>
|
|
9
|
-
templateUrl: './<%= fileName %>.html'<% } if
|
|
10
|
-
styles: [<% if(displayBlock){ %>
|
|
11
|
-
`
|
|
12
|
-
:host {
|
|
13
|
-
display: block;
|
|
14
|
-
}
|
|
15
|
-
`<% } %>
|
|
16
|
-
]<% } else if (style !== 'none') { %>,
|
|
17
|
-
styleUrls: ['./<%= fileName %>.<%= style %>']<% } %><% } else { if(inlineStyle) { %>,
|
|
9
|
+
templateUrl: './<%= fileName %>.html'<% } if(inlineStyle) { %>,
|
|
18
10
|
styles: `<% if(displayBlock){ %>
|
|
19
11
|
:host {
|
|
20
12
|
display: block;
|
|
21
13
|
}
|
|
22
14
|
<% } %>`<% } else if (style !== 'none') { %>,
|
|
23
|
-
styleUrl: './<%= fileName %>.<%= style %>'<% } %><%
|
|
15
|
+
styleUrl: './<%= fileName %>.<%= style %>'<% } %><% if(!!viewEncapsulation) { %>,
|
|
24
16
|
encapsulation: ViewEncapsulation.<%= viewEncapsulation %><% } if (changeDetection !== 'Default') { %>,
|
|
25
17
|
changeDetection: ChangeDetectionStrategy.<%= changeDetection %><% } %>
|
|
26
18
|
})
|
|
27
|
-
export class <%= symbolName %> {}
|
|
19
|
+
export <% if (exportDefault) {%>default <%}%>class <%= symbolName %> {}
|
|
@@ -4,6 +4,7 @@ exports.normalizeOptions = normalizeOptions;
|
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
6
|
const selector_1 = require("../../utils/selector");
|
|
7
|
+
const validations_1 = require("../../utils/validations");
|
|
7
8
|
async function normalizeOptions(tree, options) {
|
|
8
9
|
options.type ??= 'component';
|
|
9
10
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
@@ -14,6 +15,7 @@ async function normalizeOptions(tree, options) {
|
|
|
14
15
|
const { className } = (0, devkit_1.names)(name);
|
|
15
16
|
const { className: suffixClassName } = (0, devkit_1.names)(options.type);
|
|
16
17
|
const symbolName = `${className}${suffixClassName}`;
|
|
18
|
+
(0, validations_1.validateClassName)(symbolName);
|
|
17
19
|
const { prefix, root, sourceRoot } = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
|
18
20
|
const selector = options.selector ?? (0, selector_1.buildSelector)(name, options.prefix, prefix, 'fileName');
|
|
19
21
|
(0, selector_1.validateHtmlSelector)(selector);
|
|
@@ -104,6 +104,11 @@
|
|
|
104
104
|
"default": false,
|
|
105
105
|
"x-priority": "important"
|
|
106
106
|
},
|
|
107
|
+
"exportDefault": {
|
|
108
|
+
"type": "boolean",
|
|
109
|
+
"default": false,
|
|
110
|
+
"description": "Use default export for the component instead of a named export."
|
|
111
|
+
},
|
|
107
112
|
"skipFormat": {
|
|
108
113
|
"description": "Skip formatting files.",
|
|
109
114
|
"type": "boolean",
|
|
@@ -26,10 +26,7 @@ const redundantExecutors = new Set([
|
|
|
26
26
|
'@nx/angular:webpack-server',
|
|
27
27
|
]);
|
|
28
28
|
async function convertToApplicationExecutor(tree, options) {
|
|
29
|
-
const {
|
|
30
|
-
if (angularMajorVersion < 17) {
|
|
31
|
-
throw new Error(`The "convert-to-application-executor" generator is only supported in Angular >= 17.0.0. You are currently using "${angularVersion}".`);
|
|
32
|
-
}
|
|
29
|
+
const { version: angularVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
33
30
|
let didAnySucceed = false;
|
|
34
31
|
if (options.project) {
|
|
35
32
|
(0, validations_1.validateProject)(tree, options.project);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/schema",
|
|
3
3
|
"$id": "NxAngularConvertToApplicationExecutorGenerator",
|
|
4
4
|
"cli": "nx",
|
|
5
|
-
"title": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder.
|
|
5
|
+
"title": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder.",
|
|
6
6
|
"description": "Converts a project or all projects using one of the `@angular-devkit/build-angular:browser`, `@angular-devkit/build-angular:browser-esbuild`, `@nx/angular:browser` and `@nx/angular:browser-esbuild` executors to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. If the converted target is using one of the `@nx/angular` executors, the `@nx/angular:application` executor will be used. Otherwise, the `@angular-devkit/build-angular:application` builder will be used.",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
|
@@ -3,14 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.directiveGenerator = directiveGenerator;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
6
7
|
const lib_1 = require("./lib");
|
|
7
8
|
async function directiveGenerator(tree, schema) {
|
|
8
9
|
const options = await (0, lib_1.normalizeOptions)(tree, schema);
|
|
10
|
+
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
9
11
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), options.directory, {
|
|
10
12
|
selector: options.selector,
|
|
11
13
|
symbolName: options.symbolName,
|
|
12
14
|
fileName: options.fileName,
|
|
13
15
|
standalone: options.standalone,
|
|
16
|
+
// Angular v19 or higher defaults to true, while v18 or lower defaults to false
|
|
17
|
+
setStandalone: (angularMajorVersion >= 19 && !options.standalone) ||
|
|
18
|
+
(angularMajorVersion < 19 && options.standalone),
|
|
14
19
|
tpl: '',
|
|
15
20
|
});
|
|
16
21
|
if (options.skipTests) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Directive({
|
|
4
|
-
selector: '[<%= selector %>]'<% if(
|
|
5
|
-
standalone:
|
|
4
|
+
selector: '[<%= selector %>]'<% if (setStandalone) { %>,
|
|
5
|
+
standalone: <%= standalone %><% } %>
|
|
6
6
|
})
|
|
7
7
|
export class <%= symbolName %> {
|
|
8
8
|
constructor() {}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const selector_1 = require("../../utils/selector");
|
|
6
5
|
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
|
+
const selector_1 = require("../../utils/selector");
|
|
7
|
+
const validations_1 = require("../../utils/validations");
|
|
7
8
|
async function normalizeOptions(tree, options) {
|
|
8
9
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
9
10
|
name: options.name,
|
|
@@ -13,6 +14,7 @@ async function normalizeOptions(tree, options) {
|
|
|
13
14
|
const { className } = (0, devkit_1.names)(name);
|
|
14
15
|
const { className: suffixClassName } = (0, devkit_1.names)('directive');
|
|
15
16
|
const symbolName = `${className}${suffixClassName}`;
|
|
17
|
+
(0, validations_1.validateClassName)(symbolName);
|
|
16
18
|
const { prefix } = (0, devkit_1.readProjectConfiguration)(tree, projectName);
|
|
17
19
|
const selector = options.selector ??
|
|
18
20
|
(0, selector_1.buildSelector)(name, options.prefix, prefix, 'propertyName');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'zone.js/node';
|
|
2
2
|
|
|
3
3
|
import { APP_BASE_HREF } from '@angular/common';
|
|
4
|
-
import { CommonEngine } from '
|
|
4
|
+
import { CommonEngine } from '<%= commonEngineEntryPoint %>';
|
|
5
5
|
import * as express from 'express';
|
|
6
6
|
import * as cors from 'cors';
|
|
7
7
|
import { existsSync } from 'node:fs';
|
|
@@ -10,10 +10,11 @@ async function updateSsrSetup(tree, options, appName, typescriptConfiguration) {
|
|
|
10
10
|
tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
|
|
11
11
|
tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
|
|
12
12
|
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
13
|
-
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common'
|
|
13
|
+
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common'), project.root, {
|
|
14
14
|
appName,
|
|
15
15
|
browserBundleOutput: project.targets.build.options.outputPath,
|
|
16
16
|
standalone: options.standalone,
|
|
17
|
+
commonEngineEntryPoint: angularMajorVersion >= 19 ? '@angular/ssr/node' : '@angular/ssr',
|
|
17
18
|
tmpl: '',
|
|
18
19
|
});
|
|
19
20
|
const pathToTemplateFiles = typescriptConfiguration ? 'ts' : 'js';
|
|
@@ -172,6 +172,10 @@
|
|
|
172
172
|
"default": false,
|
|
173
173
|
"x-priority": "important"
|
|
174
174
|
},
|
|
175
|
+
"serverRouting": {
|
|
176
|
+
"description": "Creates a server application using the Server Routing and App Engine APIs (Developer Preview). _Note: this is only supported in Angular versions >= 19.0.0_.",
|
|
177
|
+
"type": "boolean"
|
|
178
|
+
},
|
|
175
179
|
"typescriptConfiguration": {
|
|
176
180
|
"type": "boolean",
|
|
177
181
|
"description": "Whether the module federation configuration and webpack configuration files should use TS.",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Pipe, PipeTransform } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
@Pipe({
|
|
4
|
-
name: '<%= selector %>'<% if(
|
|
5
|
-
standalone:
|
|
4
|
+
name: '<%= selector %>'<% if (setStandalone) { %>,
|
|
5
|
+
standalone: <%= standalone %><% } %>
|
|
6
6
|
})
|
|
7
7
|
export class <%= symbolName %> implements PipeTransform {
|
|
8
8
|
transform(value: unknown, ...args: unknown[]): unknown {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
|
-
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
|
+
const validations_1 = require("../../utils/validations");
|
|
6
7
|
async function normalizeOptions(tree, options) {
|
|
7
8
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
8
9
|
name: options.name,
|
|
@@ -12,6 +13,7 @@ async function normalizeOptions(tree, options) {
|
|
|
12
13
|
const { className } = (0, devkit_1.names)(name);
|
|
13
14
|
const { className: suffixClassName } = (0, devkit_1.names)('pipe');
|
|
14
15
|
const symbolName = `${className}${suffixClassName}`;
|
|
16
|
+
(0, validations_1.validateClassName)(symbolName);
|
|
15
17
|
return {
|
|
16
18
|
...options,
|
|
17
19
|
projectName,
|
|
@@ -3,15 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.pipeGenerator = pipeGenerator;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
6
7
|
const lib_1 = require("./lib");
|
|
7
8
|
async function pipeGenerator(tree, rawOptions) {
|
|
8
9
|
const options = await (0, lib_1.normalizeOptions)(tree, rawOptions);
|
|
10
|
+
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
9
11
|
const pipeNames = (0, devkit_1.names)(options.name);
|
|
10
12
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), options.directory, {
|
|
11
13
|
symbolName: options.symbolName,
|
|
12
14
|
fileName: options.fileName,
|
|
13
15
|
selector: pipeNames.propertyName,
|
|
14
16
|
standalone: options.standalone,
|
|
17
|
+
// Angular v19 or higher defaults to true, while v18 or lower defaults to false
|
|
18
|
+
setStandalone: (angularMajorVersion >= 19 && !options.standalone) ||
|
|
19
|
+
(angularMajorVersion < 19 && options.standalone),
|
|
15
20
|
tpl: '',
|
|
16
21
|
});
|
|
17
22
|
if (options.skipTests) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'zone.js/node';
|
|
2
2
|
|
|
3
3
|
import { APP_BASE_HREF } from '@angular/common';
|
|
4
|
-
import { CommonEngine } from '
|
|
4
|
+
import { CommonEngine } from '<%= commonEngineEntryPoint %>';
|
|
5
5
|
import * as express from 'express';
|
|
6
6
|
import * as cors from 'cors';
|
|
7
7
|
import { existsSync } from 'node:fs';
|
|
@@ -12,11 +12,12 @@ async function updateSsrSetup(tree, { appName, port, standalone, typescriptConfi
|
|
|
12
12
|
const browserBundleOutput = project.targets.build.options.outputPath;
|
|
13
13
|
const serverBundleOutput = project.targets.build.options.outputPath.replace(/\/browser$/, '/server');
|
|
14
14
|
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
|
15
|
-
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common'
|
|
15
|
+
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common'), project.root, {
|
|
16
16
|
appName,
|
|
17
17
|
browserBundleOutput,
|
|
18
18
|
serverBundleOutput,
|
|
19
19
|
standalone,
|
|
20
|
+
commonEngineEntryPoint: angularMajorVersion >= 19 ? '@angular/ssr/node' : '@angular/ssr',
|
|
20
21
|
tmpl: '',
|
|
21
22
|
});
|
|
22
23
|
const pathToTemplateFiles = typescriptConfiguration ? 'base-ts' : 'base';
|
|
@@ -165,6 +165,10 @@
|
|
|
165
165
|
"type": "boolean",
|
|
166
166
|
"default": false
|
|
167
167
|
},
|
|
168
|
+
"serverRouting": {
|
|
169
|
+
"description": "Creates a server application using the Server Routing and App Engine APIs (Developer Preview). _Note: this is only supported in Angular versions >= 19.0.0_.",
|
|
170
|
+
"type": "boolean"
|
|
171
|
+
},
|
|
168
172
|
"typescriptConfiguration": {
|
|
169
173
|
"type": "boolean",
|
|
170
174
|
"description": "Whether the module federation configuration and webpack configuration files should use TS.",
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.normalizeOptions = normalizeOptions;
|
|
4
|
-
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
5
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const artifact_name_and_directory_utils_1 = require("@nx/devkit/src/generators/artifact-name-and-directory-utils");
|
|
6
|
+
const validations_1 = require("../../utils/validations");
|
|
6
7
|
async function normalizeOptions(tree, options) {
|
|
7
8
|
options.type ??= 'component';
|
|
8
9
|
const { artifactName: name, directory, fileName, filePath, project: projectName, } = await (0, artifact_name_and_directory_utils_1.determineArtifactNameAndDirectoryOptions)(tree, {
|
|
@@ -13,6 +14,7 @@ async function normalizeOptions(tree, options) {
|
|
|
13
14
|
const { className } = (0, devkit_1.names)(name);
|
|
14
15
|
const { className: suffixClassName } = (0, devkit_1.names)(options.type);
|
|
15
16
|
const symbolName = `${className}${suffixClassName}`;
|
|
17
|
+
(0, validations_1.validateClassName)(symbolName);
|
|
16
18
|
return {
|
|
17
19
|
...options,
|
|
18
20
|
export: options.export ?? true,
|