@nx/angular 16.8.0-beta.4 → 16.8.0-beta.6

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 (213) hide show
  1. package/mf/mf.js +31 -36
  2. package/package.json +10 -10
  3. package/plugins/component-testing.d.ts +0 -1
  4. package/plugins/component-testing.js +48 -40
  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 -74
  36. package/src/generators/add-linting/lib/create-eslint-configuration.js +12 -4
  37. package/src/generators/application/application.js +56 -55
  38. package/src/generators/application/lib/add-e2e.js +36 -40
  39. package/src/generators/application/lib/add-linting.js +12 -15
  40. package/src/generators/application/lib/add-proxy-config.js +4 -1
  41. package/src/generators/application/lib/add-unit-test-runner.js +15 -18
  42. package/src/generators/application/lib/create-files.js +44 -47
  43. package/src/generators/application/lib/enable-strict-type-checking.js +2 -2
  44. package/src/generators/application/lib/normalize-options.js +37 -25
  45. package/src/generators/application/lib/set-app-strict-default.js +1 -2
  46. package/src/generators/application/lib/update-editor-tsconfig.js +1 -2
  47. package/src/generators/component/component.js +40 -43
  48. package/src/generators/component/lib/normalize-options.js +15 -5
  49. package/src/generators/component-cypress-spec/component-cypress-spec.js +25 -28
  50. package/src/generators/component-story/component-story.js +19 -22
  51. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +19 -22
  52. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +3 -4
  53. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +103 -106
  54. package/src/generators/cypress-component-configuration/cypress-component-configuration.js +59 -62
  55. package/src/generators/directive/directive.js +21 -24
  56. package/src/generators/directive/lib/normalize-options.js +11 -5
  57. package/src/generators/host/host.js +77 -67
  58. package/src/generators/host/lib/add-ssr.js +32 -35
  59. package/src/generators/init/init.js +101 -92
  60. package/src/generators/library/lib/add-standalone-component.js +18 -13
  61. package/src/generators/library/lib/enable-strict-type-checking.js +17 -5
  62. package/src/generators/library/lib/normalize-options.js +68 -53
  63. package/src/generators/library/library.js +89 -92
  64. package/src/generators/library-secondary-entry-point/lib/add-files.js +5 -1
  65. package/src/generators/library-secondary-entry-point/lib/normalize-options.js +6 -3
  66. package/src/generators/library-secondary-entry-point/lib/update-linting-file-patterns.js +1 -2
  67. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +6 -9
  68. package/src/generators/move/lib/normalize-schema.js +5 -1
  69. package/src/generators/move/lib/update-module-name.js +1 -1
  70. package/src/generators/move/lib/update-ng-package.js +1 -2
  71. package/src/generators/move/lib/update-secondary-entry-points.js +1 -2
  72. package/src/generators/move/move.js +9 -12
  73. package/src/generators/ng-add/migrate-from-angular-cli.js +54 -53
  74. package/src/generators/ng-add/migrators/builders/angular-devkit-karma.migrator.js +4 -3
  75. package/src/generators/ng-add/migrators/builders/angular-devkit-ng-packagr.migrator.js +11 -12
  76. package/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +39 -42
  77. package/src/generators/ng-add/migrators/builders/builder.migrator.js +1 -2
  78. package/src/generators/ng-add/migrators/migrator.js +7 -11
  79. package/src/generators/ng-add/migrators/projects/app.migrator.js +39 -43
  80. package/src/generators/ng-add/migrators/projects/e2e.migrator.js +115 -91
  81. package/src/generators/ng-add/migrators/projects/lib.migrator.js +23 -31
  82. package/src/generators/ng-add/migrators/projects/project.migrator.js +10 -14
  83. package/src/generators/ng-add/ng-add.js +5 -8
  84. package/src/generators/ng-add/utilities/dependencies.js +2 -3
  85. package/src/generators/ng-add/utilities/format-files-task.js +1 -1
  86. package/src/generators/ng-add/utilities/projects.js +1 -1
  87. package/src/generators/ng-add/utilities/workspace.js +25 -36
  88. package/src/generators/ngrx/lib/add-imports-to-module.js +1 -2
  89. package/src/generators/ngrx/lib/add-ngrx-to-package-json.js +1 -3
  90. package/src/generators/ngrx/lib/generate-files.js +11 -2
  91. package/src/generators/ngrx/lib/normalize-options.js +9 -4
  92. package/src/generators/ngrx/lib/validate-options.js +3 -3
  93. package/src/generators/ngrx/ngrx.js +18 -21
  94. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.actions.ts__tmpl__ +1 -1
  95. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.spec.ts__tmpl__ +2 -2
  96. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  97. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.spec.ts__tmpl__ +6 -6
  98. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  99. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.spec.ts__tmpl__ +3 -3
  100. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.reducer.ts__tmpl__ +2 -2
  101. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.spec.ts__tmpl__ +3 -3
  102. package/src/generators/ngrx-feature-store/files/base/__directory__/__fileName__.selectors.ts__tmpl__ +1 -1
  103. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.effects.ts__tmpl__ +2 -2
  104. package/src/generators/ngrx-feature-store/files/no-inject/__directory__/__fileName__.facade.ts__tmpl__ +3 -3
  105. package/src/generators/ngrx-feature-store/lib/add-exports-barrel.js +4 -1
  106. package/src/generators/ngrx-feature-store/lib/add-imports.js +1 -1
  107. package/src/generators/ngrx-feature-store/lib/add-ngrx-to-package-json.js +1 -3
  108. package/src/generators/ngrx-feature-store/lib/generate-files.js +20 -4
  109. package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +1 -0
  110. package/src/generators/ngrx-feature-store/lib/normalize-options.js +22 -3
  111. package/src/generators/ngrx-feature-store/lib/validate-options.js +2 -2
  112. package/src/generators/ngrx-feature-store/ngrx-feature-store.js +18 -21
  113. package/src/generators/ngrx-root-store/lib/add-ngrx-to-package-json.js +8 -6
  114. package/src/generators/ngrx-root-store/lib/normalize-options.js +8 -4
  115. package/src/generators/ngrx-root-store/lib/validate-options.js +2 -2
  116. package/src/generators/ngrx-root-store/ngrx-root-store.js +27 -30
  117. package/src/generators/pipe/lib/normalize-options.js +9 -3
  118. package/src/generators/pipe/pipe.js +21 -24
  119. package/src/generators/remote/lib/add-ssr.js +46 -47
  120. package/src/generators/remote/lib/find-next-available-port.js +1 -2
  121. package/src/generators/remote/remote.js +52 -49
  122. package/src/generators/scam/lib/convert-component-to-scam.js +1 -2
  123. package/src/generators/scam/lib/normalize-options.js +11 -4
  124. package/src/generators/scam/scam.js +15 -12
  125. package/src/generators/scam-directive/lib/normalize-options.js +12 -4
  126. package/src/generators/scam-directive/scam-directive.js +13 -10
  127. package/src/generators/scam-pipe/lib/normalize-options.js +12 -4
  128. package/src/generators/scam-pipe/scam-pipe.js +13 -10
  129. package/src/generators/scam-to-standalone/scam-to-standalone.js +23 -26
  130. package/src/generators/setup-mf/lib/add-cypress-workaround.js +1 -1
  131. package/src/generators/setup-mf/lib/add-remote-to-host.js +4 -1
  132. package/src/generators/setup-mf/lib/change-build-target.js +10 -4
  133. package/src/generators/setup-mf/lib/generate-config.js +1 -1
  134. package/src/generators/setup-mf/lib/get-remotes-with-ports.js +1 -2
  135. package/src/generators/setup-mf/lib/normalize-options.js +5 -2
  136. package/src/generators/setup-mf/lib/set-tsconfig-target.js +7 -1
  137. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -2
  138. package/src/generators/setup-mf/lib/setup-serve-target.js +11 -4
  139. package/src/generators/setup-mf/setup-mf.js +32 -35
  140. package/src/generators/setup-ssr/lib/generate-files.js +8 -5
  141. package/src/generators/setup-ssr/lib/normalize-options.js +9 -10
  142. package/src/generators/setup-ssr/lib/update-project-config.js +21 -17
  143. package/src/generators/setup-ssr/setup-ssr.js +26 -27
  144. package/src/generators/setup-tailwind/lib/add-tailwind-config-path-to-project.js +6 -4
  145. package/src/generators/setup-tailwind/lib/detect-tailwind-installed-version.js +1 -2
  146. package/src/generators/setup-tailwind/lib/normalize-options.js +4 -1
  147. package/src/generators/setup-tailwind/lib/update-application-styles.js +5 -6
  148. package/src/generators/setup-tailwind/setup-tailwind.js +20 -23
  149. package/src/generators/stories/lib/get-e2e-project.js +1 -1
  150. package/src/generators/stories/stories.js +43 -50
  151. package/src/generators/storybook-configuration/lib/assert-compatible-storybook-version.js +1 -1
  152. package/src/generators/storybook-configuration/lib/generate-stories.js +10 -13
  153. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +12 -15
  154. package/src/generators/storybook-configuration/storybook-configuration.js +20 -16
  155. package/src/generators/utils/create-ts-config.js +1 -1
  156. package/src/generators/utils/entry-point.js +1 -2
  157. package/src/generators/utils/export-scam.js +1 -1
  158. package/src/generators/utils/insert-ngmodule-import.js +1 -1
  159. package/src/generators/utils/path.js +3 -3
  160. package/src/generators/utils/project.js +2 -3
  161. package/src/generators/utils/selector.js +1 -1
  162. package/src/generators/utils/storybook-ast/component-info.js +1 -2
  163. package/src/generators/utils/storybook-ast/entry-point.js +1 -2
  164. package/src/generators/utils/storybook-ast/module-info.js +1 -2
  165. package/src/generators/utils/storybook-ast/tree-utilities.js +1 -1
  166. package/src/generators/utils/testing.js +141 -139
  167. package/src/generators/utils/validations.js +1 -1
  168. package/src/generators/utils/version-utils.js +5 -7
  169. package/src/generators/web-worker/lib/normalize-options.js +6 -3
  170. package/src/generators/web-worker/web-worker.js +25 -28
  171. package/src/migrations/update-14-2-0/remove-show-circular-dependencies-option.js +10 -13
  172. package/src/migrations/update-14-2-0/update-angular-cli.js +14 -18
  173. package/src/migrations/update-14-2-0/update-libraries-secondary-entrypoints.js +22 -26
  174. package/src/migrations/update-14-2-0/update-ngcc-target.js +10 -14
  175. package/src/migrations/update-14-2-0/update-router-initial-navigation.js +31 -39
  176. package/src/migrations/update-14-2-0/update-tsconfig-target.js +48 -56
  177. package/src/migrations/update-14-5-0/migrate-mfe-to-mf.js +14 -17
  178. package/src/migrations/update-14-5-2/update-angular-cli.js +14 -18
  179. package/src/migrations/update-14-6-0/update-angular-cli.js +14 -18
  180. package/src/migrations/update-15-0-0/add-karma-inputs.js +27 -32
  181. package/src/migrations/update-15-0-0/switch-to-jasmine-marbles.js +62 -68
  182. package/src/migrations/update-15-2-0/remove-browserlist-config.js +34 -37
  183. package/src/migrations/update-15-2-0/remove-platform-server-exports.js +49 -52
  184. package/src/migrations/update-15-2-0/update-angular-cli.js +14 -18
  185. package/src/migrations/update-15-2-0/update-karma-main-file.js +11 -12
  186. package/src/migrations/update-15-2-0/update-typescript-target.js +40 -39
  187. package/src/migrations/update-15-2-0/update-workspace-config.js +16 -19
  188. package/src/migrations/update-15-5-0/update-angular-cli.js +14 -18
  189. package/src/migrations/update-15-7-0/install-required-packages.js +26 -28
  190. package/src/migrations/update-15-8-0/update-angular-cli.js +14 -18
  191. package/src/migrations/update-15-9-0/update-file-server-executor.js +31 -35
  192. package/src/migrations/update-15-9-0/update-testing-tsconfig.js +17 -22
  193. package/src/migrations/update-16-0-0/remove-karma-defaults.js +15 -18
  194. package/src/migrations/update-16-0-0/remove-library-generator-simple-module-name-option.js +22 -25
  195. package/src/migrations/update-16-0-0/remove-protractor-defaults.js +15 -18
  196. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +3 -6
  197. package/src/migrations/update-16-1-0/extract-standalone-config-from-bootstrap.js +38 -42
  198. package/src/migrations/update-16-1-0/remove-ngcc-invocation.js +15 -19
  199. package/src/migrations/update-16-1-0/remove-render-module-platform-server-exports.js +49 -52
  200. package/src/migrations/update-16-1-0/update-angular-cli.js +14 -18
  201. package/src/migrations/update-16-1-0/update-server-executor-config.js +13 -16
  202. package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +25 -29
  203. package/src/migrations/update-16-4-0/rename-angular-eslint-accesibility-rules.js +13 -16
  204. package/src/migrations/update-16-4-0/update-angular-cli.js +14 -18
  205. package/src/migrations/update-16-6-0/explicitly-set-projects-to-update-buildable-deps.js +19 -24
  206. package/src/migrations/update-16-7-0/update-angular-cli.js +14 -18
  207. package/src/migrations/utils/projects.js +9 -15
  208. package/src/utils/get-mf-projects.js +1 -2
  209. package/src/utils/mf/utils.js +43 -44
  210. package/src/utils/mf/with-module-federation-ssr.js +39 -24
  211. package/src/utils/mf/with-module-federation.js +40 -21
  212. package/src/utils/nx-devkit/ast-utils.js +2 -3
  213. package/src/utils/version-utils.js +2 -4
@@ -1,53 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.componentGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const utils_1 = require("../utils");
7
6
  const lib_1 = require("./lib");
8
- function componentGenerator(tree, rawOptions) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
- (0, lib_1.validateOptions)(tree, rawOptions);
11
- const options = (0, lib_1.normalizeOptions)(tree, rawOptions);
12
- const componentNames = (0, devkit_1.names)(options.name);
13
- const typeNames = (0, devkit_1.names)(options.type);
14
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), options.directory, {
15
- fileName: componentNames.fileName,
16
- className: componentNames.className,
17
- type: typeNames.fileName,
18
- typeClassName: typeNames.className,
19
- style: options.style,
20
- inlineStyle: options.inlineStyle,
21
- inlineTemplate: options.inlineTemplate,
22
- standalone: options.standalone,
23
- skipSelector: options.skipSelector,
24
- changeDetection: options.changeDetection,
25
- viewEncapsulation: options.viewEncapsulation,
26
- displayBlock: options.displayBlock,
27
- selector: options.selector,
28
- tpl: '',
29
- });
30
- if (options.skipTests) {
31
- const pathToSpecFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.spec.ts`);
32
- tree.delete(pathToSpecFile);
33
- }
34
- if (options.inlineTemplate) {
35
- const pathToTemplateFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.html`);
36
- tree.delete(pathToTemplateFile);
37
- }
38
- if (options.style === 'none' || options.inlineStyle) {
39
- const pathToStyleFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.${options.style}`);
40
- tree.delete(pathToStyleFile);
41
- }
42
- if (!options.skipImport && !options.standalone) {
43
- const modulePath = (0, lib_1.findModuleFromOptions)(tree, options, options.projectRoot);
44
- (0, utils_1.addToNgModule)(tree, options.path, modulePath, componentNames.fileName, `${componentNames.className}${typeNames.className}`, `${componentNames.fileName}.${typeNames.fileName}`, 'declarations', options.flat, options.export);
45
- }
46
- (0, lib_1.exportComponentInEntryPoint)(tree, options);
47
- if (!options.skipFormat) {
48
- yield (0, devkit_1.formatFiles)(tree);
49
- }
7
+ async function componentGenerator(tree, rawOptions) {
8
+ (0, lib_1.validateOptions)(tree, rawOptions);
9
+ const options = (0, lib_1.normalizeOptions)(tree, rawOptions);
10
+ const componentNames = (0, devkit_1.names)(options.name);
11
+ const typeNames = (0, devkit_1.names)(options.type);
12
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), options.directory, {
13
+ fileName: componentNames.fileName,
14
+ className: componentNames.className,
15
+ type: typeNames.fileName,
16
+ typeClassName: typeNames.className,
17
+ style: options.style,
18
+ inlineStyle: options.inlineStyle,
19
+ inlineTemplate: options.inlineTemplate,
20
+ standalone: options.standalone,
21
+ skipSelector: options.skipSelector,
22
+ changeDetection: options.changeDetection,
23
+ viewEncapsulation: options.viewEncapsulation,
24
+ displayBlock: options.displayBlock,
25
+ selector: options.selector,
26
+ tpl: '',
50
27
  });
28
+ if (options.skipTests) {
29
+ const pathToSpecFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.spec.ts`);
30
+ tree.delete(pathToSpecFile);
31
+ }
32
+ if (options.inlineTemplate) {
33
+ const pathToTemplateFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.html`);
34
+ tree.delete(pathToTemplateFile);
35
+ }
36
+ if (options.style === 'none' || options.inlineStyle) {
37
+ const pathToStyleFile = (0, devkit_1.joinPathFragments)(options.directory, `${componentNames.fileName}.${typeNames.fileName}.${options.style}`);
38
+ tree.delete(pathToStyleFile);
39
+ }
40
+ if (!options.skipImport && !options.standalone) {
41
+ const modulePath = (0, lib_1.findModuleFromOptions)(tree, options, options.projectRoot);
42
+ (0, utils_1.addToNgModule)(tree, options.path, modulePath, componentNames.fileName, `${componentNames.className}${typeNames.className}`, `${componentNames.fileName}.${typeNames.fileName}`, 'declarations', options.flat, options.export);
43
+ }
44
+ (0, lib_1.exportComponentInEntryPoint)(tree, options);
45
+ if (!options.skipFormat) {
46
+ await (0, devkit_1.formatFiles)(tree);
47
+ }
51
48
  }
52
49
  exports.componentGenerator = componentGenerator;
53
50
  exports.default = componentGenerator;
@@ -5,13 +5,23 @@ const devkit_1 = require("@nx/devkit");
5
5
  const path_1 = require("../../utils/path");
6
6
  const selector_1 = require("../../utils/selector");
7
7
  function normalizeOptions(tree, options) {
8
- var _a, _b, _c, _d, _e;
9
- (_a = options.type) !== null && _a !== void 0 ? _a : (options.type = 'component');
8
+ options.type ??= 'component';
10
9
  const { directory, filePath, name, path, root, sourceRoot } = (0, path_1.normalizeNameAndPaths)(tree, options);
11
10
  const { prefix } = (0, devkit_1.readProjectConfiguration)(tree, options.project);
12
- const selector = (_b = options.selector) !== null && _b !== void 0 ? _b : (0, selector_1.buildSelector)(tree, name, options.prefix, prefix, 'fileName');
13
- return Object.assign(Object.assign({}, options), { name, changeDetection: (_c = options.changeDetection) !== null && _c !== void 0 ? _c : 'Default', style: (_d = options.style) !== null && _d !== void 0 ? _d : 'css', flat: (_e = options.flat) !== null && _e !== void 0 ? _e : false, directory,
11
+ const selector = options.selector ??
12
+ (0, selector_1.buildSelector)(tree, name, options.prefix, prefix, 'fileName');
13
+ return {
14
+ ...options,
15
+ name,
16
+ changeDetection: options.changeDetection ?? 'Default',
17
+ style: options.style ?? 'css',
18
+ flat: options.flat ?? false,
19
+ directory,
14
20
  filePath,
15
- path, projectSourceRoot: sourceRoot, projectRoot: root, selector });
21
+ path,
22
+ projectSourceRoot: sourceRoot,
23
+ projectRoot: root,
24
+ selector,
25
+ };
16
26
  }
17
27
  exports.normalizeOptions = normalizeOptions;
@@ -1,39 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.componentCypressSpecGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const storybook_inputs_1 = require("../utils/storybook-ast/storybook-inputs");
7
6
  const get_args_default_value_1 = require("./lib/get-args-default-value");
8
7
  const get_component_selector_1 = require("./lib/get-component-selector");
9
- function componentCypressSpecGenerator(tree, options) {
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- const { cypressProject, projectName, projectPath, componentPath, componentFileName, componentName, specDirectory, } = options;
12
- const e2eProjectName = cypressProject || `${projectName}-e2e`;
13
- const { sourceRoot, root } = (0, devkit_1.readProjectConfiguration)(tree, e2eProjectName);
14
- const isCypressV10 = tree.exists((0, devkit_1.joinPathFragments)(root, 'cypress.config.ts'));
15
- const e2eLibIntegrationFolderPath = (0, devkit_1.joinPathFragments)(sourceRoot, isCypressV10 ? 'e2e' : 'integration');
16
- const templatesDir = (0, devkit_1.joinPathFragments)(__dirname, 'files');
17
- const destinationDir = (0, devkit_1.joinPathFragments)(e2eLibIntegrationFolderPath, specDirectory !== null && specDirectory !== void 0 ? specDirectory : componentPath);
18
- const storyFile = (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.${isCypressV10 ? 'cy' : 'spec'}.ts`);
19
- if (tree.exists(storyFile)) {
20
- return;
21
- }
22
- const fullComponentPath = (0, devkit_1.joinPathFragments)(projectPath, componentPath, `${componentFileName}.ts`);
23
- const props = (0, storybook_inputs_1.getComponentProps)(tree, fullComponentPath, get_args_default_value_1.getArgsDefaultValue);
24
- const componentSelector = (0, get_component_selector_1.getComponentSelector)(tree, fullComponentPath);
25
- (0, devkit_1.generateFiles)(tree, templatesDir, destinationDir, {
26
- projectName,
27
- componentFileName,
28
- componentName,
29
- componentSelector,
30
- props,
31
- fileExt: isCypressV10 ? 'cy.ts' : 'spec.ts',
32
- });
33
- if (!options.skipFormat) {
34
- yield (0, devkit_1.formatFiles)(tree);
35
- }
8
+ async function componentCypressSpecGenerator(tree, options) {
9
+ const { cypressProject, projectName, projectPath, componentPath, componentFileName, componentName, specDirectory, } = options;
10
+ const e2eProjectName = cypressProject || `${projectName}-e2e`;
11
+ const { sourceRoot, root } = (0, devkit_1.readProjectConfiguration)(tree, e2eProjectName);
12
+ const isCypressV10 = tree.exists((0, devkit_1.joinPathFragments)(root, 'cypress.config.ts'));
13
+ const e2eLibIntegrationFolderPath = (0, devkit_1.joinPathFragments)(sourceRoot, isCypressV10 ? 'e2e' : 'integration');
14
+ const templatesDir = (0, devkit_1.joinPathFragments)(__dirname, 'files');
15
+ const destinationDir = (0, devkit_1.joinPathFragments)(e2eLibIntegrationFolderPath, specDirectory ?? componentPath);
16
+ const storyFile = (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.${isCypressV10 ? 'cy' : 'spec'}.ts`);
17
+ if (tree.exists(storyFile)) {
18
+ return;
19
+ }
20
+ const fullComponentPath = (0, devkit_1.joinPathFragments)(projectPath, componentPath, `${componentFileName}.ts`);
21
+ const props = (0, storybook_inputs_1.getComponentProps)(tree, fullComponentPath, get_args_default_value_1.getArgsDefaultValue);
22
+ const componentSelector = (0, get_component_selector_1.getComponentSelector)(tree, fullComponentPath);
23
+ (0, devkit_1.generateFiles)(tree, templatesDir, destinationDir, {
24
+ projectName,
25
+ componentFileName,
26
+ componentName,
27
+ componentSelector,
28
+ props,
29
+ fileExt: isCypressV10 ? 'cy.ts' : 'spec.ts',
36
30
  });
31
+ if (!options.skipFormat) {
32
+ await (0, devkit_1.formatFiles)(tree);
33
+ }
37
34
  }
38
35
  exports.componentCypressSpecGenerator = componentCypressSpecGenerator;
39
36
  exports.default = componentCypressSpecGenerator;
@@ -1,31 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.componentStoryGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const storybook_inputs_1 = require("../utils/storybook-ast/storybook-inputs");
7
- function componentStoryGenerator(tree, options) {
8
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
- const { componentFileName, componentName, componentPath, projectPath } = options;
10
- const templatesDir = (0, devkit_1.joinPathFragments)(__dirname, 'files');
11
- const destinationDir = (0, devkit_1.joinPathFragments)(projectPath, componentPath);
12
- const storyFile = (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.stories.ts`);
13
- if (tree.exists(storyFile)) {
14
- return;
15
- }
16
- const props = (0, storybook_inputs_1.getComponentProps)(tree, (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.ts`));
17
- (0, devkit_1.generateFiles)(tree, templatesDir, destinationDir, {
18
- componentFileName: componentFileName,
19
- componentName: componentName,
20
- componentNameSimple: componentFileName.replace('.component', ''),
21
- interactionTests: options.interactionTests,
22
- props: props.filter((p) => typeof p.defaultValue !== 'undefined'),
23
- tmpl: '',
24
- });
25
- if (!options.skipFormat) {
26
- yield (0, devkit_1.formatFiles)(tree);
27
- }
6
+ async function componentStoryGenerator(tree, options) {
7
+ const { componentFileName, componentName, componentPath, projectPath } = options;
8
+ const templatesDir = (0, devkit_1.joinPathFragments)(__dirname, 'files');
9
+ const destinationDir = (0, devkit_1.joinPathFragments)(projectPath, componentPath);
10
+ const storyFile = (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.stories.ts`);
11
+ if (tree.exists(storyFile)) {
12
+ return;
13
+ }
14
+ const props = (0, storybook_inputs_1.getComponentProps)(tree, (0, devkit_1.joinPathFragments)(destinationDir, `${componentFileName}.ts`));
15
+ (0, devkit_1.generateFiles)(tree, templatesDir, destinationDir, {
16
+ componentFileName: componentFileName,
17
+ componentName: componentName,
18
+ componentNameSimple: componentFileName.replace('.component', ''),
19
+ interactionTests: options.interactionTests,
20
+ props: props.filter((p) => typeof p.defaultValue !== 'undefined'),
21
+ tmpl: '',
28
22
  });
23
+ if (!options.skipFormat) {
24
+ await (0, devkit_1.formatFiles)(tree);
25
+ }
29
26
  }
30
27
  exports.componentStoryGenerator = componentStoryGenerator;
31
28
  exports.default = componentStoryGenerator;
@@ -1,33 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertToWithMF = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const devkit_1 = require("@nx/devkit");
6
5
  const get_mf_projects_1 = require("../../utils/get-mf-projects");
7
6
  const lib_1 = require("./lib");
8
- function convertToWithMF(tree, schema) {
9
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
- const projects = new Set((0, get_mf_projects_1.getMFProjects)(tree, { legacy: true }));
11
- if (!projects.has(schema.project)) {
12
- throw new Error(`Could not find project "${schema.project}" with a Micro Frontend configuration in your workspace. Please check the name of the project you're wishing to convert exists.`);
13
- }
14
- const project = (0, devkit_1.readProjectConfiguration)(tree, schema.project);
15
- const pathToWebpackConfig = (0, lib_1.getWebpackConfigPath)(project, schema.project);
16
- const webpackAst = (0, lib_1.parseASTOfWebpackConfig)(tree, pathToWebpackConfig);
17
- if (!(0, lib_1.checkOutputNameMatchesProjectName)(webpackAst, schema.project)) {
18
- throw new Error(`Cannot automatically migrate "${schema.project}" to "withModuleFederation" micro frontend webpack config.
7
+ async function convertToWithMF(tree, schema) {
8
+ const projects = new Set((0, get_mf_projects_1.getMFProjects)(tree, { legacy: true }));
9
+ if (!projects.has(schema.project)) {
10
+ throw new Error(`Could not find project "${schema.project}" with a Micro Frontend configuration in your workspace. Please check the name of the project you're wishing to convert exists.`);
11
+ }
12
+ const project = (0, devkit_1.readProjectConfiguration)(tree, schema.project);
13
+ const pathToWebpackConfig = (0, lib_1.getWebpackConfigPath)(project, schema.project);
14
+ const webpackAst = (0, lib_1.parseASTOfWebpackConfig)(tree, pathToWebpackConfig);
15
+ if (!(0, lib_1.checkOutputNameMatchesProjectName)(webpackAst, schema.project)) {
16
+ throw new Error(`Cannot automatically migrate "${schema.project}" to "withModuleFederation" micro frontend webpack config.
19
17
  "uniqueName" in webpack config (${pathToWebpackConfig}) does not match project name.`);
20
- }
21
- if (!(0, lib_1.checkSharedNpmPackagesMatchExpected)(webpackAst)) {
22
- throw new Error(`Cannot automatically migrate "${schema.project}" to "withModuleFederation" micro frontend webpack config.
18
+ }
19
+ if (!(0, lib_1.checkSharedNpmPackagesMatchExpected)(webpackAst)) {
20
+ throw new Error(`Cannot automatically migrate "${schema.project}" to "withModuleFederation" micro frontend webpack config.
23
21
  There are npm packages being shared with a custom configuration in webpack config (${pathToWebpackConfig}).`);
24
- }
25
- devkit_1.logger.warn(`This Micro Frontend configuration conversion will overwrite "${schema.project}"'s current webpack config. If you have anything custom that is not related to Micro Frontends, it will be lost. You should be able to see the changes in your version control system.`);
26
- const [updatedWebpackConfig, mfConfig] = (0, lib_1.writeNewWebpackConfig)(webpackAst, (0, lib_1.isHostRemoteConfig)(webpackAst), schema.project);
27
- tree.write(pathToWebpackConfig, updatedWebpackConfig);
28
- tree.write((0, devkit_1.joinPathFragments)(project.root, 'module-federation.config.js'), mfConfig);
29
- yield (0, devkit_1.formatFiles)(tree);
30
- });
22
+ }
23
+ devkit_1.logger.warn(`This Micro Frontend configuration conversion will overwrite "${schema.project}"'s current webpack config. If you have anything custom that is not related to Micro Frontends, it will be lost. You should be able to see the changes in your version control system.`);
24
+ const [updatedWebpackConfig, mfConfig] = (0, lib_1.writeNewWebpackConfig)(webpackAst, (0, lib_1.isHostRemoteConfig)(webpackAst), schema.project);
25
+ tree.write(pathToWebpackConfig, updatedWebpackConfig);
26
+ tree.write((0, devkit_1.joinPathFragments)(project.root, 'module-federation.config.js'), mfConfig);
27
+ await (0, devkit_1.formatFiles)(tree);
31
28
  }
32
29
  exports.convertToWithMF = convertToWithMF;
33
30
  exports.default = convertToWithMF;
@@ -2,13 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getWebpackConfigPath = void 0;
4
4
  function getWebpackConfigPath(project, projectName) {
5
- var _a, _b, _c;
6
5
  let pathToWebpackConfig = '';
7
- for (const target of Object.values((_a = project.targets) !== null && _a !== void 0 ? _a : {})) {
6
+ for (const target of Object.values(project.targets ?? {})) {
8
7
  if ((target.executor === '@nx/angular:webpack-browser' ||
9
8
  target.executor === '@nrwl/angular:webpack-browser') &&
10
- ((_b = target.options.customWebpackConfig) === null || _b === void 0 ? void 0 : _b.path)) {
11
- pathToWebpackConfig = (_c = target.options.customWebpackConfig) === null || _c === void 0 ? void 0 : _c.path;
9
+ target.options.customWebpackConfig?.path) {
10
+ pathToWebpackConfig = target.options.customWebpackConfig?.path;
12
11
  break;
13
12
  }
14
13
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.conversionGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const cypress_1 = require("@nx/cypress");
6
5
  const devkit_1 = require("@nx/devkit");
7
6
  const linter_1 = require("@nx/linter");
@@ -9,113 +8,111 @@ const add_linting_1 = require("../add-linting/add-linting");
9
8
  /**
10
9
  * @deprecated This generator will be removed in v17
11
10
  */
12
- function conversionGenerator(host, options) {
13
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
- /**
15
- * The ProjectConverter instance encapsulates all the standard operations we need
16
- * to perform in order to convert a project from TSLint to ESLint, as well as some
17
- * extensibility points for adjusting the behavior on a per package basis.
18
- *
19
- * E.g. @nx/angular projects might need to make different changes to the final
20
- * ESLint config when compared with @nx/next projects.
21
- *
22
- * See the ProjectConverter implementation for a full breakdown of what it does.
23
- */
24
- const projectConverter = new linter_1.ProjectConverter({
25
- host,
26
- projectName: options.project,
27
- ignoreExistingTslintConfig: options.ignoreExistingTslintConfig,
28
- eslintInitializer: ({ projectName, projectConfig }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
29
- yield (0, add_linting_1.addLintingGenerator)(host, {
30
- projectName,
31
- projectRoot: projectConfig.root,
32
- prefix: projectConfig.prefix || 'app',
33
- /**
34
- * We set the parserOptions.project config just in case the converted config uses
35
- * rules which require type-checking. Later in the conversion we check if it actually
36
- * does and remove the config again if it doesn't, so that it is most efficient.
37
- */
38
- setParserOptionsProject: true,
39
- skipFormat: true,
40
- });
41
- }),
42
- });
43
- /**
44
- * If root eslint configuration already exists it will not be recreated
45
- * but we also don't want to re-run the tslint config conversion
46
- * as it was likely already done
47
- */
48
- const rootEslintConfigExists = host.exists('.eslintrc.json');
49
- /**
50
- * Create the standard (which is applicable to the current package) ESLint setup
51
- * for converting the project.
52
- */
53
- const eslintInitInstallTask = yield projectConverter.initESLint();
54
- /**
55
- * Convert the root tslint.json and apply the converted rules to the root .eslintrc.json
56
- */
57
- const rootConfigInstallTask = yield projectConverter.convertRootTSLintConfig((json) => {
58
- json.overrides = [
59
- { files: ['*.ts'], rules: {} },
60
- { files: ['*.html'], rules: {} },
61
- ];
62
- return applyAngularRulesToCorrectOverrides(json);
63
- }, rootEslintConfigExists);
64
- /**
65
- * Convert the project's tslint.json to an equivalent ESLint config.
66
- */
67
- const projectConfigInstallTask = yield projectConverter.convertProjectConfig((json) => applyAngularRulesToCorrectOverrides(json));
68
- /**
69
- * Clean up the original TSLint configuration for the project.
70
- */
71
- projectConverter.removeProjectTSLintFile();
72
- // Only project shouldn't be added as a default
73
- const { project } = options, defaults = tslib_1.__rest(options, ["project"]);
74
- /**
75
- * Store user preferences for the collection
76
- */
77
- projectConverter.setDefaults('@nx/angular', defaults);
78
- /**
79
- * If the Angular project is an app which has an e2e project, try and convert that as well.
80
- */
81
- let cypressInstallTask = () => Promise.resolve(undefined);
82
- const e2eProjectName = projectConverter.getE2EProjectName();
83
- if (e2eProjectName) {
84
- try {
85
- cypressInstallTask = yield (0, cypress_1.conversionGenerator)(host, {
86
- project: e2eProjectName,
87
- ignoreExistingTslintConfig: options.ignoreExistingTslintConfig,
88
- /**
89
- * We can always set this to false, because it will already be handled by the next
90
- * step of this parent generator, if applicable
91
- */
92
- removeTSLintIfNoMoreTSLintTargets: false,
93
- skipFormat: true,
94
- });
95
- }
96
- catch (_a) {
97
- devkit_1.logger.warn('This Angular app has an e2e project, but it was not possible to convert it from TSLint to ESLint. This could be because the e2e project did not have a tslint.json file to begin with.');
98
- }
99
- }
100
- /**
101
- * Based on user preference and remaining usage, remove TSLint from the workspace entirely.
102
- */
103
- let uninstallTSLintTask = () => Promise.resolve(undefined);
104
- if (options.removeTSLintIfNoMoreTSLintTargets &&
105
- !projectConverter.isTSLintUsedInWorkspace()) {
106
- uninstallTSLintTask = projectConverter.removeTSLintFromWorkspace();
11
+ async function conversionGenerator(host, options) {
12
+ /**
13
+ * The ProjectConverter instance encapsulates all the standard operations we need
14
+ * to perform in order to convert a project from TSLint to ESLint, as well as some
15
+ * extensibility points for adjusting the behavior on a per package basis.
16
+ *
17
+ * E.g. @nx/angular projects might need to make different changes to the final
18
+ * ESLint config when compared with @nx/next projects.
19
+ *
20
+ * See the ProjectConverter implementation for a full breakdown of what it does.
21
+ */
22
+ const projectConverter = new linter_1.ProjectConverter({
23
+ host,
24
+ projectName: options.project,
25
+ ignoreExistingTslintConfig: options.ignoreExistingTslintConfig,
26
+ eslintInitializer: async ({ projectName, projectConfig }) => {
27
+ await (0, add_linting_1.addLintingGenerator)(host, {
28
+ projectName,
29
+ projectRoot: projectConfig.root,
30
+ prefix: projectConfig.prefix || 'app',
31
+ /**
32
+ * We set the parserOptions.project config just in case the converted config uses
33
+ * rules which require type-checking. Later in the conversion we check if it actually
34
+ * does and remove the config again if it doesn't, so that it is most efficient.
35
+ */
36
+ setParserOptionsProject: true,
37
+ skipFormat: true,
38
+ });
39
+ },
40
+ });
41
+ /**
42
+ * If root eslint configuration already exists it will not be recreated
43
+ * but we also don't want to re-run the tslint config conversion
44
+ * as it was likely already done
45
+ */
46
+ const rootEslintConfigExists = host.exists('.eslintrc.json');
47
+ /**
48
+ * Create the standard (which is applicable to the current package) ESLint setup
49
+ * for converting the project.
50
+ */
51
+ const eslintInitInstallTask = await projectConverter.initESLint();
52
+ /**
53
+ * Convert the root tslint.json and apply the converted rules to the root .eslintrc.json
54
+ */
55
+ const rootConfigInstallTask = await projectConverter.convertRootTSLintConfig((json) => {
56
+ json.overrides = [
57
+ { files: ['*.ts'], rules: {} },
58
+ { files: ['*.html'], rules: {} },
59
+ ];
60
+ return applyAngularRulesToCorrectOverrides(json);
61
+ }, rootEslintConfigExists);
62
+ /**
63
+ * Convert the project's tslint.json to an equivalent ESLint config.
64
+ */
65
+ const projectConfigInstallTask = await projectConverter.convertProjectConfig((json) => applyAngularRulesToCorrectOverrides(json));
66
+ /**
67
+ * Clean up the original TSLint configuration for the project.
68
+ */
69
+ projectConverter.removeProjectTSLintFile();
70
+ // Only project shouldn't be added as a default
71
+ const { project, ...defaults } = options;
72
+ /**
73
+ * Store user preferences for the collection
74
+ */
75
+ projectConverter.setDefaults('@nx/angular', defaults);
76
+ /**
77
+ * If the Angular project is an app which has an e2e project, try and convert that as well.
78
+ */
79
+ let cypressInstallTask = () => Promise.resolve(undefined);
80
+ const e2eProjectName = projectConverter.getE2EProjectName();
81
+ if (e2eProjectName) {
82
+ try {
83
+ cypressInstallTask = await (0, cypress_1.conversionGenerator)(host, {
84
+ project: e2eProjectName,
85
+ ignoreExistingTslintConfig: options.ignoreExistingTslintConfig,
86
+ /**
87
+ * We can always set this to false, because it will already be handled by the next
88
+ * step of this parent generator, if applicable
89
+ */
90
+ removeTSLintIfNoMoreTSLintTargets: false,
91
+ skipFormat: true,
92
+ });
107
93
  }
108
- if (!options.skipFormat) {
109
- yield (0, devkit_1.formatFiles)(host);
94
+ catch {
95
+ devkit_1.logger.warn('This Angular app has an e2e project, but it was not possible to convert it from TSLint to ESLint. This could be because the e2e project did not have a tslint.json file to begin with.');
110
96
  }
111
- return () => tslib_1.__awaiter(this, void 0, void 0, function* () {
112
- yield eslintInitInstallTask();
113
- yield rootConfigInstallTask();
114
- yield projectConfigInstallTask();
115
- yield cypressInstallTask();
116
- yield uninstallTSLintTask();
117
- });
118
- });
97
+ }
98
+ /**
99
+ * Based on user preference and remaining usage, remove TSLint from the workspace entirely.
100
+ */
101
+ let uninstallTSLintTask = () => Promise.resolve(undefined);
102
+ if (options.removeTSLintIfNoMoreTSLintTargets &&
103
+ !projectConverter.isTSLintUsedInWorkspace()) {
104
+ uninstallTSLintTask = projectConverter.removeTSLintFromWorkspace();
105
+ }
106
+ if (!options.skipFormat) {
107
+ await (0, devkit_1.formatFiles)(host);
108
+ }
109
+ return async () => {
110
+ await eslintInitInstallTask();
111
+ await rootConfigInstallTask();
112
+ await projectConfigInstallTask();
113
+ await cypressInstallTask();
114
+ await uninstallTSLintTask();
115
+ };
119
116
  }
120
117
  exports.conversionGenerator = conversionGenerator;
121
118
  /**