@nrwl/angular 15.2.0 → 15.3.0-beta.0

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 (109) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/fesm2015/nrwl-angular-mf.mjs +0 -1
  3. package/fesm2015/nrwl-angular-testing.mjs +0 -1
  4. package/fesm2015/nrwl-angular.mjs +0 -1
  5. package/fesm2020/nrwl-angular-mf.mjs +0 -1
  6. package/fesm2020/nrwl-angular-testing.mjs +0 -1
  7. package/fesm2020/nrwl-angular.mjs +0 -1
  8. package/migrations.json +17 -0
  9. package/package.json +9 -9
  10. package/plugins/component-testing.js +6 -5
  11. package/plugins/component-testing.js.map +1 -1
  12. package/src/builders/utilities/buildable-libs.d.ts +1 -1
  13. package/src/builders/utilities/buildable-libs.js +2 -2
  14. package/src/builders/utilities/buildable-libs.js.map +1 -1
  15. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js +6 -1
  16. package/src/builders/webpack-dev-server/webpack-dev-server.impl.js.map +1 -1
  17. package/src/builders/webpack-server/webpack-server.impl.js +18 -1
  18. package/src/builders/webpack-server/webpack-server.impl.js.map +1 -1
  19. package/src/generators/application/lib/add-e2e.js +1 -0
  20. package/src/generators/application/lib/add-e2e.js.map +1 -1
  21. package/src/generators/application/lib/add-protractor.d.ts +1 -1
  22. package/src/generators/application/lib/add-protractor.js.map +1 -1
  23. package/src/generators/application/lib/normalize-options.js +10 -7
  24. package/src/generators/application/lib/normalize-options.js.map +1 -1
  25. package/src/generators/application/lib/nrwl-home-tpl.js +1 -1
  26. package/src/generators/application/lib/update-config-files.js +1 -1
  27. package/src/generators/application/lib/update-config-files.js.map +1 -1
  28. package/src/generators/application/schema.d.ts +1 -0
  29. package/src/generators/application/schema.json +6 -0
  30. package/src/generators/component/lib/normalize-options.js +4 -10
  31. package/src/generators/component/lib/normalize-options.js.map +1 -1
  32. package/src/generators/component-cypress-spec/lib/get-component-selector.js +1 -1
  33. package/src/generators/component-cypress-spec/lib/get-component-selector.js.map +1 -1
  34. package/src/generators/host/host.js +0 -28
  35. package/src/generators/host/host.js.map +1 -1
  36. package/src/generators/karma-project/files/{karma.conf.js__tmpl__ → common/karma.conf.js__tmpl__} +1 -1
  37. package/src/generators/karma-project/files/{tsconfig.spec.json → common/tsconfig.spec.json} +0 -1
  38. package/src/generators/karma-project/files/root-project/karma.conf.js__tmpl__ +44 -0
  39. package/src/generators/karma-project/files/workspace-with-root-project/karma.conf.js__tmpl__ +15 -0
  40. package/src/generators/karma-project/karma-project.d.ts +2 -2
  41. package/src/generators/karma-project/karma-project.js +2 -1
  42. package/src/generators/karma-project/karma-project.js.map +1 -1
  43. package/src/generators/karma-project/lib/generate-karma-project-files.js +23 -2
  44. package/src/generators/karma-project/lib/generate-karma-project-files.js.map +1 -1
  45. package/src/generators/karma-project/lib/update-tsconfig.js +17 -3
  46. package/src/generators/karma-project/lib/update-tsconfig.js.map +1 -1
  47. package/src/generators/karma-project/lib/update-workspace-config.js +5 -2
  48. package/src/generators/karma-project/lib/update-workspace-config.js.map +1 -1
  49. package/src/generators/library/lib/update-ng-package.js +1 -1
  50. package/src/generators/library/lib/update-ng-package.js.map +1 -1
  51. package/src/generators/library/lib/update-tsconfig.d.ts +1 -1
  52. package/src/generators/library/lib/update-tsconfig.js +1 -1
  53. package/src/generators/library/lib/update-tsconfig.js.map +1 -1
  54. package/src/generators/remote/files/src/main.server.ts__tmpl__ +66 -0
  55. package/src/generators/remote/files/webpack.server.config.js__tmpl__ +3 -0
  56. package/src/generators/remote/lib/add-ssr.d.ts +3 -0
  57. package/src/generators/remote/lib/add-ssr.js +37 -0
  58. package/src/generators/remote/lib/add-ssr.js.map +1 -0
  59. package/src/generators/remote/lib/find-next-available-port.d.ts +2 -0
  60. package/src/generators/remote/lib/find-next-available-port.js +19 -0
  61. package/src/generators/remote/lib/find-next-available-port.js.map +1 -0
  62. package/src/generators/remote/lib/index.d.ts +2 -0
  63. package/src/generators/remote/lib/index.js +6 -0
  64. package/src/generators/remote/lib/index.js.map +1 -0
  65. package/src/generators/remote/remote.d.ts +1 -1
  66. package/src/generators/remote/remote.js +10 -70
  67. package/src/generators/remote/remote.js.map +1 -1
  68. package/src/generators/remote/schema.d.ts +1 -0
  69. package/src/generators/remote/schema.json +5 -0
  70. package/src/generators/{host/files → setup-mf/files/host-files}/app.component.spec.ts__tmpl__ +0 -0
  71. package/src/generators/setup-mf/lib/add-remote-entry.js +16 -18
  72. package/src/generators/setup-mf/lib/add-remote-entry.js.map +1 -1
  73. package/src/generators/setup-mf/lib/add-remote-to-host.js +1 -1
  74. package/src/generators/setup-mf/lib/add-remote-to-host.js.map +1 -1
  75. package/src/generators/setup-mf/lib/generate-config.d.ts +1 -1
  76. package/src/generators/setup-mf/lib/generate-config.js +5 -5
  77. package/src/generators/setup-mf/lib/index.d.ts +2 -0
  78. package/src/generators/setup-mf/lib/index.js +2 -0
  79. package/src/generators/setup-mf/lib/index.js.map +1 -1
  80. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +3 -0
  81. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +60 -0
  82. package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js.map +1 -0
  83. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js +1 -1
  84. package/src/generators/setup-mf/lib/setup-host-if-dynamic.js.map +1 -1
  85. package/src/generators/setup-mf/lib/update-host-app-routes.d.ts +3 -0
  86. package/src/generators/setup-mf/lib/update-host-app-routes.js +34 -0
  87. package/src/generators/setup-mf/lib/update-host-app-routes.js.map +1 -0
  88. package/src/generators/setup-mf/setup-mf.js +9 -3
  89. package/src/generators/setup-mf/setup-mf.js.map +1 -1
  90. package/src/generators/setup-ssr/files/src/__main__ +0 -8
  91. package/src/generators/setup-ssr/files/src/main.ts__tpl__ +0 -6
  92. package/src/generators/setup-ssr/lib/update-app-module.js +1 -1
  93. package/src/generators/setup-ssr/lib/update-app-module.js.map +1 -1
  94. package/src/generators/setup-ssr/lib/update-project-config.js +6 -10
  95. package/src/generators/setup-ssr/lib/update-project-config.js.map +1 -1
  96. package/src/generators/utils/path.js +3 -3
  97. package/src/generators/utils/path.js.map +1 -1
  98. package/src/generators/utils/storybook-ast/module-info.js +1 -1
  99. package/src/generators/utils/storybook-ast/module-info.js.map +1 -1
  100. package/src/generators/utils/storybook-ast/storybook-inputs.js +10 -9
  101. package/src/generators/utils/storybook-ast/storybook-inputs.js.map +1 -1
  102. package/src/migrations/update-15-2-0/update-typescript-target.js +2 -0
  103. package/src/migrations/update-15-2-0/update-typescript-target.js.map +1 -1
  104. package/src/utils/nx-devkit/ast-utils.js +6 -6
  105. package/src/utils/nx-devkit/ast-utils.js.map +1 -1
  106. package/src/utils/versions.d.ts +4 -1
  107. package/src/utils/versions.js +5 -2
  108. package/src/utils/versions.js.map +1 -1
  109. package/src/generators/karma-project/files/src/test.ts__tmpl__ +0 -22
@@ -0,0 +1,15 @@
1
+ // Karma configuration file, see link for more information
2
+ // https://karma-runner.github.io/6.4/config/configuration-file.html
3
+
4
+ const { join } = require('path');
5
+ const setBaseKarmaConfig = require('<%= offsetFromRoot %>karma.conf');
6
+
7
+ module.exports = function (config) {
8
+ setBaseKarmaConfig(config);
9
+
10
+ config.set({
11
+ coverageReporter: {
12
+ dir: join(__dirname, '<%= offsetFromRoot %>coverage/<%= projectRoot %>')
13
+ }
14
+ });
15
+ };
@@ -1,4 +1,4 @@
1
- import type { Tree } from '@nrwl/devkit';
1
+ import type { GeneratorCallback, Tree } from '@nrwl/devkit';
2
2
  import type { KarmaProjectOptions } from './schema';
3
- export declare function karmaProjectGenerator(tree: Tree, options: KarmaProjectOptions): Promise<void>;
3
+ export declare function karmaProjectGenerator(tree: Tree, options: KarmaProjectOptions): Promise<GeneratorCallback>;
4
4
  export default karmaProjectGenerator;
@@ -10,7 +10,7 @@ const update_workspace_config_1 = require("./lib/update-workspace-config");
10
10
  const karma_1 = require("../karma/karma");
11
11
  function karmaProjectGenerator(tree, options) {
12
12
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
- (0, karma_1.karmaGenerator)(tree, options);
13
+ const installTask = (0, karma_1.karmaGenerator)(tree, options);
14
14
  (0, check_test_target_1.checkProjectTestTarget)(tree, options.project);
15
15
  (0, generate_karma_project_files_1.generateKarmaProjectFiles)(tree, options.project);
16
16
  (0, update_tsconfig_1.updateTsConfigs)(tree, options.project);
@@ -18,6 +18,7 @@ function karmaProjectGenerator(tree, options) {
18
18
  if (!options.skipFormat) {
19
19
  yield (0, devkit_1.formatFiles)(tree);
20
20
  }
21
+ return installTask;
21
22
  });
22
23
  }
23
24
  exports.karmaProjectGenerator = karmaProjectGenerator;
@@ -1 +1 @@
1
- {"version":3,"file":"karma-project.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/karma-project/karma-project.ts"],"names":[],"mappings":";;;;AACA,yCAA2C;AAC3C,+DAAiE;AACjE,qFAA+E;AAC/E,2DAAwD;AACxD,2EAAsE;AAEtE,0CAAgD;AAEhD,SAAsB,qBAAqB,CACzC,IAAU,EACV,OAA4B;;QAE5B,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAA,0CAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAA,wDAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAA,iCAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,IAAA,+CAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;IACH,CAAC;CAAA;AAZD,sDAYC;AAED,kBAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"karma-project.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/karma-project/karma-project.ts"],"names":[],"mappings":";;;;AACA,yCAA2C;AAC3C,+DAAiE;AACjE,qFAA+E;AAC/E,2DAAwD;AACxD,2EAAsE;AAEtE,0CAAgD;AAEhD,SAAsB,qBAAqB,CACzC,IAAU,EACV,OAA4B;;QAE5B,MAAM,WAAW,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,IAAA,0CAAsB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAA,wDAAyB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAA,iCAAe,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,IAAA,+CAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AAfD,sDAeC;AAED,kBAAe,qBAAqB,CAAC"}
@@ -4,12 +4,33 @@ exports.generateKarmaProjectFiles = void 0;
4
4
  const devkit_1 = require("@nrwl/devkit");
5
5
  function generateKarmaProjectFiles(tree, project) {
6
6
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, project);
7
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files'), projectConfig.root, {
7
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'common'), projectConfig.root, {
8
8
  tmpl: '',
9
9
  projectRoot: projectConfig.root,
10
- isLibrary: projectConfig.projectType === 'library',
11
10
  offsetFromRoot: (0, devkit_1.offsetFromRoot)(projectConfig.root),
12
11
  });
12
+ if (projectConfig.root === '' || projectConfig.root === '.') {
13
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'root-project'), projectConfig.root, {
14
+ tmpl: '',
15
+ projectName: project,
16
+ });
17
+ }
18
+ else if (isWorkspaceWithProjectAtRoot(tree)) {
19
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '..', 'files', 'workspace-with-root-project'), projectConfig.root, {
20
+ tmpl: '',
21
+ projectRoot: projectConfig.root,
22
+ offsetFromRoot: (0, devkit_1.offsetFromRoot)(projectConfig.root),
23
+ });
24
+ }
13
25
  }
14
26
  exports.generateKarmaProjectFiles = generateKarmaProjectFiles;
27
+ function isWorkspaceWithProjectAtRoot(tree) {
28
+ const projects = (0, devkit_1.getProjects)(tree);
29
+ for (const [, project] of projects) {
30
+ if (project.root === '.' || project.root === '') {
31
+ return true;
32
+ }
33
+ }
34
+ return false;
35
+ }
15
36
  //# sourceMappingURL=generate-karma-project-files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-karma-project-files.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/karma-project/lib/generate-karma-project-files.ts"],"names":[],"mappings":";;;AACA,yCAKsB;AAEtB,SAAgB,yBAAyB,CAAC,IAAU,EAAE,OAAe;IACnE,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAC3C,aAAa,CAAC,IAAI,EAClB;QACE,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,aAAa,CAAC,IAAI;QAC/B,SAAS,EAAE,aAAa,CAAC,WAAW,KAAK,SAAS;QAClD,cAAc,EAAE,IAAA,uBAAc,EAAC,aAAa,CAAC,IAAI,CAAC;KACnD,CACF,CAAC;AACJ,CAAC;AAbD,8DAaC"}
1
+ {"version":3,"file":"generate-karma-project-files.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/karma-project/lib/generate-karma-project-files.ts"],"names":[],"mappings":";;;AACA,yCAMsB;AAEtB,SAAgB,yBAAyB,CAAC,IAAU,EAAE,OAAe;IACnE,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EACrD,aAAa,CAAC,IAAI,EAClB;QACE,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,aAAa,CAAC,IAAI;QAC/B,cAAc,EAAE,IAAA,uBAAc,EAAC,aAAa,CAAC,IAAI,CAAC;KACnD,CACF,CAAC;IAEF,IAAI,aAAa,CAAC,IAAI,KAAK,EAAE,IAAI,aAAa,CAAC,IAAI,KAAK,GAAG,EAAE;QAC3D,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,EAC3D,aAAa,CAAC,IAAI,EAClB;YACE,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,OAAO;SACrB,CACF,CAAC;KACH;SAAM,IAAI,4BAA4B,CAAC,IAAI,CAAC,EAAE;QAC7C,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,SAAS,EACT,IAAI,EACJ,OAAO,EACP,6BAA6B,CAC9B,EACD,aAAa,CAAC,IAAI,EAClB;YACE,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,aAAa,CAAC,IAAI;YAC/B,cAAc,EAAE,IAAA,uBAAc,EAAC,aAAa,CAAC,IAAI,CAAC;SACnD,CACF,CAAC;KACH;AACH,CAAC;AAxCD,8DAwCC;AAED,SAAS,4BAA4B,CAAC,IAAU;IAC9C,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE;QAClC,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateTsConfigs = void 0;
4
4
  const devkit_1 = require("@nrwl/devkit");
5
5
  function updateTsConfigs(tree, project) {
6
+ var _a, _b;
6
7
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, project);
7
8
  (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.json'), (json) => {
8
9
  return Object.assign(Object.assign({}, json), { references: [
@@ -12,9 +13,22 @@ function updateTsConfigs(tree, project) {
12
13
  },
13
14
  ] });
14
15
  });
15
- const extraFiles = projectConfig.projectType === 'library' ? [] : ['src/polyfills.ts'];
16
- return (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.spec.json'), (json) => {
17
- return Object.assign(Object.assign({}, json), { files: [...json.files, ...extraFiles] });
16
+ let extraFiles = [];
17
+ if (projectConfig.projectType == 'application' &&
18
+ ((_b = (_a = projectConfig.targets.build) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.polyfills) &&
19
+ typeof projectConfig.targets.build.options.polyfills === 'string') {
20
+ let polyfillsPath = projectConfig.targets.build.options.polyfills;
21
+ polyfillsPath = polyfillsPath.startsWith(projectConfig.root)
22
+ ? polyfillsPath.replace(`${projectConfig.root}/`, '')
23
+ : polyfillsPath;
24
+ extraFiles = [polyfillsPath];
25
+ }
26
+ if (!extraFiles.length) {
27
+ return;
28
+ }
29
+ (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.spec.json'), (json) => {
30
+ var _a;
31
+ return Object.assign(Object.assign({}, json), { files: [...((_a = json.files) !== null && _a !== void 0 ? _a : []), ...extraFiles] });
18
32
  });
19
33
  }
20
34
  exports.updateTsConfigs = updateTsConfigs;
@@ -1 +1 @@
1
- {"version":3,"file":"update-tsconfig.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/karma-project/lib/update-tsconfig.ts"],"names":[],"mappings":";;;AACA,yCAIsB;AAEtB,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9D,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,EACtD,CAAC,IAAI,EAAE,EAAE;QACP,uCACK,IAAI,KACP,UAAU,EAAE;gBACV,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC1B;oBACE,IAAI,EAAE,sBAAsB;iBAC7B;aACF,IACD;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,UAAU,GACd,aAAa,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACtE,OAAO,IAAA,mBAAU,EACf,IAAI,EACJ,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAC3D,CAAC,IAAI,EAAE,EAAE;QACP,uCACK,IAAI,KACP,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,IACrC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AA/BD,0CA+BC"}
1
+ {"version":3,"file":"update-tsconfig.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/karma-project/lib/update-tsconfig.ts"],"names":[],"mappings":";;;AACA,yCAIsB;AAEtB,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;;IACzD,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE9D,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,EACtD,CAAC,IAAI,EAAE,EAAE;QACP,uCACK,IAAI,KACP,UAAU,EAAE;gBACV,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC1B;oBACE,IAAI,EAAE,sBAAsB;iBAC7B;aACF,IACD;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IACE,aAAa,CAAC,WAAW,IAAI,aAAa;SAC1C,MAAA,MAAA,aAAa,CAAC,OAAO,CAAC,KAAK,0CAAE,OAAO,0CAAE,SAAS,CAAA;QAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EACjE;QACA,IAAI,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAClE,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;YAC1D,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC;QAClB,UAAU,GAAG,CAAC,aAAa,CAAC,CAAC;KAC9B;IAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,OAAO;KACR;IAED,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAC3D,CAAC,IAAI,EAAE,EAAE;;QACP,uCACK,IAAI,KACP,KAAK,EAAE,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,IAC7C;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AA9CD,0CA8CC"}
@@ -3,17 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateWorkspaceConfig = void 0;
4
4
  const devkit_1 = require("@nrwl/devkit");
5
5
  function updateWorkspaceConfig(tree, project) {
6
+ var _a, _b;
6
7
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, project);
7
8
  projectConfig.targets.test = {
8
9
  executor: '@angular-devkit/build-angular:karma',
9
10
  options: {
10
- main: (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'test.ts'),
11
11
  tsConfig: (0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.spec.json'),
12
12
  karmaConfig: (0, devkit_1.joinPathFragments)(projectConfig.root, 'karma.conf.js'),
13
+ polyfills: ['zone.js', 'zone.js/testing'],
13
14
  },
14
15
  };
15
16
  if (projectConfig.projectType === 'application') {
16
- projectConfig.targets.test.options = Object.assign(Object.assign({}, projectConfig.targets.test.options), { polyfills: (0, devkit_1.joinPathFragments)(projectConfig.sourceRoot, 'polyfills.ts'), styles: [], scripts: [], assets: [] });
17
+ const polyfills = (_b = (_a = projectConfig.targets.build) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.polyfills;
18
+ let polyfillsPath = polyfills && typeof polyfills === 'string' ? polyfills : undefined;
19
+ projectConfig.targets.test.options = Object.assign(Object.assign({}, projectConfig.targets.test.options), { polyfills: polyfillsPath !== null && polyfillsPath !== void 0 ? polyfillsPath : projectConfig.targets.test.options.polyfills, styles: [], scripts: [], assets: [] });
17
20
  }
18
21
  if (projectConfig.targets.lint &&
19
22
  projectConfig.targets.lint.executor ===
@@ -1 +1 @@
1
- {"version":3,"file":"update-workspace-config.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/karma-project/lib/update-workspace-config.ts"],"names":[],"mappings":";;;AACA,yCAIsB;AAEtB,SAAgB,qBAAqB,CAAC,IAAU,EAAE,OAAe;IAC/D,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,aAAa,CAAC,OAAO,CAAC,IAAI,GAAG;QAC3B,QAAQ,EAAE,qCAAqC;QAC/C,OAAO,EAAE;YACP,IAAI,EAAE,IAAA,0BAAiB,EAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC;YAC5D,QAAQ,EAAE,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC;YACrE,WAAW,EAAE,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;SACpE;KACF,CAAC;IAEF,IAAI,aAAa,CAAC,WAAW,KAAK,aAAa,EAAE;QAC/C,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,mCAC7B,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,KACrC,SAAS,EAAE,IAAA,0BAAiB,EAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,EACtE,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,EAAE,GACX,CAAC;KACH;IAED,IACE,aAAa,CAAC,OAAO,CAAC,IAAI;QAC1B,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ;YACjC,sCAAsC,EACxC;QACA,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG;YAC5C,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9C,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC;SAC5D,CAAC;KACH;IAED,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAjCD,sDAiCC"}
1
+ {"version":3,"file":"update-workspace-config.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/karma-project/lib/update-workspace-config.ts"],"names":[],"mappings":";;;AACA,yCAIsB;AAEtB,SAAgB,qBAAqB,CAAC,IAAU,EAAE,OAAe;;IAC/D,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,aAAa,CAAC,OAAO,CAAC,IAAI,GAAG;QAC3B,QAAQ,EAAE,qCAAqC;QAC/C,OAAO,EAAE;YACP,QAAQ,EAAE,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC;YACrE,WAAW,EAAE,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC;YACnE,SAAS,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;SAC1C;KACF,CAAC;IAEF,IAAI,aAAa,CAAC,WAAW,KAAK,aAAa,EAAE;QAC/C,MAAM,SAAS,GAAG,MAAA,MAAA,aAAa,CAAC,OAAO,CAAC,KAAK,0CAAE,OAAO,0CAAE,SAAS,CAAC;QAClE,IAAI,aAAa,GACf,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAErE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,mCAC7B,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,KACrC,SAAS,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EACxE,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,EAAE,GACX,CAAC;KACH;IAED,IACE,aAAa,CAAC,OAAO,CAAC,IAAI;QAC1B,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ;YACjC,sCAAsC,EACxC;QACA,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG;YAC5C,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC9C,IAAA,0BAAiB,EAAC,aAAa,CAAC,IAAI,EAAE,oBAAoB,CAAC;SAC5D,CAAC;KACH;IAED,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AArCD,sDAqCC"}
@@ -6,7 +6,7 @@ function updateNgPackage(host, options) {
6
6
  if (!(options.publishable || options.buildable)) {
7
7
  return;
8
8
  }
9
- const dest = (0, devkit_1.joinPathFragments)((0, devkit_1.offsetFromRoot)(options.projectRoot), 'dist', (0, devkit_1.getWorkspaceLayout)(host).libsDir, options.projectDirectory);
9
+ const dest = (0, devkit_1.joinPathFragments)((0, devkit_1.offsetFromRoot)(options.projectRoot), 'dist', options.projectRoot);
10
10
  (0, devkit_1.updateJson)(host, `${options.projectRoot}/ng-package.json`, (json) => {
11
11
  let $schema = json.$schema;
12
12
  if (json.$schema && json.$schema.indexOf('node_modules') >= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"update-ng-package.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/library/lib/update-ng-package.ts"],"names":[],"mappings":";;;AAAA,yCAMsB;AAGtB,SAAgB,eAAe,CAC7B,IAAU,EACV,OAA2C;IAE3C,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;KACR;IAED,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAC5B,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,EACnC,MAAM,EACN,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,EAChC,OAAO,CAAC,gBAAgB,CACzB,CAAC;IAEF,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAClE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7D,OAAO,GAAG,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CACvE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CACpB,EAAE,CAAC;SACL;QACD,uCACK,IAAI,KACP,IAAI;YACJ,OAAO,IACP;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA7BD,0CA6BC"}
1
+ {"version":3,"file":"update-ng-package.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/library/lib/update-ng-package.ts"],"names":[],"mappings":";;;AAAA,yCAKsB;AAGtB,SAAgB,eAAe,CAC7B,IAAU,EACV,OAA2C;IAE3C,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;QAC/C,OAAO;KACR;IAED,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAC5B,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,EACnC,MAAM,EACN,OAAO,CAAC,WAAW,CACpB,CAAC;IAEF,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;QAClE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7D,OAAO,GAAG,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CACvE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CACpB,EAAE,CAAC;SACL;QACD,uCACK,IAAI,KACP,IAAI;YACJ,OAAO,IACP;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AA5BD,0CA4BC"}
@@ -1,3 +1,3 @@
1
- import { Tree } from '@nrwl/devkit';
1
+ import type { Tree } from '@nrwl/devkit';
2
2
  import { NormalizedSchema } from './normalized-schema';
3
3
  export declare function updateTsConfig(host: Tree, options: NormalizedSchema['libraryOptions']): void;
@@ -12,7 +12,7 @@ function updateRootConfig(host, options) {
12
12
  throw new Error(`You already have a library using the import path "${options.importPath}". Make sure to specify a unique one.`);
13
13
  }
14
14
  c.paths[options.importPath] = [
15
- (0, devkit_1.joinPathFragments)((0, devkit_1.getWorkspaceLayout)(host).libsDir, options.projectDirectory, '/src/index.ts'),
15
+ (0, devkit_1.joinPathFragments)(options.projectRoot, '/src/index.ts'),
16
16
  ];
17
17
  return json;
18
18
  });
@@ -1 +1 @@
1
- {"version":3,"file":"update-tsconfig.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/library/lib/update-tsconfig.ts"],"names":[],"mappings":";;;AAAA,yCAKsB;AACtB,yEAAqF;AAGrF,SAAS,gBAAgB,CACvB,IAAU,EACV,OAA2C;IAE3C,IAAA,mBAAU,EAAC,IAAI,EAAE,IAAA,sCAAyB,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,CAAC,UAAU,uCAAuC,CAC/G,CAAC;SACH;QAED,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;YAC5B,IAAA,0BAAiB,EACf,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,EAChC,OAAO,CAAC,gBAAgB,EACxB,eAAe,CAChB;SACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAU,EACV,OAA2C;IAE3C,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QACpE,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;gBACvB,gBAAgB;gBAChB,cAAc;gBACd,cAAc;aACf,CAAC;SACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iCAC9D,IAAI,KACP,eAAe,kCACV,IAAI,CAAC,eAAe,KACvB,MAAM,EAAE,QAAQ,EAChB,uBAAuB,EAAE,KAAK,OAEhC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAU,EACV,OAA2C;IAE3C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE;QAC5C,OAAO,IAAA,mBAAU,EACf,IAAI,EACJ,GAAG,OAAO,CAAC,WAAW,yBAAyB,EAC/C,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;gBAC5C,OAAO,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC,CACF,CAAC;KACH;AACH,CAAC;AAED,SAAgB,cAAc,CAC5B,IAAU,EACV,OAA2C;IAE3C,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAPD,wCAOC"}
1
+ {"version":3,"file":"update-tsconfig.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/library/lib/update-tsconfig.ts"],"names":[],"mappings":";;;AACA,yCAA6D;AAC7D,yEAAqF;AAGrF,SAAS,gBAAgB,CACvB,IAAU,EACV,OAA2C;IAE3C,IAAA,mBAAU,EAAC,IAAI,EAAE,IAAA,sCAAyB,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;QAC/B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,CAAC,UAAU,uCAAuC,CAC/G,CAAC;SACH;QAED,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;YAC5B,IAAA,0BAAiB,EAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC;SACxD,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAU,EACV,OAA2C;IAE3C,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;QACpE,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,GAAG,CAAC;gBACT,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;gBACvB,gBAAgB;gBAChB,cAAc;gBACd,cAAc;aACf,CAAC;SACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,IAAA,mBAAU,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iCAC9D,IAAI,KACP,eAAe,kCACV,IAAI,CAAC,eAAe,KACvB,MAAM,EAAE,QAAQ,EAChB,uBAAuB,EAAE,KAAK,OAEhC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAU,EACV,OAA2C;IAE3C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE;QAC5C,OAAO,IAAA,mBAAU,EACf,IAAI,EACJ,GAAG,OAAO,CAAC,WAAW,yBAAyB,EAC/C,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;gBAC5C,OAAO,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC,CACF,CAAC;KACH;AACH,CAAC;AAED,SAAgB,cAAc,CAC5B,IAAU,EACV,OAA2C;IAE3C,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAPD,wCAOC"}
@@ -0,0 +1,66 @@
1
+ import 'zone.js/dist/zone-node';
2
+
3
+ import { APP_BASE_HREF } from '@angular/common';
4
+ import { ngExpressEngine } from '@nguniversal/express-engine';
5
+ import * as express from 'express';
6
+ import * as cors from 'cors';
7
+ import { existsSync } from 'fs';
8
+ import { join } from 'path';
9
+
10
+ import { AppServerModule } from './bootstrap.server';
11
+
12
+ // The Express app is exported so that it can be used by serverless Functions.
13
+ export function app(): express.Express {
14
+ const server = express();
15
+ const browserBundles = join(process.cwd(), 'dist/apps/<%= appName %>/browser');
16
+ const serverBundles = join(process.cwd(), 'dist/apps/<%= appName %>/server');
17
+
18
+ server.use(cors());
19
+ const indexHtml = existsSync(join(browserBundles, 'index.original.html'))
20
+ ? 'index.original.html'
21
+ : 'index';
22
+
23
+ // Our Universal express-engine (found @ https://github.com/angular/universal/tree/main/modules/express-engine)
24
+ server.engine(
25
+ 'html',
26
+ ngExpressEngine({
27
+ bootstrap: AppServerModule,
28
+ })
29
+ );
30
+
31
+ server.set('view engine', 'html');
32
+ server.set('views', browserBundles);
33
+
34
+
35
+ // Example Express Rest API endpoints
36
+ // server.get('/api/**', (req, res) => { });
37
+ // Serve static files from /browser
38
+ // serve static files
39
+ server.use('/', express.static(browserBundles, { maxAge: '1y' }));
40
+ server.use('/server', express.static(serverBundles, { maxAge: '1y' }));
41
+
42
+ // All regular routes use the Universal engine
43
+ server.get('*', (req, res) => {
44
+
45
+ res.render(indexHtml, {
46
+ req,
47
+ providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }],
48
+ });
49
+ });
50
+
51
+ return server;
52
+ }
53
+
54
+ function run(): void {
55
+ const port = process.env['PORT'] || 4000;
56
+
57
+ // Start up the Node server
58
+ const server = app();
59
+ server.listen(port, () => {
60
+ console.log(`Node Express server listening on http://localhost:${port}`);
61
+ });
62
+ }
63
+
64
+ run();
65
+
66
+ export * from './bootstrap.server';
@@ -0,0 +1,3 @@
1
+ const { withModuleFederationForSSR } = require('@nrwl/angular/module-federation');
2
+ const config = require('./module-federation.config');
3
+ module.exports = withModuleFederationForSSR(config)
@@ -0,0 +1,3 @@
1
+ import type { Tree } from '@nrwl/devkit';
2
+ import type { Schema } from '../schema';
3
+ export declare function addSsr(tree: Tree, options: Schema, appName: string): Promise<import("@nrwl/devkit").GeneratorCallback>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addSsr = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nrwl/devkit");
6
+ const setup_ssr_1 = require("../../setup-ssr/setup-ssr");
7
+ const versions_1 = require("../../../utils/versions");
8
+ function addSsr(tree, options, appName) {
9
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ let project = (0, devkit_1.readProjectConfiguration)(tree, appName);
11
+ yield (0, setup_ssr_1.default)(tree, {
12
+ project: appName,
13
+ });
14
+ tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
15
+ tree.write((0, devkit_1.joinPathFragments)(project.root, 'server.ts'), "import('./src/main.server');");
16
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files'), project.root, {
17
+ appName,
18
+ tmpl: '',
19
+ });
20
+ console.log('after generate files');
21
+ // update project.json
22
+ project = (0, devkit_1.readProjectConfiguration)(tree, appName);
23
+ project.targets.server.executor = '@nrwl/angular:webpack-server';
24
+ project.targets.server.options.customWebpackConfig = {
25
+ path: (0, devkit_1.joinPathFragments)(project.root, 'webpack.server.config.js'),
26
+ };
27
+ (0, devkit_1.updateProjectConfiguration)(tree, appName, project);
28
+ const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, {
29
+ cors: versions_1.corsVersion,
30
+ express: versions_1.expressVersion,
31
+ '@module-federation/node': versions_1.moduleFederationNodeVersion,
32
+ }, {});
33
+ return installTask;
34
+ });
35
+ }
36
+ exports.addSsr = addSsr;
37
+ //# sourceMappingURL=add-ssr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-ssr.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/remote/lib/add-ssr.ts"],"names":[],"mappings":";;;;AACA,yCAMsB;AAGtB,yDAAiD;AACjD,sDAIiC;AAEjC,SAAsB,MAAM,CAAC,IAAU,EAAE,OAAe,EAAE,OAAe;;QACvE,IAAI,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE;YACnB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CACT,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,EACvD,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAC7D,CAAC;QACF,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAC5C,8BAA8B,CAC/B,CAAC;QAEF,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE;YAC1E,OAAO;YACP,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAEpC,sBAAsB;QACtB,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAElD,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,8BAA8B,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,GAAG;YACnD,IAAI,EAAE,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,0BAA0B,CAAC;SAClE,CAAC;QAEF,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAA,qCAA4B,EAC9C,IAAI,EACJ;YACE,IAAI,EAAE,sBAAW;YACjB,OAAO,EAAE,yBAAc;YACvB,yBAAyB,EAAE,sCAA2B;SACvD,EACD,EAAE,CACH,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AA3CD,wBA2CC"}
@@ -0,0 +1,2 @@
1
+ import type { Tree } from '@nrwl/devkit';
2
+ export declare function findNextAvailablePort(tree: Tree): number;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findNextAvailablePort = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ const get_mf_projects_1 = require("../../../utils/get-mf-projects");
6
+ function findNextAvailablePort(tree) {
7
+ var _a, _b, _c;
8
+ const mfProjects = (0, get_mf_projects_1.getMFProjects)(tree);
9
+ const ports = new Set([4200]);
10
+ for (const mfProject of mfProjects) {
11
+ const { targets } = (0, devkit_1.readProjectConfiguration)(tree, mfProject);
12
+ const port = (_c = (_b = (_a = targets === null || targets === void 0 ? void 0 : targets.serve) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.port) !== null && _c !== void 0 ? _c : 4200;
13
+ ports.add(port);
14
+ }
15
+ const nextAvailablePort = Math.max(...ports) + 1;
16
+ return nextAvailablePort;
17
+ }
18
+ exports.findNextAvailablePort = findNextAvailablePort;
19
+ //# sourceMappingURL=find-next-available-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-next-available-port.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/remote/lib/find-next-available-port.ts"],"names":[],"mappings":";;;AACA,yCAAwD;AACxD,oEAA+D;AAE/D,SAAgB,qBAAqB,CAAC,IAAU;;IAC9C,MAAM,UAAU,GAAG,IAAA,+BAAa,EAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,OAAO,0CAAE,IAAI,mCAAI,IAAI,CAAC;QACnD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACjB;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAbD,sDAaC"}
@@ -0,0 +1,2 @@
1
+ export * from './find-next-available-port';
2
+ export * from './add-ssr';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./find-next-available-port"), exports);
5
+ tslib_1.__exportStar(require("./add-ssr"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/remote/lib/index.ts"],"names":[],"mappings":";;;AAAA,qEAA2C;AAC3C,oDAA0B"}
@@ -1,4 +1,4 @@
1
1
  import { Tree } from '@nrwl/devkit';
2
2
  import type { Schema } from './schema';
3
- export declare function remote(tree: Tree, options: Schema): Promise<() => void>;
3
+ export declare function remote(tree: Tree, options: Schema): Promise<import("@nrwl/devkit").GeneratorCallback>;
4
4
  export default remote;
@@ -4,22 +4,11 @@ exports.remote = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
6
  const application_1 = require("../application/application");
7
- const get_mf_projects_1 = require("../../utils/get-mf-projects");
8
7
  const project_1 = require("../utils/project");
9
8
  const setup_mf_1 = require("../setup-mf/setup-mf");
10
9
  const test_runners_1 = require("../../utils/test-runners");
11
- function findNextAvailablePort(tree) {
12
- var _a, _b, _c;
13
- const mfProjects = (0, get_mf_projects_1.getMFProjects)(tree);
14
- const ports = new Set([4200]);
15
- for (const mfProject of mfProjects) {
16
- const { targets } = (0, devkit_1.readProjectConfiguration)(tree, mfProject);
17
- const port = (_c = (_b = (_a = targets === null || targets === void 0 ? void 0 : targets.serve) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.port) !== null && _c !== void 0 ? _c : 4200;
18
- ports.add(port);
19
- }
20
- const nextAvailablePort = Math.max(...ports) + 1;
21
- return nextAvailablePort;
22
- }
10
+ const lib_1 = require("./lib");
11
+ const run_tasks_in_serial_1 = require("@nrwl/workspace/src/utilities/run-tasks-in-serial");
23
12
  function remote(tree, options) {
24
13
  var _a;
25
14
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -28,8 +17,8 @@ function remote(tree, options) {
28
17
  throw new Error(`The name of the application to be used as the host app does not exist. (${options.host})`);
29
18
  }
30
19
  const appName = (0, project_1.normalizeProjectName)(options.name, options.directory);
31
- const port = (_a = options.port) !== null && _a !== void 0 ? _a : findNextAvailablePort(tree);
32
- const installTask = yield (0, application_1.default)(tree, Object.assign(Object.assign({}, options), { routing: true, skipDefaultProject: true, port }));
20
+ const port = (_a = options.port) !== null && _a !== void 0 ? _a : (0, lib_1.findNextAvailablePort)(tree);
21
+ const appInstallTask = yield (0, application_1.default)(tree, Object.assign(Object.assign({}, options), { routing: true, skipDefaultProject: true, port }));
33
22
  const skipE2E = !options.e2eTestRunner || options.e2eTestRunner === test_runners_1.E2eTestRunner.None;
34
23
  yield (0, setup_mf_1.setupMf)(tree, {
35
24
  appName,
@@ -43,66 +32,17 @@ function remote(tree, options) {
43
32
  e2eProjectName: skipE2E ? undefined : `${appName}-e2e`,
44
33
  standalone: options.standalone,
45
34
  });
46
- removeDeadCode(tree, options);
35
+ let installTasks = [appInstallTask];
36
+ if (options.ssr) {
37
+ let ssrInstallTask = yield (0, lib_1.addSsr)(tree, options, appName);
38
+ installTasks.push(ssrInstallTask);
39
+ }
47
40
  if (!options.skipFormat) {
48
41
  yield (0, devkit_1.formatFiles)(tree);
49
42
  }
50
- return installTask;
43
+ return (0, run_tasks_in_serial_1.runTasksInSerial)(...installTasks);
51
44
  });
52
45
  }
53
46
  exports.remote = remote;
54
- function removeDeadCode(tree, options) {
55
- var _a;
56
- const projectName = (0, project_1.normalizeProjectName)(options.name, options.directory);
57
- const project = (0, devkit_1.readProjectConfiguration)(tree, projectName);
58
- ['css', 'less', 'scss', 'sass'].forEach((style) => {
59
- const pathToComponentStyle = (0, devkit_1.joinPathFragments)(project.sourceRoot, `app/app.component.${style}`);
60
- if (tree.exists(pathToComponentStyle)) {
61
- tree.delete(pathToComponentStyle);
62
- }
63
- });
64
- tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/nx-welcome.component.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/remote-entry/nx-welcome.component.ts'));
65
- tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.spec.ts'));
66
- tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.html'));
67
- const pathToAppComponent = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.ts');
68
- if (!options.standalone) {
69
- const component = tree
70
- .read(pathToAppComponent, 'utf-8')
71
- .split(options.inlineTemplate ? 'template' : 'templateUrl')[0] +
72
- `template: '<router-outlet></router-outlet>'
73
-
74
- })
75
- export class AppComponent {}`;
76
- tree.write(pathToAppComponent, component);
77
- tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts'), `import { NgModule } from '@angular/core';
78
- import { BrowserModule } from '@angular/platform-browser';
79
- import { RouterModule } from '@angular/router';
80
- import { AppComponent } from './app.component';
81
-
82
- @NgModule({
83
- declarations: [AppComponent],
84
- imports: [
85
- BrowserModule,
86
- RouterModule.forRoot([{
87
- path: '',
88
- loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)
89
- }], { initialNavigation: 'enabledBlocking' }),
90
- ],
91
- providers: [],
92
- bootstrap: [AppComponent],
93
- })
94
- export class AppModule {}`);
95
- }
96
- else {
97
- tree.delete(pathToAppComponent);
98
- const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : (0, devkit_1.readWorkspaceConfiguration)(tree).npmScope;
99
- const remoteEntrySelector = `${prefix}-${projectName}-entry`;
100
- const pathToIndexHtml = project.targets.build.options.index;
101
- const indexContents = tree.read(pathToIndexHtml, 'utf-8');
102
- const rootSelectorRegex = new RegExp(`${prefix}-root`, 'ig');
103
- const newIndexContents = indexContents.replace(rootSelectorRegex, remoteEntrySelector);
104
- tree.write(pathToIndexHtml, newIndexContents);
105
- }
106
- }
107
47
  exports.default = remote;
108
48
  //# sourceMappingURL=remote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/remote/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/remote/remote.ts"],"names":[],"mappings":";;;;AAAA,yCAA8D;AAE9D,4DAA8D;AAC9D,8CAAwD;AACxD,mDAA+C;AAC/C,2DAAyD;AACzD,+BAAsD;AACtD,2FAAqF;AAErF,SAAsB,MAAM,CAAC,IAAU,EAAE,OAAe;;;QACtD,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/C,MAAM,IAAI,KAAK,CACb,2EAA2E,OAAO,CAAC,IAAI,GAAG,CAC3F,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAA,8BAAoB,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAA,2BAAqB,EAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAoB,EAAC,IAAI,kCACjD,OAAO,KACV,OAAO,EAAE,IAAI,EACb,kBAAkB,EAAE,IAAI,EACxB,IAAI,IACJ,CAAC;QAEH,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,KAAK,4BAAa,CAAC,IAAI,CAAC;QAEzE,MAAM,IAAA,kBAAO,EAAC,IAAI,EAAE;YAClB,OAAO;YACP,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,IAAI;YACJ,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,UAAU,EAAE,IAAI;YAChB,OAAO;YACP,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM;YACtD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAEH,IAAI,YAAY,GAAG,CAAC,cAAc,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,cAAc,GAAG,MAAM,IAAA,YAAM,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1D,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,IAAA,sCAAgB,EAAC,GAAG,YAAY,CAAC,CAAC;;CAC1C;AA7CD,wBA6CC;AAED,kBAAe,MAAM,CAAC"}
@@ -25,4 +25,5 @@ export interface Schema {
25
25
  viewEncapsulation?: 'Emulated' | 'Native' | 'None';
26
26
  skipFormat?: boolean;
27
27
  standalone?: boolean;
28
+ ssr?: boolean;
28
29
  }
@@ -149,6 +149,11 @@
149
149
  "description": "Whether to generate a remote application with standalone components.",
150
150
  "type": "boolean",
151
151
  "default": false
152
+ },
153
+ "ssr": {
154
+ "description": "Whether to configure SSR for the remote application to be consumed by a host application using SSR.",
155
+ "type": "boolean",
156
+ "default": false
152
157
  }
153
158
  },
154
159
  "additionalProperties": false,
@@ -4,31 +4,29 @@ exports.addRemoteEntry = void 0;
4
4
  const devkit_1 = require("@nrwl/devkit");
5
5
  const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
6
6
  function addRemoteEntry(tree, { appName, routing, mfType, prefix, standalone }, appRoot) {
7
- if (mfType === 'remote') {
8
- prefix = prefix !== null && prefix !== void 0 ? prefix : (0, devkit_1.readWorkspaceConfiguration)(tree).npmScope;
9
- (0, devkit_1.generateFiles)(tree, standalone
10
- ? (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-entry-component-files')
11
- : (0, devkit_1.joinPathFragments)(__dirname, '../files/entry-module-files'), `${appRoot}/src/app/remote-entry`, {
12
- tmpl: '',
13
- appName,
14
- routing,
15
- prefix,
16
- });
17
- if (standalone && routing) {
18
- (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.routes').then(m => m.remoteRoutes)}`);
7
+ prefix = prefix !== null && prefix !== void 0 ? prefix : (0, devkit_1.readWorkspaceConfiguration)(tree).npmScope;
8
+ (0, devkit_1.generateFiles)(tree, standalone
9
+ ? (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-entry-component-files')
10
+ : (0, devkit_1.joinPathFragments)(__dirname, '../files/entry-module-files'), `${appRoot}/src/app/remote-entry`, {
11
+ tmpl: '',
12
+ appName,
13
+ routing,
14
+ prefix,
15
+ });
16
+ if (standalone && routing) {
17
+ (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.routes').then(m => m.remoteRoutes)}`);
18
+ }
19
+ else {
20
+ if (routing) {
21
+ (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)}`);
19
22
  }
20
- else {
21
- if (routing) {
22
- (0, route_utils_1.addRoute)(tree, (0, devkit_1.joinPathFragments)(appRoot, 'src/app/app.routes.ts'), `{path: '', loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)}`);
23
- }
24
- tree.write(`${appRoot}/src/app/app.module.ts`, `/*
23
+ tree.write(`${appRoot}/src/app/app.module.ts`, `/*
25
24
  * This RemoteEntryModule is imported here to allow TS to find the Module during
26
25
  * compilation, allowing it to be included in the built bundle. This is required
27
26
  * for the Module Federation Plugin to expose the Module correctly.
28
27
  * */
29
28
  import { RemoteEntryModule } from './remote-entry/entry.module';
30
29
  ${tree.read(`${appRoot}/src/app/app.module.ts`, 'utf-8')}`);
31
- }
32
30
  }
33
31
  }
34
32
  exports.addRemoteEntry = addRemoteEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"add-remote-entry.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/add-remote-entry.ts"],"names":[],"mappings":";;;AACA,yCAIsB;AAEtB,sEAAgE;AAEhE,SAAgB,cAAc,CAC5B,IAAU,EACV,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAU,EACxD,OAAe;IAEf,IAAI,MAAM,KAAK,QAAQ,EAAE;QACvB,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAA,mCAA0B,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC7D,IAAA,sBAAa,EACX,IAAI,EACJ,UAAU;YACR,CAAC,CAAC,IAAA,0BAAiB,EACf,SAAS,EACT,2CAA2C,CAC5C;YACH,CAAC,CAAC,IAAA,0BAAiB,EAAC,SAAS,EAAE,6BAA6B,CAAC,EAC/D,GAAG,OAAO,uBAAuB,EACjC;YACE,IAAI,EAAE,EAAE;YACR,OAAO;YACP,OAAO;YACP,MAAM;SACP,CACF,CAAC;QAEF,IAAI,UAAU,IAAI,OAAO,EAAE;YACzB,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,iGAAiG,CAClG,CAAC;SACH;aAAM;YACL,IAAI,OAAO,EAAE;gBACX,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,sGAAsG,CACvG,CAAC;aACH;YAED,IAAI,CAAC,KAAK,CACR,GAAG,OAAO,wBAAwB,EAClC;;;;;;EAMN,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,CACnD,CAAC;SACH;KACF;AACH,CAAC;AAnDD,wCAmDC"}
1
+ {"version":3,"file":"add-remote-entry.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mf/lib/add-remote-entry.ts"],"names":[],"mappings":";;;AACA,yCAIsB;AAEtB,sEAAgE;AAEhE,SAAgB,cAAc,CAC5B,IAAU,EACV,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAU,EACxD,OAAe;IAEf,MAAM,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAA,mCAA0B,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC7D,IAAA,sBAAa,EACX,IAAI,EACJ,UAAU;QACR,CAAC,CAAC,IAAA,0BAAiB,EACf,SAAS,EACT,2CAA2C,CAC5C;QACH,CAAC,CAAC,IAAA,0BAAiB,EAAC,SAAS,EAAE,6BAA6B,CAAC,EAC/D,GAAG,OAAO,uBAAuB,EACjC;QACE,IAAI,EAAE,EAAE;QACR,OAAO;QACP,OAAO;QACP,MAAM;KACP,CACF,CAAC;IAEF,IAAI,UAAU,IAAI,OAAO,EAAE;QACzB,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,iGAAiG,CAClG,CAAC;KACH;SAAM;QACL,IAAI,OAAO,EAAE;YACX,IAAA,sBAAQ,EACN,IAAI,EACJ,IAAA,0BAAiB,EAAC,OAAO,EAAE,uBAAuB,CAAC,EACnD,sGAAsG,CACvG,CAAC;SACH;QAED,IAAI,CAAC,KAAK,CACR,GAAG,OAAO,wBAAwB,EAClC;;;;;;EAMJ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,wBAAwB,EAAE,OAAO,CAAC,EAAE,CACrD,CAAC;KACH;AACH,CAAC;AAjDD,wCAiDC"}
@@ -16,7 +16,7 @@ function checkIsCommaNeeded(mfRemoteText) {
16
16
  }
17
17
  exports.checkIsCommaNeeded = checkIsCommaNeeded;
18
18
  function addRemoteToHost(tree, options) {
19
- if (options.mfType === 'remote' && options.host) {
19
+ if (options.host) {
20
20
  const hostProject = (0, devkit_1.readProjectConfiguration)(tree, options.host);
21
21
  const pathToMFManifest = (0, devkit_1.joinPathFragments)(hostProject.sourceRoot, 'assets/module-federation.manifest.json');
22
22
  const hostFederationType = determineHostFederationType(tree, pathToMFManifest);