@nrwl/angular 13.9.4 → 13.10.0-beta.3

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 (231) hide show
  1. package/esm2020/mfe/index.mjs +2 -0
  2. package/esm2020/mfe/mfe.mjs +45 -0
  3. package/esm2020/mfe/nrwl-angular-mfe.mjs +5 -0
  4. package/esm2020/src/runtime/nx/data-persistence.mjs +3 -3
  5. package/esm2020/src/runtime/nx/nx.module.mjs +4 -4
  6. package/executors.js +3 -3
  7. package/executors.js.map +1 -1
  8. package/executors.json +4 -4
  9. package/fesm2015/nrwl-angular-mfe.mjs +57 -0
  10. package/fesm2015/nrwl-angular-mfe.mjs.map +1 -0
  11. package/fesm2015/nrwl-angular.mjs +7 -7
  12. package/fesm2020/nrwl-angular-mfe.mjs +51 -0
  13. package/fesm2020/nrwl-angular-mfe.mjs.map +1 -0
  14. package/fesm2020/nrwl-angular.mjs +7 -7
  15. package/generators.js +26 -26
  16. package/generators.js.map +1 -1
  17. package/generators.json +32 -2
  18. package/mfe/index.d.ts +1 -0
  19. package/mfe/index.js +7 -0
  20. package/mfe/index.js.map +1 -0
  21. package/mfe/mfe.d.ts +4 -0
  22. package/mfe/mfe.js +56 -0
  23. package/mfe/mfe.js.map +1 -0
  24. package/mfe/ng-package.json +6 -0
  25. package/mfe/nrwl-angular-mfe.d.ts +5 -0
  26. package/mfe/package.json +10 -0
  27. package/migrations.json +89 -0
  28. package/module-federation/index.d.ts +1 -0
  29. package/module-federation/index.js +6 -0
  30. package/module-federation/index.js.map +1 -0
  31. package/package.json +17 -8
  32. package/scripts/nx-cli-warning.js +1 -1
  33. package/src/builders/webpack-browser/schema.json +3 -2
  34. package/src/builders/webpack-browser/webpack-browser.impl.js +11 -11
  35. package/src/builders/webpack-browser/webpack-browser.impl.js.map +1 -1
  36. package/src/builders/webpack-server/lib/index.js +1 -1
  37. package/src/builders/webpack-server/lib/index.js.map +1 -1
  38. package/src/builders/webpack-server/schema.json +3 -2
  39. package/src/builders/webpack-server/webpack-server.impl.js +9 -10
  40. package/src/builders/webpack-server/webpack-server.impl.js.map +1 -1
  41. package/src/executors/delegate-build/delegate-build.impl.js +6 -6
  42. package/src/executors/delegate-build/delegate-build.impl.js.map +1 -1
  43. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +1 -1
  44. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.transform.js +2 -2
  45. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +2 -2
  46. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ngc/compile-source-files.js +1 -1
  47. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +3 -3
  48. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +2 -2
  49. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +1 -1
  50. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +1 -1
  51. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +1 -1
  52. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +3 -3
  53. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +2 -2
  54. package/src/executors/package/package.impl.js +9 -9
  55. package/src/executors/package/package.impl.js.map +1 -1
  56. package/src/executors/utilities/tailwindcss.js +3 -3
  57. package/src/executors/utilities/tailwindcss.js.map +1 -1
  58. package/src/generators/add-linting/add-linting.js +1 -1
  59. package/src/generators/application/application.js +1 -1
  60. package/src/generators/application/lib/add-e2e.js +1 -1
  61. package/src/generators/application/lib/add-linting.js +1 -1
  62. package/src/generators/application/lib/add-mfe.js +1 -1
  63. package/src/generators/application/lib/add-protractor.js +1 -1
  64. package/src/generators/application/lib/add-unit-test-runner.js +1 -1
  65. package/src/generators/application/lib/index.js +20 -20
  66. package/src/generators/application/lib/index.js.map +1 -1
  67. package/src/generators/application/lib/update-config-files.js +1 -1
  68. package/src/generators/application/lib/update-config-files.js.map +1 -1
  69. package/src/generators/component/component.compat.d.ts +2 -0
  70. package/src/generators/component/component.compat.js +6 -0
  71. package/src/generators/component/component.compat.js.map +1 -0
  72. package/src/generators/component/component.d.ts +4 -0
  73. package/src/generators/component/component.js +78 -0
  74. package/src/generators/component/component.js.map +1 -0
  75. package/src/generators/component/schema.d.ts +17 -0
  76. package/src/generators/component/schema.json +101 -0
  77. package/src/generators/convert-to-with-mf/convert-to-with-mf.compat.d.ts +2 -0
  78. package/src/generators/convert-to-with-mf/convert-to-with-mf.compat.js +6 -0
  79. package/src/generators/convert-to-with-mf/convert-to-with-mf.compat.js.map +1 -0
  80. package/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts +3 -0
  81. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +32 -0
  82. package/src/generators/convert-to-with-mf/convert-to-with-mf.js.map +1 -0
  83. package/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.d.ts +5 -0
  84. package/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.js +449 -0
  85. package/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.js.map +1 -0
  86. package/src/generators/convert-to-with-mf/lib/check-name-matches.d.ts +2 -0
  87. package/src/generators/convert-to-with-mf/lib/check-name-matches.js +24 -0
  88. package/src/generators/convert-to-with-mf/lib/check-name-matches.js.map +1 -0
  89. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.d.ts +2 -0
  90. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +49 -0
  91. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js.map +1 -0
  92. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.d.ts +2 -0
  93. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +20 -0
  94. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js.map +1 -0
  95. package/src/generators/convert-to-with-mf/lib/index.d.ts +6 -0
  96. package/src/generators/convert-to-with-mf/lib/index.js +10 -0
  97. package/src/generators/convert-to-with-mf/lib/index.js.map +1 -0
  98. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.d.ts +5 -0
  99. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +63 -0
  100. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js.map +1 -0
  101. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.d.ts +2 -0
  102. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +13 -0
  103. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js.map +1 -0
  104. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.d.ts +3 -0
  105. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +48 -0
  106. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js.map +1 -0
  107. package/src/generators/convert-to-with-mf/schema.d.ts +3 -0
  108. package/src/generators/convert-to-with-mf/schema.json +20 -0
  109. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +4 -4
  110. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js.map +1 -1
  111. package/src/generators/downgrade-module/downgrade-module.js +1 -1
  112. package/src/generators/downgrade-module/lib/index.js +4 -4
  113. package/src/generators/downgrade-module/lib/index.js.map +1 -1
  114. package/src/generators/init/init.d.ts +1 -1
  115. package/src/generators/init/init.js +16 -2
  116. package/src/generators/init/init.js.map +1 -1
  117. package/src/generators/init/schema.d.ts +2 -2
  118. package/src/generators/init/schema.json +5 -0
  119. package/src/generators/karma-project/karma-project.js +1 -1
  120. package/src/generators/library/lib/update-project.js +2 -2
  121. package/src/generators/library/lib/update-project.js.map +1 -1
  122. package/src/generators/library/library.js +3 -3
  123. package/src/generators/library-secondary-entry-point/lib/index.js +4 -4
  124. package/src/generators/library-secondary-entry-point/lib/index.js.map +1 -1
  125. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +1 -1
  126. package/src/generators/mfe-host/mfe-host.js +1 -1
  127. package/src/generators/mfe-remote/mfe-remote.js +15 -2
  128. package/src/generators/mfe-remote/mfe-remote.js.map +1 -1
  129. package/src/generators/move/lib/update-ng-package.js +2 -2
  130. package/src/generators/move/lib/update-ng-package.js.map +1 -1
  131. package/src/generators/move/move.js +1 -1
  132. package/src/generators/ng-add/compat.d.ts +2 -0
  133. package/src/generators/ng-add/compat.js +6 -0
  134. package/src/generators/ng-add/compat.js.map +1 -0
  135. package/src/generators/ng-add/files/decorate-angular-cli/decorate-angular-cli.js__tmpl__ +69 -0
  136. package/src/generators/ng-add/files/prettier/__dot__prettierignore +1 -0
  137. package/src/generators/ng-add/files/root/karma.conf.js__tmpl__ +43 -0
  138. package/src/generators/ng-add/files/root/libs/__dot__gitkeep +0 -0
  139. package/src/generators/ng-add/files/root/nx.json__tmpl__ +29 -0
  140. package/src/generators/ng-add/files/root/tools/schematics/__dot__gitkeep +0 -0
  141. package/src/generators/ng-add/files/root/tools/tsconfig.tools.json__tmpl__ +12 -0
  142. package/src/generators/ng-add/migrate-from-angular-cli.d.ts +3 -0
  143. package/src/generators/ng-add/migrate-from-angular-cli.js +627 -0
  144. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -0
  145. package/src/generators/ng-add/ng-add.d.ts +4 -0
  146. package/src/generators/ng-add/ng-add.js +20 -0
  147. package/src/generators/ng-add/ng-add.js.map +1 -0
  148. package/src/generators/ng-add/schema.d.ts +19 -0
  149. package/src/generators/ng-add/schema.json +71 -0
  150. package/src/generators/ngrx/ngrx.js +1 -1
  151. package/src/generators/scam/lib/create-module.js +1 -1
  152. package/src/generators/scam/lib/create-module.js.map +1 -1
  153. package/src/generators/scam/scam.js +4 -4
  154. package/src/generators/scam/scam.js.map +1 -1
  155. package/src/generators/scam-directive/lib/create-module.js +1 -1
  156. package/src/generators/scam-directive/lib/create-module.js.map +1 -1
  157. package/src/generators/scam-directive/scam-directive.js +4 -4
  158. package/src/generators/scam-directive/scam-directive.js.map +1 -1
  159. package/src/generators/scam-pipe/lib/create-module.js +1 -1
  160. package/src/generators/scam-pipe/lib/create-module.js.map +1 -1
  161. package/src/generators/scam-pipe/scam-pipe.js +4 -4
  162. package/src/generators/scam-pipe/scam-pipe.js.map +1 -1
  163. package/src/generators/setup-mfe/files/webpack/webpack.config.js__tmpl__ +8 -59
  164. package/src/generators/setup-mfe/lib/add-remote-to-host.d.ts +1 -0
  165. package/src/generators/setup-mfe/lib/add-remote-to-host.js +15 -6
  166. package/src/generators/setup-mfe/lib/add-remote-to-host.js.map +1 -1
  167. package/src/generators/setup-mfe/lib/generate-config.js +1 -12
  168. package/src/generators/setup-mfe/lib/generate-config.js.map +1 -1
  169. package/src/generators/setup-mfe/lib/index.js +10 -10
  170. package/src/generators/setup-mfe/lib/index.js.map +1 -1
  171. package/src/generators/setup-mfe/setup-mfe.d.ts +2 -2
  172. package/src/generators/setup-mfe/setup-mfe.js +1 -10
  173. package/src/generators/setup-mfe/setup-mfe.js.map +1 -1
  174. package/src/generators/setup-tailwind/lib/index.js +6 -6
  175. package/src/generators/setup-tailwind/lib/index.js.map +1 -1
  176. package/src/generators/setup-tailwind/setup-tailwind.js +1 -1
  177. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +1 -1
  178. package/src/generators/storybook-configuration/storybook-configuration.js +1 -1
  179. package/src/generators/storybook-migrate-stories-to-6-2/migrate-stories-to-6-2.js +1 -1
  180. package/src/generators/upgrade-module/lib/index.js +4 -4
  181. package/src/generators/upgrade-module/lib/index.js.map +1 -1
  182. package/src/generators/upgrade-module/upgrade-module.js +1 -1
  183. package/src/generators/utils/index.js +1 -1
  184. package/src/generators/utils/index.js.map +1 -1
  185. package/src/generators/utils/path.d.ts +1 -0
  186. package/src/generators/utils/path.js +11 -0
  187. package/src/generators/utils/path.js.map +1 -0
  188. package/src/generators/utils/testing.js +1 -1
  189. package/src/generators/web-worker/lib/index.js +2 -2
  190. package/src/generators/web-worker/lib/index.js.map +1 -1
  191. package/src/generators/web-worker/web-worker.js +2 -2
  192. package/src/generators/web-worker/web-worker.js.map +1 -1
  193. package/src/migrations/update-10-3-0/update-10-3-0.js +1 -1
  194. package/src/migrations/update-10-4-0/update-10-4-0.js +1 -1
  195. package/src/migrations/update-10-5-0/add-template-support-and-presets-to-eslint.js +3 -3
  196. package/src/migrations/update-10-5-0/add-template-support-and-presets-to-eslint.js.map +1 -1
  197. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.js +3 -3
  198. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.js.map +1 -1
  199. package/src/migrations/update-12-3-0/update-angular-eslint-rules.js +1 -1
  200. package/src/migrations/update-12-3-0/update-storybook.js +1 -1
  201. package/src/migrations/update-12-3-0/update-webpack-browser-config.js +1 -1
  202. package/src/migrations/update-12-9-0/update-invalid-import-paths.js +1 -1
  203. package/src/migrations/update-13-0-0/add-postcss-packages.js +1 -1
  204. package/src/migrations/update-13-2-0/opt-out-testbed-teardown.js +1 -1
  205. package/src/migrations/update-13-2-0/update-angular-config.js +1 -1
  206. package/src/migrations/update-13-2-0/update-angular-jest-config.js +1 -1
  207. package/src/migrations/update-13-2-0/update-libraries.js +1 -1
  208. package/src/migrations/update-13-2-0/update-testing-imports.js +1 -1
  209. package/src/migrations/update-13-3-0/update-mfe-webpack-config.js +1 -1
  210. package/src/migrations/update-13-5-0/remove-library-generator-style-default.js +1 -1
  211. package/src/migrations/update-13-5-0/update-mfe-configs.js +1 -1
  212. package/src/migrations/update-13-8-1/add-cypress-mfe-workaround.js +1 -1
  213. package/src/migrations/update-13-8-4/migrate-karma-conf.js +1 -1
  214. package/src/migrations/update-13-9-0/set-build-libs-from-source.js +1 -1
  215. package/src/runtime/nx/data-persistence.js +2 -2
  216. package/src/runtime/nx/data-persistence.js.map +1 -1
  217. package/src/runtime/nx/nx.module.js +1 -1
  218. package/src/utils/get-mfe-projects.d.ts +3 -1
  219. package/src/utils/get-mfe-projects.js +5 -2
  220. package/src/utils/get-mfe-projects.js.map +1 -1
  221. package/src/utils/mfe/mfe-webpack.d.ts +17 -0
  222. package/src/utils/{mfe-webpack.js → mfe/mfe-webpack.js} +8 -8
  223. package/src/utils/mfe/mfe-webpack.js.map +1 -0
  224. package/src/utils/mfe/with-module-federation.d.ts +9 -0
  225. package/src/utils/mfe/with-module-federation.js +153 -0
  226. package/src/utils/mfe/with-module-federation.js.map +1 -0
  227. package/src/utils/versions.d.ts +3 -4
  228. package/src/utils/versions.js +5 -6
  229. package/src/utils/versions.js.map +1 -1
  230. package/src/utils/mfe-webpack.d.ts +0 -7
  231. package/src/utils/mfe-webpack.js.map +0 -1
@@ -0,0 +1,627 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateFromAngularCli = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nrwl/devkit");
6
+ const workspace_1 = require("@nrwl/workspace/src/generators/workspace/workspace");
7
+ const default_base_1 = require("@nrwl/workspace/src/utilities/default-base");
8
+ const prettier_1 = require("@nrwl/workspace/src/utilities/prettier");
9
+ const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
10
+ const versions_1 = require("@nrwl/workspace/src/utils/versions");
11
+ const path_1 = require("path");
12
+ const versions_2 = require("../../utils/versions");
13
+ function updatePackageJson(tree) {
14
+ (0, devkit_1.updateJson)(tree, 'package.json', (packageJson) => {
15
+ var _a, _b;
16
+ packageJson.scripts = packageJson.scripts || {};
17
+ packageJson.scripts = Object.assign(Object.assign({}, packageJson.scripts), { nx: 'nx', 'affected:apps': 'nx affected:apps', 'affected:libs': 'nx affected:libs', 'affected:build': 'nx affected:build', 'affected:e2e': 'nx affected:e2e', 'affected:test': 'nx affected:test', 'affected:lint': 'nx affected:lint', 'affected:graph': 'nx affected:graph', affected: 'nx affected', format: 'nx format:write', 'format:write': 'nx format:write', 'format:check': 'nx format:check', update: 'ng update @nrwl/workspace', 'update:check': 'ng update', lint: 'nx workspace-lint && ng lint', graph: 'nx graph', 'workspace-generator': 'nx workspace-generator', help: 'nx help' });
18
+ packageJson.devDependencies = (_a = packageJson.devDependencies) !== null && _a !== void 0 ? _a : {};
19
+ packageJson.dependencies = (_b = packageJson.dependencies) !== null && _b !== void 0 ? _b : {};
20
+ if (!packageJson.dependencies['@nrwl/angular']) {
21
+ packageJson.dependencies['@nrwl/angular'] = versions_2.nxVersion;
22
+ }
23
+ if (!packageJson.devDependencies['@angular/cli']) {
24
+ packageJson.devDependencies['@angular/cli'] = versions_2.angularDevkitVersion;
25
+ }
26
+ if (!packageJson.devDependencies['@nrwl/workspace']) {
27
+ packageJson.devDependencies['@nrwl/workspace'] = versions_2.nxVersion;
28
+ }
29
+ if (!packageJson.devDependencies['nx']) {
30
+ packageJson.devDependencies['nx'] = versions_2.nxVersion;
31
+ }
32
+ if (!packageJson.devDependencies['prettier']) {
33
+ packageJson.devDependencies['prettier'] = versions_1.prettierVersion;
34
+ }
35
+ return packageJson;
36
+ });
37
+ }
38
+ function convertPath(name, originalPath) {
39
+ return `apps/${name}/${originalPath}`;
40
+ }
41
+ function updateAngularCLIJson(host, options) {
42
+ var _a;
43
+ const workspaceConfig = (0, devkit_1.readWorkspaceConfiguration)(host);
44
+ const appName = workspaceConfig.defaultProject;
45
+ const e2eName = `${appName}-e2e`;
46
+ const e2eRoot = (0, devkit_1.joinPathFragments)('apps', e2eName);
47
+ delete workspaceConfig.newProjectRoot;
48
+ const defaultProject = (0, devkit_1.readProjectConfiguration)(host, appName);
49
+ const oldSourceRoot = defaultProject.sourceRoot;
50
+ const newRoot = (0, devkit_1.joinPathFragments)('apps', appName);
51
+ defaultProject.root = newRoot;
52
+ defaultProject.sourceRoot = (0, devkit_1.joinPathFragments)(newRoot, 'src');
53
+ function convertBuildOptions(buildOptions) {
54
+ buildOptions.outputPath =
55
+ buildOptions.outputPath &&
56
+ (0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)('dist'), 'apps', appName);
57
+ buildOptions.index =
58
+ buildOptions.index && convertAsset(buildOptions.index);
59
+ buildOptions.main =
60
+ buildOptions.main && convertAsset(buildOptions.main);
61
+ buildOptions.polyfills =
62
+ buildOptions.polyfills && convertAsset(buildOptions.polyfills);
63
+ buildOptions.tsConfig =
64
+ buildOptions.tsConfig && (0, devkit_1.joinPathFragments)(newRoot, 'tsconfig.app.json');
65
+ buildOptions.assets =
66
+ buildOptions.assets && buildOptions.assets.map(convertAsset);
67
+ buildOptions.styles =
68
+ buildOptions.styles && buildOptions.styles.map(convertAsset);
69
+ buildOptions.scripts =
70
+ buildOptions.scripts && buildOptions.scripts.map(convertAsset);
71
+ buildOptions.fileReplacements =
72
+ buildOptions.fileReplacements &&
73
+ buildOptions.fileReplacements.map((replacement) => ({
74
+ replace: convertAsset(replacement.replace),
75
+ with: convertAsset(replacement.with),
76
+ }));
77
+ }
78
+ convertBuildOptions(defaultProject.targets.build.options);
79
+ Object.values(defaultProject.targets.build.configurations).forEach((config) => convertBuildOptions(config));
80
+ if (defaultProject.targets.test) {
81
+ const testOptions = defaultProject.targets.test.options;
82
+ testOptions.main = testOptions.main && convertAsset(testOptions.main);
83
+ testOptions.polyfills =
84
+ testOptions.polyfills && convertAsset(testOptions.polyfills);
85
+ testOptions.tsConfig = (0, devkit_1.joinPathFragments)(newRoot, 'tsconfig.spec.json');
86
+ testOptions.karmaConfig = (0, devkit_1.joinPathFragments)(newRoot, 'karma.conf.js');
87
+ testOptions.assets =
88
+ testOptions.assets && testOptions.assets.map(convertAsset);
89
+ testOptions.styles =
90
+ testOptions.styles && testOptions.styles.map(convertAsset);
91
+ testOptions.scripts =
92
+ testOptions.scripts && testOptions.scripts.map(convertAsset);
93
+ }
94
+ const lintTarget = defaultProject.targets.lint;
95
+ if (lintTarget) {
96
+ lintTarget.options.tsConfig = [
97
+ (0, devkit_1.joinPathFragments)(newRoot, 'tsconfig.app.json'),
98
+ (0, devkit_1.joinPathFragments)(newRoot, 'tsconfig.spec.json'),
99
+ ];
100
+ }
101
+ function convertServerOptions(serverOptions) {
102
+ serverOptions.outputPath =
103
+ serverOptions.outputPath &&
104
+ (0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)('dist'), 'apps', `${options.name}-server`);
105
+ serverOptions.main = serverOptions.main && convertAsset(serverOptions.main);
106
+ serverOptions.tsConfig =
107
+ serverOptions.tsConfig &&
108
+ (0, devkit_1.joinPathFragments)((0, devkit_1.normalizePath)('apps'), appName, 'tsconfig.server.json');
109
+ serverOptions.fileReplacements =
110
+ serverOptions.fileReplacements &&
111
+ serverOptions.fileReplacements.map((replacement) => ({
112
+ replace: convertAsset(replacement.replace),
113
+ with: convertAsset(replacement.with),
114
+ }));
115
+ }
116
+ if (defaultProject.targets.server) {
117
+ const serverOptions = defaultProject.targets.server.options;
118
+ convertServerOptions(serverOptions);
119
+ Object.values(defaultProject.targets.server.configurations).forEach((config) => convertServerOptions(config));
120
+ }
121
+ if (defaultProject.targets.e2e) {
122
+ const lintTargetOptions = lintTarget ? lintTarget.options : {};
123
+ if (isProtractorE2eProject(defaultProject)) {
124
+ (0, devkit_1.addProjectConfiguration)(host, e2eName, {
125
+ root: e2eRoot,
126
+ projectType: 'application',
127
+ targets: {
128
+ e2e: Object.assign(Object.assign({}, defaultProject.targets.e2e), { options: Object.assign(Object.assign({}, defaultProject.targets.e2e.options), { protractorConfig: (0, devkit_1.joinPathFragments)(e2eRoot, 'protractor.conf.js') }) }),
129
+ lint: {
130
+ executor: '@angular-devkit/build-angular:tslint',
131
+ options: Object.assign(Object.assign({}, lintTargetOptions), { tsConfig: (0, devkit_1.joinPathFragments)(e2eRoot, 'tsconfig.json') }),
132
+ },
133
+ },
134
+ implicitDependencies: [appName],
135
+ tags: [],
136
+ });
137
+ }
138
+ else if (isCypressE2eProject(defaultProject)) {
139
+ const cypressConfig = (0, devkit_1.joinPathFragments)(e2eRoot, (0, path_1.basename)((_a = getCypressConfigFile(defaultProject)) !== null && _a !== void 0 ? _a : 'cypress.json'));
140
+ const e2eProjectConfig = {
141
+ root: e2eRoot,
142
+ sourceRoot: (0, devkit_1.joinPathFragments)(e2eRoot, 'src'),
143
+ projectType: 'application',
144
+ targets: {
145
+ e2e: updateE2eCypressTarget(defaultProject.targets.e2e, cypressConfig),
146
+ },
147
+ implicitDependencies: [appName],
148
+ tags: [],
149
+ };
150
+ if (defaultProject.targets['cypress-run']) {
151
+ e2eProjectConfig.targets['cypress-run'] = updateE2eCypressTarget(defaultProject.targets['cypress-run'], cypressConfig);
152
+ }
153
+ if (defaultProject.targets['cypress-open']) {
154
+ e2eProjectConfig.targets['cypress-open'] = updateE2eCypressTarget(defaultProject.targets['cypress-open'], cypressConfig);
155
+ }
156
+ (0, devkit_1.addProjectConfiguration)(host, e2eName, e2eProjectConfig);
157
+ delete defaultProject.targets['cypress-run'];
158
+ delete defaultProject.targets['cypress-open'];
159
+ }
160
+ delete defaultProject.targets.e2e;
161
+ }
162
+ (0, devkit_1.updateProjectConfiguration)(host, appName, defaultProject);
163
+ workspaceConfig.cli = workspaceConfig.cli || {};
164
+ if (!workspaceConfig.cli.defaultCollection) {
165
+ workspaceConfig.cli.defaultCollection = '@nrwl/angular';
166
+ }
167
+ (0, devkit_1.updateWorkspaceConfiguration)(host, workspaceConfig);
168
+ function convertAsset(asset) {
169
+ if (typeof asset === 'string') {
170
+ return asset.startsWith(oldSourceRoot)
171
+ ? convertPath(appName, asset.replace(oldSourceRoot, 'src'))
172
+ : asset;
173
+ }
174
+ else {
175
+ return Object.assign(Object.assign({}, asset), { input: asset.input && asset.input.startsWith(oldSourceRoot)
176
+ ? convertPath(appName, asset.input.replace(oldSourceRoot, 'src'))
177
+ : asset.input });
178
+ }
179
+ }
180
+ }
181
+ function getCypressConfigFile(e2eProject) {
182
+ let cypressConfig = 'cypress.json';
183
+ const configFileOption = e2eProject.targets.e2e.options.configFile;
184
+ if (configFileOption === false) {
185
+ cypressConfig = undefined;
186
+ }
187
+ else if (typeof configFileOption === 'string') {
188
+ cypressConfig = (0, path_1.basename)(configFileOption);
189
+ }
190
+ return cypressConfig;
191
+ }
192
+ function updateE2eCypressTarget(target, cypressConfig) {
193
+ const updatedTarget = Object.assign(Object.assign({}, target), { executor: '@nrwl/cypress:cypress', options: Object.assign(Object.assign({}, target.options), { cypressConfig }) });
194
+ delete updatedTarget.options.configFile;
195
+ delete updatedTarget.options.tsConfig;
196
+ if (updatedTarget.options.headless && updatedTarget.options.watch) {
197
+ updatedTarget.options.headed = false;
198
+ }
199
+ else if (updatedTarget.options.headless === false &&
200
+ !updatedTarget.options.watch) {
201
+ updatedTarget.options.headed = true;
202
+ }
203
+ delete updatedTarget.options.headless;
204
+ return updatedTarget;
205
+ }
206
+ function updateTsConfig(host) {
207
+ (0, devkit_1.writeJson)(host, 'tsconfig.base.json', setUpCompilerOptions((0, devkit_1.readJson)(host, (0, typescript_1.getRootTsConfigPathInTree)(host))));
208
+ if (host.exists('tsconfig.json')) {
209
+ host.delete('tsconfig.json');
210
+ }
211
+ }
212
+ function updateTsConfigsJson(host, options) {
213
+ const app = (0, devkit_1.readProjectConfiguration)(host, options.name);
214
+ const e2eProject = getE2eProject(host);
215
+ const tsConfigPath = (0, typescript_1.getRootTsConfigPathInTree)(host);
216
+ const appOffset = (0, devkit_1.offsetFromRoot)(app.root);
217
+ (0, devkit_1.updateJson)(host, app.targets.build.options.tsConfig, (json) => {
218
+ json.extends = `${appOffset}${tsConfigPath}`;
219
+ json.compilerOptions = json.compilerOptions || {};
220
+ json.compilerOptions.outDir = `${appOffset}dist/out-tsc`;
221
+ return json;
222
+ });
223
+ if (app.targets.test) {
224
+ (0, devkit_1.updateJson)(host, app.targets.test.options.tsConfig, (json) => {
225
+ json.extends = `${appOffset}${tsConfigPath}`;
226
+ json.compilerOptions = json.compilerOptions || {};
227
+ json.compilerOptions.outDir = `${appOffset}dist/out-tsc`;
228
+ return json;
229
+ });
230
+ }
231
+ if (app.targets.server) {
232
+ (0, devkit_1.updateJson)(host, app.targets.server.options.tsConfig, (json) => {
233
+ json.extends = `${appOffset}${tsConfigPath}`;
234
+ json.compilerOptions = json.compilerOptions || {};
235
+ json.compilerOptions.outDir = `${appOffset}dist/out-tsc`;
236
+ return json;
237
+ });
238
+ }
239
+ if (!!e2eProject) {
240
+ const tsConfig = isProtractorE2eProject(e2eProject)
241
+ ? e2eProject.targets.lint.options.tsConfig
242
+ : (0, devkit_1.joinPathFragments)(e2eProject.root, 'tsconfig.json');
243
+ (0, devkit_1.updateJson)(host, tsConfig, (json) => {
244
+ json.extends = `${(0, devkit_1.offsetFromRoot)(e2eProject.root)}${tsConfigPath}`;
245
+ json.compilerOptions = Object.assign(Object.assign({}, json.compilerOptions), { outDir: `${(0, devkit_1.offsetFromRoot)(e2eProject.root)}dist/out-tsc` });
246
+ return json;
247
+ });
248
+ }
249
+ }
250
+ function updateTsLint(host) {
251
+ if (host.exists(`tslint.json`)) {
252
+ (0, devkit_1.updateJson)(host, 'tslint.json', (tslintJson) => {
253
+ [
254
+ 'no-trailing-whitespace',
255
+ 'one-line',
256
+ 'quotemark',
257
+ 'typedef-whitespace',
258
+ 'whitespace',
259
+ ].forEach((key) => {
260
+ tslintJson[key] = undefined;
261
+ });
262
+ tslintJson.rulesDirectory = tslintJson.rulesDirectory || [];
263
+ tslintJson.rulesDirectory.push('node_modules/@nrwl/workspace/src/tslint');
264
+ tslintJson.rules['nx-enforce-module-boundaries'] = [
265
+ true,
266
+ {
267
+ allow: [],
268
+ depConstraints: [{ sourceTag: '*', onlyDependOnLibsWithTags: ['*'] }],
269
+ },
270
+ ];
271
+ return tslintJson;
272
+ });
273
+ }
274
+ }
275
+ function updateProjectTsLint(host, options) {
276
+ const workspaceJson = (0, devkit_1.readJson)(host, (0, devkit_1.getWorkspacePath)(host));
277
+ const app = workspaceJson.projects[options.name];
278
+ const offset = '../../';
279
+ if (host.exists(`${app.root}/tslint.json`)) {
280
+ (0, devkit_1.updateJson)(host, `${app.root}/tslint.json`, (json) => {
281
+ json.extends = `${offset}tslint.json`;
282
+ return json;
283
+ });
284
+ }
285
+ }
286
+ function setUpCompilerOptions(tsconfig) {
287
+ if (!tsconfig.compilerOptions.paths) {
288
+ tsconfig.compilerOptions.paths = {};
289
+ }
290
+ tsconfig.compilerOptions.baseUrl = '.';
291
+ tsconfig.compilerOptions.rootDir = '.';
292
+ return tsconfig;
293
+ }
294
+ function moveOutOfSrc(tree, appName, filePath, required = true) {
295
+ if (!filePath) {
296
+ return;
297
+ }
298
+ const filename = !!filePath ? (0, path_1.basename)(filePath) : '';
299
+ const from = filePath;
300
+ const to = filename
301
+ ? (0, devkit_1.joinPathFragments)('apps', appName, filename)
302
+ : (0, devkit_1.joinPathFragments)('apps', appName);
303
+ renameSyncInTree(tree, from, to, required);
304
+ }
305
+ function getE2eKey(host) {
306
+ const projects = (0, devkit_1.getProjects)(host);
307
+ for (const [projectName, project] of projects) {
308
+ if (project.targets.e2e) {
309
+ return projectName;
310
+ }
311
+ }
312
+ }
313
+ function getE2eProject(host) {
314
+ const key = getE2eKey(host);
315
+ if (key) {
316
+ return (0, devkit_1.readProjectConfiguration)(host, key);
317
+ }
318
+ else {
319
+ return null;
320
+ }
321
+ }
322
+ function isCypressE2eProject(e2eProject) {
323
+ return e2eProject.targets.e2e.executor === '@cypress/schematic:cypress';
324
+ }
325
+ function isProtractorE2eProject(e2eProject) {
326
+ return (e2eProject.targets.e2e.executor ===
327
+ '@angular-devkit/build-angular:protractor');
328
+ }
329
+ function moveExistingFiles(host, options) {
330
+ const app = (0, devkit_1.readProjectConfiguration)(host, options.name);
331
+ // it is not required to have a browserslist
332
+ moveOutOfSrc(host, options.name, 'browserslist', false);
333
+ moveOutOfSrc(host, options.name, '.browserslistrc', false);
334
+ moveOutOfSrc(host, options.name, app.targets.build.options.tsConfig);
335
+ if (app.targets.test) {
336
+ moveOutOfSrc(host, options.name, app.targets.test.options.karmaConfig);
337
+ moveOutOfSrc(host, options.name, app.targets.test.options.tsConfig);
338
+ }
339
+ else {
340
+ // there could still be a karma.conf.js file in the root
341
+ // so move to new location
342
+ if (host.exists('karma.conf.js')) {
343
+ console.info('No test configuration, but root Karma config file found');
344
+ moveOutOfSrc(host, options.name, 'karma.conf.js');
345
+ }
346
+ }
347
+ if (app.targets.server) {
348
+ moveOutOfSrc(host, options.name, app.targets.server.options.tsConfig);
349
+ }
350
+ const oldAppSourceRoot = app.sourceRoot;
351
+ const newAppSourceRoot = (0, devkit_1.joinPathFragments)('apps', options.name, 'src');
352
+ renameDirSyncInTree(host, oldAppSourceRoot, newAppSourceRoot);
353
+ moveE2eProjectFiles(host, app, options);
354
+ }
355
+ function moveE2eProjectFiles(tree, app, options) {
356
+ const e2eProject = getE2eProject(tree);
357
+ if (!e2eProject) {
358
+ console.warn('No e2e project was migrated because there was none declared in angular.json.');
359
+ return;
360
+ }
361
+ if (isProtractorE2eProject(e2eProject)) {
362
+ const oldE2eRoot = (0, devkit_1.joinPathFragments)(app.root || '', 'e2e');
363
+ const newE2eRoot = (0, devkit_1.joinPathFragments)('apps', `${getE2eKey(tree)}-e2e`);
364
+ renameDirSyncInTree(tree, oldE2eRoot, newE2eRoot);
365
+ }
366
+ else if (isCypressE2eProject(e2eProject)) {
367
+ const e2eProjectName = `${options.name}-e2e`;
368
+ const configFile = getCypressConfigFile(e2eProject);
369
+ const oldE2eRoot = 'cypress';
370
+ const newE2eRoot = (0, devkit_1.joinPathFragments)('apps', e2eProjectName);
371
+ if (configFile) {
372
+ updateCypressConfigFilePaths(tree, configFile, oldE2eRoot, newE2eRoot);
373
+ moveOutOfSrc(tree, e2eProjectName, configFile);
374
+ }
375
+ else {
376
+ tree.write((0, devkit_1.joinPathFragments)('apps', e2eProjectName, 'cypress.json'), JSON.stringify({
377
+ fileServerFolder: '.',
378
+ fixturesFolder: './src/fixtures',
379
+ integrationFolder: './src/integration',
380
+ modifyObstructiveCode: false,
381
+ supportFile: './src/support/index.ts',
382
+ pluginsFile: './src/plugins/index.ts',
383
+ video: true,
384
+ videosFolder: `../../dist/cypress/${newE2eRoot}/videos`,
385
+ screenshotsFolder: `../../dist/cypress/${newE2eRoot}/screenshots`,
386
+ chromeWebSecurity: false,
387
+ }));
388
+ }
389
+ moveOutOfSrc(tree, e2eProjectName, `${oldE2eRoot}/tsconfig.json`);
390
+ renameDirSyncInTree(tree, oldE2eRoot, (0, devkit_1.joinPathFragments)('apps', e2eProjectName, 'src'));
391
+ }
392
+ }
393
+ function updateCypressConfigFilePaths(tree, configFile, oldE2eRoot, newE2eRoot) {
394
+ const srcFoldersAndFiles = [
395
+ 'integrationFolder',
396
+ 'supportFile',
397
+ 'pluginsFile',
398
+ 'fixturesFolder',
399
+ ];
400
+ const distFolders = ['videosFolder', 'screenshotsFolder'];
401
+ const stringOrArrayGlobs = ['ignoreTestFiles', 'testFiles'];
402
+ const cypressConfig = (0, devkit_1.readJson)(tree, configFile);
403
+ cypressConfig.fileServerFolder = '.';
404
+ srcFoldersAndFiles.forEach((folderOrFile) => {
405
+ if (cypressConfig[folderOrFile]) {
406
+ cypressConfig[folderOrFile] = `./src/${(0, path_1.relative)(oldE2eRoot, cypressConfig[folderOrFile])}`;
407
+ }
408
+ });
409
+ distFolders.forEach((folder) => {
410
+ if (cypressConfig[folder]) {
411
+ cypressConfig[folder] = `../../dist/cypress/${newE2eRoot}/${(0, path_1.relative)(oldE2eRoot, cypressConfig[folder])}`;
412
+ }
413
+ });
414
+ stringOrArrayGlobs.forEach((stringOrArrayGlob) => {
415
+ if (!cypressConfig[stringOrArrayGlob]) {
416
+ return;
417
+ }
418
+ if (Array.isArray(cypressConfig[stringOrArrayGlob])) {
419
+ cypressConfig[stringOrArrayGlob] = cypressConfig[stringOrArrayGlob].map((glob) => replaceCypressGlobConfig(glob, oldE2eRoot));
420
+ }
421
+ else {
422
+ cypressConfig[stringOrArrayGlob] = replaceCypressGlobConfig(cypressConfig[stringOrArrayGlob], oldE2eRoot);
423
+ }
424
+ });
425
+ (0, devkit_1.writeJson)(tree, configFile, cypressConfig);
426
+ }
427
+ function replaceCypressGlobConfig(globPattern, oldE2eRoot) {
428
+ return globPattern.replace(new RegExp(`^(\\.\\/|\\/)?${oldE2eRoot}\\/`), './src/');
429
+ }
430
+ function createAdditionalFiles(host) {
431
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
432
+ const recommendations = [
433
+ 'nrwl.angular-console',
434
+ 'angular.ng-template',
435
+ 'dbaeumer.vscode-eslint',
436
+ 'esbenp.prettier-vscode',
437
+ ];
438
+ if (host.exists('.vscode/extensions.json')) {
439
+ (0, devkit_1.updateJson)(host, '.vscode/extensions.json', (json) => {
440
+ json.recommendations = json.recommendations || [];
441
+ recommendations.forEach((extension) => {
442
+ if (!json.recommendations.includes(extension)) {
443
+ json.recommendations.push(extension);
444
+ }
445
+ });
446
+ return json;
447
+ });
448
+ }
449
+ else {
450
+ (0, devkit_1.writeJson)(host, '.vscode/extensions.json', {
451
+ recommendations,
452
+ });
453
+ }
454
+ // if the user does not already have a prettier configuration
455
+ // of any kind, create one
456
+ const existingPrettierConfig = yield (0, prettier_1.resolveUserExistingPrettierConfig)();
457
+ if (!existingPrettierConfig) {
458
+ (0, devkit_1.writeJson)(host, '.prettierrc', workspace_1.DEFAULT_NRWL_PRETTIER_CONFIG);
459
+ }
460
+ });
461
+ }
462
+ function checkCanConvertToWorkspace(host) {
463
+ try {
464
+ if (!host.exists('package.json')) {
465
+ throw new Error('Cannot find package.json');
466
+ }
467
+ if (!host.exists('angular.json')) {
468
+ throw new Error('Cannot find angular.json');
469
+ }
470
+ // TODO: This restriction should be lited
471
+ const workspaceJson = (0, devkit_1.readJson)(host, 'angular.json');
472
+ const hasLibraries = Object.keys(workspaceJson.projects).find((project) => workspaceJson.projects[project].projectType &&
473
+ workspaceJson.projects[project].projectType !== 'application');
474
+ if (Object.keys(workspaceJson.projects).length > 2 || hasLibraries) {
475
+ throw new Error('Can only convert projects with one app');
476
+ }
477
+ const e2eKey = getE2eKey(host);
478
+ const e2eApp = getE2eProject(host);
479
+ if (!e2eApp) {
480
+ return;
481
+ }
482
+ if (isProtractorE2eProject(e2eApp)) {
483
+ if (host.exists(e2eApp.targets.e2e.options.protractorConfig)) {
484
+ return;
485
+ }
486
+ console.info(`Make sure the "${e2eKey}.architect.e2e.options.protractorConfig" is valid or the "${e2eKey}" project is removed from "angular.json".`);
487
+ throw new Error(`An e2e project with Protractor was found but "${e2eApp.targets.e2e.options.protractorConfig}" could not be found.`);
488
+ }
489
+ if (isCypressE2eProject(e2eApp)) {
490
+ const configFile = getCypressConfigFile(e2eApp);
491
+ if (configFile && !host.exists(configFile)) {
492
+ throw new Error(`An e2e project with Cypress was found but "${configFile}" could not be found.`);
493
+ }
494
+ if (!host.exists('cypress')) {
495
+ throw new Error(`An e2e project with Cypress was found but the "cypress" directory could not be found.`);
496
+ }
497
+ return;
498
+ }
499
+ throw new Error(`An e2e project was found but it's using an unsupported executor "${e2eApp.targets.e2e.executor}".`);
500
+ }
501
+ catch (e) {
502
+ console.error(e.message);
503
+ console.error('Your workspace could not be converted into an Nx Workspace because of the above error.');
504
+ throw e;
505
+ }
506
+ }
507
+ function createNxJson(host) {
508
+ const { projects = {}, newProjectRoot = '' } = (0, devkit_1.readJson)(host, 'angular.json');
509
+ const hasLibraries = Object.keys(projects).find((project) => projects[project].projectType &&
510
+ projects[project].projectType !== 'application');
511
+ if (Object.keys(projects).length !== 1 || hasLibraries) {
512
+ throw new Error(`The schematic can only be used with Angular CLI workspaces with a single application.`);
513
+ }
514
+ const name = Object.keys(projects)[0];
515
+ (0, devkit_1.writeJson)(host, 'nx.json', {
516
+ npmScope: name,
517
+ implicitDependencies: {
518
+ 'package.json': {
519
+ dependencies: '*',
520
+ devDependencies: '*',
521
+ },
522
+ '.eslintrc.json': '*',
523
+ },
524
+ tasksRunnerOptions: {
525
+ default: {
526
+ runner: 'nx/tasks-runners/default',
527
+ options: {
528
+ cacheableOperations: ['build', 'lint', 'test', 'e2e'],
529
+ },
530
+ },
531
+ },
532
+ workspaceLayout: { appsDir: newProjectRoot, libsDir: newProjectRoot },
533
+ });
534
+ }
535
+ function decorateAngularCli(host) {
536
+ (0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'decorate-angular-cli'), '.', { tmpl: '' });
537
+ (0, devkit_1.updateJson)(host, 'package.json', (json) => {
538
+ if (json.scripts &&
539
+ json.scripts.postinstall &&
540
+ !json.scripts.postinstall.includes('decorate-angular-cli.js')) {
541
+ // if exists, add execution of this script
542
+ json.scripts.postinstall += ' && node ./decorate-angular-cli.js';
543
+ }
544
+ else {
545
+ if (!json.scripts)
546
+ json.scripts = {};
547
+ // if doesn't exist, set to execute this script
548
+ json.scripts.postinstall = 'node ./decorate-angular-cli.js';
549
+ }
550
+ if (json.scripts.ng) {
551
+ json.scripts.ng = 'nx';
552
+ }
553
+ return json;
554
+ });
555
+ }
556
+ function addFiles(host, options) {
557
+ var _a;
558
+ (0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, './files/root'), '.', {
559
+ tmpl: '',
560
+ dot: '.',
561
+ rootTsConfigPath: (0, typescript_1.getRootTsConfigPathInTree)(host),
562
+ npmScope: options.npmScope,
563
+ defaultBase: (_a = options.defaultBase) !== null && _a !== void 0 ? _a : (0, default_base_1.deduceDefaultBase)(),
564
+ });
565
+ if (!host.exists('.prettierignore')) {
566
+ (0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, './files/prettier'), '.', {
567
+ tmpl: '',
568
+ dot: '.',
569
+ });
570
+ }
571
+ }
572
+ function renameSyncInTree(tree, from, to, required) {
573
+ if (!tree.exists(from)) {
574
+ if (required) {
575
+ console.warn(`Path: ${from} does not exist`);
576
+ }
577
+ }
578
+ else if (tree.exists(to)) {
579
+ if (required) {
580
+ console.warn(`Path: ${to} already exists`);
581
+ }
582
+ }
583
+ else {
584
+ const contents = tree.read(from);
585
+ tree.write(to, contents);
586
+ tree.delete(from);
587
+ }
588
+ }
589
+ function renameDirSyncInTree(tree, from, to) {
590
+ (0, devkit_1.visitNotIgnoredFiles)(tree, from, (file) => {
591
+ renameSyncInTree(tree, file, file.replace(from, to), true);
592
+ });
593
+ }
594
+ function migrateFromAngularCli(tree, schema) {
595
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
596
+ if (schema.preserveAngularCliLayout) {
597
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
598
+ nx: versions_2.nxVersion,
599
+ '@nrwl/workspace': versions_2.nxVersion,
600
+ });
601
+ createNxJson(tree);
602
+ decorateAngularCli(tree);
603
+ }
604
+ else {
605
+ const options = Object.assign(Object.assign({}, schema), { npmScope: (0, devkit_1.names)(schema.npmScope || schema.name).fileName });
606
+ checkCanConvertToWorkspace(tree);
607
+ moveExistingFiles(tree, options);
608
+ addFiles(tree, options);
609
+ yield createAdditionalFiles(tree);
610
+ updatePackageJson(tree);
611
+ updateAngularCLIJson(tree, options);
612
+ updateTsLint(tree);
613
+ updateProjectTsLint(tree, options);
614
+ updateTsConfig(tree);
615
+ updateTsConfigsJson(tree, options);
616
+ decorateAngularCli(tree);
617
+ yield (0, devkit_1.formatFiles)(tree);
618
+ }
619
+ if (!schema.skipInstall) {
620
+ return () => {
621
+ (0, devkit_1.installPackagesTask)(tree);
622
+ };
623
+ }
624
+ });
625
+ }
626
+ exports.migrateFromAngularCli = migrateFromAngularCli;
627
+ //# sourceMappingURL=migrate-from-angular-cli.js.map