@nx/angular 16.8.0-beta.3 → 16.8.0-beta.5

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.
Files changed (220) hide show
  1. package/mf/mf.js +31 -36
  2. package/migrations.json +9 -0
  3. package/package.json +11 -11
  4. package/plugins/component-testing.js +82 -44
  5. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +4 -6
  6. package/src/builders/module-federation-dev-ssr/module-federation-dev-ssr.impl.js +4 -6
  7. package/src/builders/utilities/buildable-libs.js +1 -2
  8. package/src/builders/utilities/module-federation.js +2 -3
  9. package/src/builders/utilities/webpack.js +16 -21
  10. package/src/builders/webpack-browser/webpack-browser.impl.js +13 -13
  11. package/src/builders/webpack-dev-server/lib/normalize-options.js +8 -1
  12. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +24 -18
  13. package/src/builders/webpack-server/webpack-server.impl.js +5 -7
  14. package/src/executors/browser-esbuild/browser-esbuild.impl.js +19 -23
  15. package/src/executors/browser-esbuild/lib/buildable-libs.js +1 -2
  16. package/src/executors/delegate-build/delegate-build.impl.js +9 -12
  17. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +4 -7
  18. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.transform.js +4 -5
  19. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +158 -156
  20. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/options.di.js +6 -3
  21. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ngc/compile-source-files.js +118 -118
  22. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
  23. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +20 -12
  24. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +18 -21
  25. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +6 -9
  26. package/src/executors/package/ng-packagr-adjustments/ng-package/options.di.js +6 -3
  27. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +122 -122
  28. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +96 -103
  29. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +21 -13
  30. package/src/executors/package/ng-packagr-adjustments/utils/ng-compiler-cli.js +5 -8
  31. package/src/executors/package/package.impl.js +33 -38
  32. package/src/executors/utilities/angular-version-utils.js +1 -1
  33. package/src/executors/utilities/tailwindcss.js +2 -2
  34. package/src/executors/utilities/typescript.js +23 -28
  35. package/src/generators/add-linting/add-linting.js +76 -69
  36. package/src/generators/add-linting/lib/add-angular-eslint-dependencies.js +2 -0
  37. package/src/generators/add-linting/lib/create-eslint-configuration.js +12 -4
  38. package/src/generators/application/application.js +56 -55
  39. package/src/generators/application/lib/add-e2e.js +36 -40
  40. package/src/generators/application/lib/add-linting.js +12 -15
  41. package/src/generators/application/lib/add-proxy-config.js +4 -1
  42. package/src/generators/application/lib/add-unit-test-runner.js +15 -18
  43. package/src/generators/application/lib/create-files.js +44 -47
  44. package/src/generators/application/lib/enable-strict-type-checking.js +2 -2
  45. package/src/generators/application/lib/normalize-options.js +37 -25
  46. package/src/generators/application/lib/set-app-strict-default.js +1 -2
  47. package/src/generators/application/lib/update-editor-tsconfig.js +1 -2
  48. package/src/generators/component/component.js +40 -43
  49. package/src/generators/component/lib/normalize-options.js +15 -5
  50. package/src/generators/component-cypress-spec/component-cypress-spec.js +25 -28
  51. package/src/generators/component-story/component-story.js +19 -22
  52. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +19 -22
  53. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +3 -4
  54. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +103 -106
  55. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +59 -62
  56. package/src/generators/directive/directive.js +21 -24
  57. package/src/generators/directive/lib/normalize-options.js +11 -5
  58. package/src/generators/host/files/src/main.server.ts__tmpl__ +1 -1
  59. package/src/generators/host/host.js +77 -67
  60. package/src/generators/host/lib/add-ssr.js +32 -33
  61. package/src/generators/init/init.js +101 -92
  62. package/src/generators/library/lib/add-standalone-component.js +18 -13
  63. package/src/generators/library/lib/enable-strict-type-checking.js +17 -5
  64. package/src/generators/library/lib/normalize-options.js +68 -53
  65. package/src/generators/library/library.js +89 -92
  66. package/src/generators/library-secondary-entry-point/lib/add-files.js +5 -1
  67. package/src/generators/library-secondary-entry-point/lib/normalize-options.js +6 -3
  68. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +1 -2
  69. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +6 -9
  70. package/src/generators/move/lib/normalize-schema.js +5 -1
  71. package/src/generators/move/lib/update-module-name.js +1 -1
  72. package/src/generators/move/lib/update-ng-package.js +1 -2
  73. package/src/generators/move/lib/update-secondary-entry-points.js +1 -2
  74. package/src/generators/move/move.js +9 -12
  75. package/src/generators/ng-add/migrate-from-angular-cli.js +54 -53
  76. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +4 -3
  77. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js +11 -12
  78. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +39 -42
  79. package/src/generators/ng-add/migrators/builders/builder.migrator.js +1 -2
  80. package/src/generators/ng-add/migrators/migrator.js +7 -11
  81. package/src/generators/ng-add/migrators/projects/app.migrator.js +39 -43
  82. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +115 -91
  83. package/src/generators/ng-add/migrators/projects/lib.migrator.js +23 -31
  84. package/src/generators/ng-add/migrators/projects/project.migrator.js +10 -14
  85. package/src/generators/ng-add/ng-add.js +5 -8
  86. package/src/generators/ng-add/utilities/dependencies.js +2 -3
  87. package/src/generators/ng-add/utilities/format-files-task.js +1 -1
  88. package/src/generators/ng-add/utilities/projects.js +1 -1
  89. package/src/generators/ng-add/utilities/workspace.js +25 -36
  90. package/src/generators/ngrx/lib/add-imports-to-module.js +1 -2
  91. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +1 -3
  92. package/src/generators/ngrx/lib/generate-files.js +11 -2
  93. package/src/generators/ngrx/lib/normalize-options.js +9 -4
  94. package/src/generators/ngrx/lib/validate-options.js +3 -3
  95. package/src/generators/ngrx/ngrx.js +18 -21
  96. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +1 -1
  97. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +2 -2
  98. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  99. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +6 -6
  100. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  101. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +3 -3
  102. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +2 -2
  103. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +3 -3
  104. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +1 -1
  105. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  106. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  107. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +4 -1
  108. package/src/generators/ngrx-feature-store/lib/add-imports.js +1 -1
  109. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +1 -3
  110. package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -4
  111. package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +1 -0
  112. package/src/generators/ngrx-feature-store/lib/normalize-options.js +22 -3
  113. package/src/generators/ngrx-feature-store/lib/validate-options.js +2 -2
  114. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +18 -21
  115. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +8 -6
  116. package/src/generators/ngrx-root-store/lib/normalize-options.js +8 -4
  117. package/src/generators/ngrx-root-store/lib/validate-options.js +2 -2
  118. package/src/generators/ngrx-root-store/ngrx-root-store.js +27 -30
  119. package/src/generators/pipe/lib/normalize-options.js +9 -3
  120. package/src/generators/pipe/pipe.js +21 -24
  121. package/src/generators/remote/files/base/src/main.server.ts__tmpl__ +2 -2
  122. package/src/generators/remote/lib/add-ssr.js +46 -43
  123. package/src/generators/remote/lib/find-next-available-port.js +1 -2
  124. package/src/generators/remote/remote.js +52 -49
  125. package/src/generators/scam/lib/convert-component-to-scam.js +1 -2
  126. package/src/generators/scam/lib/normalize-options.js +11 -4
  127. package/src/generators/scam/scam.js +15 -12
  128. package/src/generators/scam-directive/lib/normalize-options.js +12 -4
  129. package/src/generators/scam-directive/scam-directive.js +13 -10
  130. package/src/generators/scam-pipe/lib/normalize-options.js +12 -4
  131. package/src/generators/scam-pipe/scam-pipe.js +13 -10
  132. package/src/generators/scam-to-standalone/scam-to-standalone.js +23 -26
  133. package/src/generators/setup-mf/lib/add-cypress-workaround.js +1 -1
  134. package/src/generators/setup-mf/lib/add-remote-to-host.js +4 -1
  135. package/src/generators/setup-mf/lib/change-build-target.js +10 -4
  136. package/src/generators/setup-mf/lib/generate-config.js +1 -1
  137. package/src/generators/setup-mf/lib/get-remotes-with-ports.js +1 -2
  138. package/src/generators/setup-mf/lib/normalize-options.js +5 -2
  139. package/src/generators/setup-mf/lib/set-tsconfig-target.js +7 -1
  140. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -2
  141. package/src/generators/setup-mf/lib/setup-serve-target.js +10 -3
  142. package/src/generators/setup-mf/setup-mf.js +32 -35
  143. package/src/generators/setup-ssr/lib/generate-files.js +8 -5
  144. package/src/generators/setup-ssr/lib/normalize-options.js +9 -10
  145. package/src/generators/setup-ssr/lib/update-project-config.js +21 -17
  146. package/src/generators/setup-ssr/setup-ssr.js +26 -27
  147. package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.js +6 -4
  148. package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js +1 -2
  149. package/src/generators/setup-tailwind/lib/normalize-options.js +4 -1
  150. package/src/generators/setup-tailwind/lib/update-application-styles.js +5 -6
  151. package/src/generators/setup-tailwind/setup-tailwind.js +20 -23
  152. package/src/generators/stories/lib/get-e2e-project.js +1 -1
  153. package/src/generators/stories/stories.js +43 -50
  154. package/src/generators/storybook-configuration/lib/assert-compatible-storybook-version.js +1 -1
  155. package/src/generators/storybook-configuration/lib/generate-stories.js +10 -13
  156. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +12 -15
  157. package/src/generators/storybook-configuration/storybook-configuration.js +20 -16
  158. package/src/generators/utils/create-ts-config.js +1 -1
  159. package/src/generators/utils/entry-point.js +1 -2
  160. package/src/generators/utils/export-scam.js +1 -1
  161. package/src/generators/utils/insert-ngmodule-import.js +1 -1
  162. package/src/generators/utils/path.js +3 -3
  163. package/src/generators/utils/project.js +2 -3
  164. package/src/generators/utils/selector.js +1 -1
  165. package/src/generators/utils/storybook-ast/component-info.js +1 -2
  166. package/src/generators/utils/storybook-ast/entry-point.js +1 -2
  167. package/src/generators/utils/storybook-ast/module-info.js +1 -2
  168. package/src/generators/utils/storybook-ast/tree-utilities.js +1 -1
  169. package/src/generators/utils/testing.js +141 -138
  170. package/src/generators/utils/validations.js +1 -1
  171. package/src/generators/utils/version-utils.js +5 -7
  172. package/src/generators/web-worker/lib/normalize-options.js +6 -3
  173. package/src/generators/web-worker/web-worker.js +25 -28
  174. package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js +10 -13
  175. package/src/migrations/update-14-2-0/update-angular-cli.js +14 -18
  176. package/src/migrations/update-14-2-0/update-libraries-secondary-entrypoints.js +22 -26
  177. package/src/migrations/update-14-2-0/update-ngcc-target.js +10 -14
  178. package/src/migrations/update-14-2-0/update-router-initial-navigation.js +31 -39
  179. package/src/migrations/update-14-2-0/update-tsconfig-target.js +48 -56
  180. package/src/migrations/update-14-5-0/migrate-mfe-to-mf.js +14 -17
  181. package/src/migrations/update-14-5-2/update-angular-cli.js +14 -18
  182. package/src/migrations/update-14-6-0/update-angular-cli.js +14 -18
  183. package/src/migrations/update-15-0-0/add-karma-inputs.js +27 -32
  184. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js +62 -68
  185. package/src/migrations/update-15-2-0/remove-browserlist-config.js +34 -37
  186. package/src/migrations/update-15-2-0/remove-platform-server-exports.js +49 -52
  187. package/src/migrations/update-15-2-0/update-angular-cli.js +14 -18
  188. package/src/migrations/update-15-2-0/update-karma-main-file.js +11 -12
  189. package/src/migrations/update-15-2-0/update-typescript-target.js +40 -39
  190. package/src/migrations/update-15-2-0/update-workspace-config.js +16 -19
  191. package/src/migrations/update-15-5-0/update-angular-cli.js +14 -18
  192. package/src/migrations/update-15-7-0/install-required-packages.js +26 -28
  193. package/src/migrations/update-15-8-0/update-angular-cli.js +14 -18
  194. package/src/migrations/update-15-9-0/update-file-server-executor.js +31 -35
  195. package/src/migrations/update-15-9-0/update-testing-tsconfig.js +17 -22
  196. package/src/migrations/update-16-0-0/remove-karma-defaults.js +15 -18
  197. package/src/migrations/update-16-0-0/remove-library-generator-simple-module-name-option.js +22 -25
  198. package/src/migrations/update-16-0-0/remove-protractor-defaults.js +15 -18
  199. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
  200. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +38 -42
  201. package/src/migrations/update-16-1-0/remove-ngcc-invocation.js +15 -19
  202. package/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.js +49 -52
  203. package/src/migrations/update-16-1-0/update-angular-cli.js +14 -18
  204. package/src/migrations/update-16-1-0/update-server-executor-config.js +13 -16
  205. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +25 -29
  206. package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.js +13 -16
  207. package/src/migrations/update-16-4-0/update-angular-cli.js +14 -18
  208. package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +19 -24
  209. package/src/migrations/update-16-7-0/update-angular-cli.js +14 -18
  210. package/src/migrations/utils/projects.js +9 -15
  211. package/src/utils/backward-compatible-versions.js +2 -0
  212. package/src/utils/get-mf-projects.js +1 -2
  213. package/src/utils/mf/utils.js +43 -44
  214. package/src/utils/mf/with-module-federation-ssr.js +39 -24
  215. package/src/utils/mf/with-module-federation.js +40 -21
  216. package/src/utils/nx-devkit/ast-utils.js +2 -3
  217. package/src/utils/nx-devkit/testing.js +9 -9
  218. package/src/utils/version-utils.js +2 -4
  219. package/src/utils/versions.d.ts +1 -0
  220. package/src/utils/versions.js +2 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applicationGeneratorInternal = exports.applicationGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const init_1 = require("../init/init");
7
6
  const setup_tailwind_1 = require("../setup-tailwind/setup-tailwind");
@@ -9,65 +8,67 @@ const version_utils_1 = require("../utils/version-utils");
9
8
  const lib_1 = require("./lib");
10
9
  const semver_1 = require("semver");
11
10
  const enquirer_1 = require("enquirer");
12
- function applicationGenerator(tree, schema) {
13
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
- return yield applicationGeneratorInternal(tree, Object.assign({ projectNameAndRootFormat: 'derived' }, schema));
11
+ async function applicationGenerator(tree, schema) {
12
+ return await applicationGeneratorInternal(tree, {
13
+ projectNameAndRootFormat: 'derived',
14
+ ...schema,
15
15
  });
16
16
  }
17
17
  exports.applicationGenerator = applicationGenerator;
18
- function applicationGeneratorInternal(tree, schema) {
19
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
- const installedAngularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
21
- if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0') && schema.standalone) {
22
- throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
18
+ async function applicationGeneratorInternal(tree, schema) {
19
+ const installedAngularVersionInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
20
+ if ((0, semver_1.lt)(installedAngularVersionInfo.version, '14.1.0') && schema.standalone) {
21
+ throw new Error((0, devkit_1.stripIndents) `The "standalone" option is only supported in Angular >= 14.1.0. You are currently using ${installedAngularVersionInfo.version}.
23
22
  You can resolve this error by removing the "standalone" option or by migrating to Angular 14.1.0.`);
24
- }
25
- if ((0, semver_1.gte)(installedAngularVersionInfo.version, '14.1.0') &&
26
- schema.standalone === undefined &&
27
- process.env.NX_INTERACTIVE === 'true') {
28
- schema.standalone = yield (0, enquirer_1.prompt)({
29
- name: 'standalone-components',
30
- message: 'Would you like to use Standalone Components?',
31
- type: 'confirm',
32
- }).then((a) => a['standalone-components']);
33
- }
34
- const options = yield (0, lib_1.normalizeOptions)(tree, schema);
35
- const rootOffset = (0, devkit_1.offsetFromRoot)(options.appProjectRoot);
36
- yield (0, init_1.angularInitGenerator)(tree, Object.assign(Object.assign({}, options), { skipFormat: true }));
37
- (0, lib_1.createProject)(tree, options);
38
- yield (0, lib_1.createFiles)(tree, options, rootOffset);
39
- if (options.addTailwind) {
40
- yield (0, setup_tailwind_1.setupTailwindGenerator)(tree, {
41
- project: options.name,
42
- skipFormat: true,
43
- skipPackageJson: options.skipPackageJson,
44
- });
45
- }
46
- yield (0, lib_1.addLinting)(tree, options);
47
- yield (0, lib_1.addUnitTestRunner)(tree, options);
48
- yield (0, lib_1.addE2e)(tree, options);
49
- (0, lib_1.updateEditorTsConfig)(tree, options);
50
- if (options.rootProject) {
51
- const nxJson = (0, devkit_1.readNxJson)(tree);
52
- nxJson.defaultProject = options.name;
53
- (0, devkit_1.updateNxJson)(tree, nxJson);
54
- }
55
- if (options.backendProject) {
56
- (0, lib_1.addProxyConfig)(tree, options);
57
- }
58
- if (options.strict) {
59
- (0, lib_1.enableStrictTypeChecking)(tree, options);
60
- }
61
- else {
62
- (0, lib_1.setApplicationStrictDefault)(tree, false);
63
- }
64
- if (!options.skipFormat) {
65
- yield (0, devkit_1.formatFiles)(tree);
66
- }
67
- return () => {
68
- (0, devkit_1.installPackagesTask)(tree);
69
- };
23
+ }
24
+ if ((0, semver_1.gte)(installedAngularVersionInfo.version, '14.1.0') &&
25
+ schema.standalone === undefined &&
26
+ process.env.NX_INTERACTIVE === 'true') {
27
+ schema.standalone = await (0, enquirer_1.prompt)({
28
+ name: 'standalone-components',
29
+ message: 'Would you like to use Standalone Components?',
30
+ type: 'confirm',
31
+ }).then((a) => a['standalone-components']);
32
+ }
33
+ const options = await (0, lib_1.normalizeOptions)(tree, schema);
34
+ const rootOffset = (0, devkit_1.offsetFromRoot)(options.appProjectRoot);
35
+ await (0, init_1.angularInitGenerator)(tree, {
36
+ ...options,
37
+ skipFormat: true,
70
38
  });
39
+ (0, lib_1.createProject)(tree, options);
40
+ await (0, lib_1.createFiles)(tree, options, rootOffset);
41
+ if (options.addTailwind) {
42
+ await (0, setup_tailwind_1.setupTailwindGenerator)(tree, {
43
+ project: options.name,
44
+ skipFormat: true,
45
+ skipPackageJson: options.skipPackageJson,
46
+ });
47
+ }
48
+ await (0, lib_1.addLinting)(tree, options);
49
+ await (0, lib_1.addUnitTestRunner)(tree, options);
50
+ await (0, lib_1.addE2e)(tree, options);
51
+ (0, lib_1.updateEditorTsConfig)(tree, options);
52
+ if (options.rootProject) {
53
+ const nxJson = (0, devkit_1.readNxJson)(tree);
54
+ nxJson.defaultProject = options.name;
55
+ (0, devkit_1.updateNxJson)(tree, nxJson);
56
+ }
57
+ if (options.backendProject) {
58
+ (0, lib_1.addProxyConfig)(tree, options);
59
+ }
60
+ if (options.strict) {
61
+ (0, lib_1.enableStrictTypeChecking)(tree, options);
62
+ }
63
+ else {
64
+ (0, lib_1.setApplicationStrictDefault)(tree, false);
65
+ }
66
+ if (!options.skipFormat) {
67
+ await (0, devkit_1.formatFiles)(tree);
68
+ }
69
+ return () => {
70
+ (0, devkit_1.installPackagesTask)(tree);
71
+ };
71
72
  }
72
73
  exports.applicationGeneratorInternal = applicationGeneratorInternal;
73
74
  exports.default = applicationGenerator;
@@ -1,49 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addE2e = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const versions_1 = require("../../../utils/versions");
7
6
  const cypress_1 = require("@nx/cypress");
8
- function addE2e(tree, options) {
9
- var _a;
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- if (options.e2eTestRunner === 'cypress') {
12
- // TODO: This can call `@nx/web:static-config` generator when ready
13
- addFileServerTarget(tree, options, 'serve-static');
14
- yield (0, cypress_1.cypressProjectGenerator)(tree, {
15
- name: options.e2eProjectName,
16
- directory: options.e2eProjectRoot,
17
- // the name and root are already normalized, instruct the generator to use them as is
18
- projectNameAndRootFormat: 'as-provided',
19
- project: options.name,
20
- linter: options.linter,
21
- standaloneConfig: options.standaloneConfig,
22
- skipPackageJson: options.skipPackageJson,
23
- skipFormat: true,
24
- });
25
- }
26
- else if (options.e2eTestRunner === 'playwright') {
27
- const { configurationGenerator: playwrightConfigurationGenerator } = (0, devkit_1.ensurePackage)('@nx/playwright', versions_1.nxVersion);
28
- (0, devkit_1.addProjectConfiguration)(tree, options.e2eProjectName, {
29
- root: options.e2eProjectRoot,
30
- sourceRoot: (0, devkit_1.joinPathFragments)(options.e2eProjectRoot, 'src'),
31
- targets: {},
32
- implicitDependencies: [options.name],
33
- });
34
- yield playwrightConfigurationGenerator(tree, {
35
- project: options.e2eProjectName,
36
- skipFormat: true,
37
- skipPackageJson: options.skipPackageJson,
38
- directory: 'src',
39
- js: false,
40
- linter: options.linter,
41
- setParserOptionsProject: options.setParserOptionsProject,
42
- webServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx serve ${options.name}`,
43
- webServerAddress: `http://localhost:${(_a = options.port) !== null && _a !== void 0 ? _a : 4200}`,
44
- });
45
- }
46
- });
7
+ async function addE2e(tree, options) {
8
+ if (options.e2eTestRunner === 'cypress') {
9
+ // TODO: This can call `@nx/web:static-config` generator when ready
10
+ addFileServerTarget(tree, options, 'serve-static');
11
+ await (0, cypress_1.cypressProjectGenerator)(tree, {
12
+ name: options.e2eProjectName,
13
+ directory: options.e2eProjectRoot,
14
+ // the name and root are already normalized, instruct the generator to use them as is
15
+ projectNameAndRootFormat: 'as-provided',
16
+ project: options.name,
17
+ linter: options.linter,
18
+ standaloneConfig: options.standaloneConfig,
19
+ skipPackageJson: options.skipPackageJson,
20
+ skipFormat: true,
21
+ });
22
+ }
23
+ else if (options.e2eTestRunner === 'playwright') {
24
+ const { configurationGenerator: playwrightConfigurationGenerator } = (0, devkit_1.ensurePackage)('@nx/playwright', versions_1.nxVersion);
25
+ (0, devkit_1.addProjectConfiguration)(tree, options.e2eProjectName, {
26
+ root: options.e2eProjectRoot,
27
+ sourceRoot: (0, devkit_1.joinPathFragments)(options.e2eProjectRoot, 'src'),
28
+ targets: {},
29
+ implicitDependencies: [options.name],
30
+ });
31
+ await playwrightConfigurationGenerator(tree, {
32
+ project: options.e2eProjectName,
33
+ skipFormat: true,
34
+ skipPackageJson: options.skipPackageJson,
35
+ directory: 'src',
36
+ js: false,
37
+ linter: options.linter,
38
+ setParserOptionsProject: options.setParserOptionsProject,
39
+ webServerCommand: `${(0, devkit_1.getPackageManagerCommand)().exec} nx serve ${options.name}`,
40
+ webServerAddress: `http://localhost:${options.port ?? 4200}`,
41
+ });
42
+ }
47
43
  }
48
44
  exports.addE2e = addE2e;
49
45
  function addFileServerTarget(tree, options, targetName) {
@@ -1,23 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addLinting = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const linter_1 = require("@nx/linter");
6
5
  const add_linting_1 = require("../../add-linting/add-linting");
7
- function addLinting(host, options) {
8
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
- if (options.linter === linter_1.Linter.None) {
10
- return;
11
- }
12
- yield (0, add_linting_1.default)(host, {
13
- projectName: options.name,
14
- projectRoot: options.appProjectRoot,
15
- prefix: options.prefix,
16
- setParserOptionsProject: options.setParserOptionsProject,
17
- skipPackageJson: options.skipPackageJson,
18
- unitTestRunner: options.unitTestRunner,
19
- skipFormat: true,
20
- });
6
+ async function addLinting(host, options) {
7
+ if (options.linter === linter_1.Linter.None) {
8
+ return;
9
+ }
10
+ await (0, add_linting_1.default)(host, {
11
+ projectName: options.name,
12
+ projectRoot: options.appProjectRoot,
13
+ prefix: options.prefix,
14
+ setParserOptionsProject: options.setParserOptionsProject,
15
+ skipPackageJson: options.skipPackageJson,
16
+ unitTestRunner: options.unitTestRunner,
17
+ skipFormat: true,
21
18
  });
22
19
  }
23
20
  exports.addLinting = addLinting;
@@ -15,7 +15,10 @@ function addProxyConfig(host, options) {
15
15
  secure: false,
16
16
  },
17
17
  }));
18
- projectConfig.targets.serve.options = Object.assign(Object.assign({}, projectConfig.targets.serve.options), { proxyConfig: pathToProxyFile });
18
+ projectConfig.targets.serve.options = {
19
+ ...projectConfig.targets.serve.options,
20
+ proxyConfig: pathToProxyFile,
21
+ };
19
22
  (0, devkit_1.updateProjectConfiguration)(host, options.name, projectConfig);
20
23
  }
21
24
  }
@@ -1,25 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addUnitTestRunner = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const jest_1 = require("@nx/jest");
7
6
  const test_runners_1 = require("../../../utils/test-runners");
8
- function addUnitTestRunner(host, options) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
- if (options.unitTestRunner === test_runners_1.UnitTestRunner.Jest) {
11
- yield (0, jest_1.configurationGenerator)(host, {
12
- project: options.name,
13
- setupFile: 'angular',
14
- supportTsx: false,
15
- skipSerializers: false,
16
- skipPackageJson: options.skipPackageJson,
17
- skipFormat: true,
18
- });
19
- const setupFile = (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src', 'test-setup.ts');
20
- if (options.strict && host.exists(setupFile)) {
21
- const contents = host.read(setupFile, 'utf-8');
22
- host.write(setupFile, `// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
7
+ async function addUnitTestRunner(host, options) {
8
+ if (options.unitTestRunner === test_runners_1.UnitTestRunner.Jest) {
9
+ await (0, jest_1.configurationGenerator)(host, {
10
+ project: options.name,
11
+ setupFile: 'angular',
12
+ supportTsx: false,
13
+ skipSerializers: false,
14
+ skipPackageJson: options.skipPackageJson,
15
+ skipFormat: true,
16
+ });
17
+ const setupFile = (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src', 'test-setup.ts');
18
+ if (options.strict && host.exists(setupFile)) {
19
+ const contents = host.read(setupFile, 'utf-8');
20
+ host.write(setupFile, `// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
23
21
  globalThis.ngJest = {
24
22
  testEnvironmentOptions: {
25
23
  errorOnUnknownElements: true,
@@ -27,8 +25,7 @@ globalThis.ngJest = {
27
25
  },
28
26
  };
29
27
  ${contents}`);
30
- }
31
28
  }
32
- });
29
+ }
33
30
  }
34
31
  exports.addUnitTestRunner = addUnitTestRunner;
@@ -1,57 +1,54 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFiles = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const js_1 = require("@nx/js");
7
6
  const create_ts_config_1 = require("../../utils/create-ts-config");
8
7
  const test_runners_1 = require("../../../utils/test-runners");
9
8
  const version_utils_1 = require("../../utils/version-utils");
10
- function createFiles(tree, options, rootOffset) {
11
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
12
- const installedAngularInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
13
- const substitutions = {
14
- rootSelector: `${options.prefix}-root`,
15
- appName: options.name,
16
- inlineStyle: options.inlineStyle,
17
- inlineTemplate: options.inlineTemplate,
18
- style: options.style,
19
- viewEncapsulation: options.viewEncapsulation,
20
- unitTesting: options.unitTestRunner !== test_runners_1.UnitTestRunner.None,
21
- routing: options.routing,
22
- minimal: options.minimal,
23
- nxWelcomeSelector: `${options.prefix}-nx-welcome`,
24
- rootTsConfig: (0, devkit_1.joinPathFragments)(rootOffset, (0, js_1.getRootTsConfigFileName)(tree)),
25
- installedAngularInfo,
26
- rootOffset,
27
- tpl: '',
28
- };
29
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/base'), options.appProjectRoot, substitutions);
30
- if (installedAngularInfo.major === 14) {
31
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/v14'), options.appProjectRoot, substitutions);
32
- }
33
- if (options.standalone) {
34
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-components'), options.appProjectRoot, substitutions);
35
- }
36
- else {
37
- yield (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/ng-module'), options.appProjectRoot, substitutions);
38
- }
39
- (0, create_ts_config_1.createTsConfig)(tree, options.appProjectRoot, 'app', options, (0, js_1.getRelativePathToRootTsConfig)(tree, options.appProjectRoot));
40
- if (!options.routing) {
41
- tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.routes.ts'));
42
- }
43
- if (options.skipTests || options.unitTestRunner === test_runners_1.UnitTestRunner.None) {
44
- tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.component.spec.ts'));
45
- }
46
- if (options.inlineTemplate) {
47
- tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.component.html'));
48
- }
49
- if (options.inlineStyle) {
50
- tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, `/src/app/app.component.${options.style}`));
51
- }
52
- if (options.minimal) {
53
- tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src/app/nx-welcome.component.ts'));
54
- }
55
- });
9
+ async function createFiles(tree, options, rootOffset) {
10
+ const installedAngularInfo = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
11
+ const substitutions = {
12
+ rootSelector: `${options.prefix}-root`,
13
+ appName: options.name,
14
+ inlineStyle: options.inlineStyle,
15
+ inlineTemplate: options.inlineTemplate,
16
+ style: options.style,
17
+ viewEncapsulation: options.viewEncapsulation,
18
+ unitTesting: options.unitTestRunner !== test_runners_1.UnitTestRunner.None,
19
+ routing: options.routing,
20
+ minimal: options.minimal,
21
+ nxWelcomeSelector: `${options.prefix}-nx-welcome`,
22
+ rootTsConfig: (0, devkit_1.joinPathFragments)(rootOffset, (0, js_1.getRootTsConfigFileName)(tree)),
23
+ installedAngularInfo,
24
+ rootOffset,
25
+ tpl: '',
26
+ };
27
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/base'), options.appProjectRoot, substitutions);
28
+ if (installedAngularInfo.major === 14) {
29
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/v14'), options.appProjectRoot, substitutions);
30
+ }
31
+ if (options.standalone) {
32
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-components'), options.appProjectRoot, substitutions);
33
+ }
34
+ else {
35
+ await (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/ng-module'), options.appProjectRoot, substitutions);
36
+ }
37
+ (0, create_ts_config_1.createTsConfig)(tree, options.appProjectRoot, 'app', options, (0, js_1.getRelativePathToRootTsConfig)(tree, options.appProjectRoot));
38
+ if (!options.routing) {
39
+ tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.routes.ts'));
40
+ }
41
+ if (options.skipTests || options.unitTestRunner === test_runners_1.UnitTestRunner.None) {
42
+ tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.component.spec.ts'));
43
+ }
44
+ if (options.inlineTemplate) {
45
+ tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.component.html'));
46
+ }
47
+ if (options.inlineStyle) {
48
+ tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, `/src/app/app.component.${options.style}`));
49
+ }
50
+ if (options.minimal) {
51
+ tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, 'src/app/nx-welcome.component.ts'));
52
+ }
56
53
  }
57
54
  exports.createFiles = createFiles;
@@ -15,7 +15,7 @@ function enableStrictTypeChecking(host, options) {
15
15
  const appTsConfigPath = `${options.appProjectRoot}/tsconfig.json`;
16
16
  if (host.exists(appTsConfigPath)) {
17
17
  (0, devkit_1.updateJson)(host, appTsConfigPath, (json) => {
18
- json.compilerOptions = Object.assign(Object.assign({}, json.compilerOptions), compilerOptions);
18
+ json.compilerOptions = { ...json.compilerOptions, ...compilerOptions };
19
19
  json.angularCompilerOptions = {
20
20
  enableI18nLegacyMessageIdFormat: false,
21
21
  strictInjectionParameters: true,
@@ -28,7 +28,7 @@ function enableStrictTypeChecking(host, options) {
28
28
  const e2eTsConfigPath = `${options.e2eProjectRoot}/tsconfig.json`;
29
29
  if (host.exists(e2eTsConfigPath)) {
30
30
  (0, devkit_1.updateJson)(host, e2eTsConfigPath, (json) => {
31
- json.compilerOptions = Object.assign(Object.assign({}, json.compilerOptions), compilerOptions);
31
+ json.compilerOptions = { ...json.compilerOptions, ...compilerOptions };
32
32
  return json;
33
33
  });
34
34
  }
@@ -1,36 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeOptions = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils");
6
5
  const get_npm_scope_1 = require("@nx/js/src/utils/package-json/get-npm-scope");
7
6
  const linter_1 = require("@nx/linter");
8
7
  const test_runners_1 = require("../../../utils/test-runners");
9
8
  const project_1 = require("../../utils/project");
10
- function normalizeOptions(host, options) {
11
- var _a;
12
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
- const { projectName: appProjectName, projectRoot: appProjectRoot, projectNameAndRootFormat, } = yield (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(host, {
14
- name: options.name,
15
- projectType: 'application',
16
- directory: options.directory,
17
- projectNameAndRootFormat: options.projectNameAndRootFormat,
18
- rootProject: options.rootProject,
19
- callingGenerator: '@nx/angular:application',
20
- });
21
- options.rootProject = appProjectRoot === '.';
22
- options.projectNameAndRootFormat = projectNameAndRootFormat;
23
- const e2eProjectName = options.rootProject ? 'e2e' : `${appProjectName}-e2e`;
24
- const e2eProjectRoot = options.rootProject ? 'e2e' : `${appProjectRoot}-e2e`;
25
- const parsedTags = options.tags
26
- ? options.tags.split(',').map((s) => s.trim())
27
- : [];
28
- const prefix = (0, project_1.normalizeNewProjectPrefix)(options.prefix, (0, get_npm_scope_1.getNpmScope)(host), 'app');
29
- // Set defaults and then overwrite with user options
30
- return Object.assign(Object.assign({ style: 'css', routing: false, inlineStyle: false, inlineTemplate: false, skipTests: options.unitTestRunner === test_runners_1.UnitTestRunner.None, skipFormat: false, unitTestRunner: test_runners_1.UnitTestRunner.Jest, e2eTestRunner: test_runners_1.E2eTestRunner.Cypress, linter: linter_1.Linter.EsLint, strict: true, bundler: (_a = options.bundler) !== null && _a !== void 0 ? _a : 'webpack' }, options), { prefix, name: appProjectName, appProjectRoot,
31
- e2eProjectRoot,
32
- e2eProjectName,
33
- parsedTags });
9
+ async function normalizeOptions(host, options) {
10
+ const { projectName: appProjectName, projectRoot: appProjectRoot, projectNameAndRootFormat, } = await (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(host, {
11
+ name: options.name,
12
+ projectType: 'application',
13
+ directory: options.directory,
14
+ projectNameAndRootFormat: options.projectNameAndRootFormat,
15
+ rootProject: options.rootProject,
16
+ callingGenerator: '@nx/angular:application',
34
17
  });
18
+ options.rootProject = appProjectRoot === '.';
19
+ options.projectNameAndRootFormat = projectNameAndRootFormat;
20
+ const e2eProjectName = options.rootProject ? 'e2e' : `${appProjectName}-e2e`;
21
+ const e2eProjectRoot = options.rootProject ? 'e2e' : `${appProjectRoot}-e2e`;
22
+ const parsedTags = options.tags
23
+ ? options.tags.split(',').map((s) => s.trim())
24
+ : [];
25
+ const prefix = (0, project_1.normalizeNewProjectPrefix)(options.prefix, (0, get_npm_scope_1.getNpmScope)(host), 'app');
26
+ // Set defaults and then overwrite with user options
27
+ return {
28
+ style: 'css',
29
+ routing: false,
30
+ inlineStyle: false,
31
+ inlineTemplate: false,
32
+ skipTests: options.unitTestRunner === test_runners_1.UnitTestRunner.None,
33
+ skipFormat: false,
34
+ unitTestRunner: test_runners_1.UnitTestRunner.Jest,
35
+ e2eTestRunner: test_runners_1.E2eTestRunner.Cypress,
36
+ linter: linter_1.Linter.EsLint,
37
+ strict: true,
38
+ bundler: options.bundler ?? 'webpack',
39
+ ...options,
40
+ prefix,
41
+ name: appProjectName,
42
+ appProjectRoot,
43
+ e2eProjectRoot,
44
+ e2eProjectName,
45
+ parsedTags,
46
+ };
35
47
  }
36
48
  exports.normalizeOptions = normalizeOptions;
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setApplicationStrictDefault = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  function setApplicationStrictDefault(host, strict) {
6
- var _a;
7
6
  const nxJson = (0, devkit_1.readNxJson)(host);
8
7
  nxJson.generators = nxJson.generators || {};
9
8
  nxJson.generators['@nx/angular:application'] =
10
9
  nxJson.generators['@nx/angular:application'] || {};
11
10
  nxJson.generators['@nx/angular:application'].strict =
12
- (_a = nxJson.generators['@nx/angular:application'].strict) !== null && _a !== void 0 ? _a : strict;
11
+ nxJson.generators['@nx/angular:application'].strict ?? strict;
13
12
  (0, devkit_1.updateNxJson)(host, nxJson);
14
13
  }
15
14
  exports.setApplicationStrictDefault = setApplicationStrictDefault;
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateEditorTsConfig = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  function getCompilerOptionsTypes(tsConfig) {
6
- var _a, _b;
7
- return (_b = (_a = tsConfig === null || tsConfig === void 0 ? void 0 : tsConfig.compilerOptions) === null || _a === void 0 ? void 0 : _a.types) !== null && _b !== void 0 ? _b : [];
6
+ return tsConfig?.compilerOptions?.types ?? [];
8
7
  }
9
8
  function updateEditorTsConfig(tree, options) {
10
9
  const types = getCompilerOptionsTypes((0, devkit_1.readJson)(tree, (0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.app.json')));