@nrwl/workspace 14.8.8 → 14.9.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (266) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/LICENSE +22 -22
  3. package/README.md +5 -26
  4. package/executors.json +4 -2
  5. package/generators.json +7 -52
  6. package/index.d.ts +4 -10
  7. package/index.js +4 -42
  8. package/index.js.map +1 -1
  9. package/migrations.json +20 -1
  10. package/package.json +33 -44
  11. package/presets/core.json +4 -9
  12. package/presets/npm.json +4 -12
  13. package/src/executors/counter/schema.json +1 -0
  14. package/src/executors/run-commands/schema.json +9 -1
  15. package/src/executors/run-script/schema.json +1 -0
  16. package/src/generators/ci-workflow/ci-workflow.d.ts +1 -1
  17. package/src/generators/ci-workflow/ci-workflow.js +13 -0
  18. package/src/generators/ci-workflow/ci-workflow.js.map +1 -1
  19. package/src/generators/ci-workflow/files/azure/azure-pipelines.yml__tmpl__ +0 -2
  20. package/src/generators/ci-workflow/files/bitbucket-pipelines/bitbucket-pipelines.yml__tmpl__ +36 -0
  21. package/src/generators/ci-workflow/files/circleci/.circleci/config.yml__tmpl__ +1 -4
  22. package/src/generators/ci-workflow/files/github/.github/workflows/__workflowFileName__.yml__tmpl__ +3 -3
  23. package/src/generators/ci-workflow/files/gitlab/.gitlab-ci.yml__tmpl__ +47 -0
  24. package/src/generators/ci-workflow/schema.json +5 -3
  25. package/src/generators/convert-to-nx-project/convert-to-nx-project.d.ts +1 -2
  26. package/src/generators/convert-to-nx-project/convert-to-nx-project.js +62 -38
  27. package/src/generators/convert-to-nx-project/convert-to-nx-project.js.map +1 -1
  28. package/src/generators/convert-to-nx-project/schema.d.ts +2 -0
  29. package/src/generators/convert-to-nx-project/schema.json +11 -6
  30. package/src/generators/library/files/lib/__dot__babelrc__tmpl__ +1 -1
  31. package/src/generators/library/files/lib/tsconfig.lib.json +2 -2
  32. package/src/generators/library/library.d.ts +2 -1
  33. package/src/generators/library/library.js +44 -33
  34. package/src/generators/library/library.js.map +1 -1
  35. package/src/generators/library/schema.d.ts +1 -1
  36. package/src/generators/library/schema.json +9 -4
  37. package/src/generators/move/lib/create-project-configuration-in-new-destination.d.ts +3 -0
  38. package/src/generators/move/lib/{move-project-configuration.js → create-project-configuration-in-new-destination.js} +6 -9
  39. package/src/generators/move/lib/create-project-configuration-in-new-destination.js.map +1 -0
  40. package/src/generators/move/lib/{move-project.d.ts → move-project-files.d.ts} +1 -1
  41. package/src/generators/move/lib/{move-project.js → move-project-files.js} +4 -4
  42. package/src/generators/move/lib/move-project-files.js.map +1 -0
  43. package/src/generators/move/lib/update-cypress-config.js +8 -2
  44. package/src/generators/move/lib/update-cypress-config.js.map +1 -1
  45. package/src/generators/move/lib/update-default-project.js +4 -5
  46. package/src/generators/move/lib/update-default-project.js.map +1 -1
  47. package/src/generators/move/lib/update-implicit-dependencies.d.ts +0 -2
  48. package/src/generators/move/lib/update-implicit-dependencies.js +0 -2
  49. package/src/generators/move/lib/update-implicit-dependencies.js.map +1 -1
  50. package/src/generators/move/lib/update-imports.js +28 -18
  51. package/src/generators/move/lib/update-imports.js.map +1 -1
  52. package/src/generators/move/move.js +5 -4
  53. package/src/generators/move/move.js.map +1 -1
  54. package/src/generators/move/schema.json +2 -1
  55. package/src/generators/{workspace/files → new/files-integrated-repo}/__dot__gitignore +2 -2
  56. package/src/generators/{workspace/files → new/files-integrated-repo}/__dot__vscode/extensions.json__tmpl__ +1 -1
  57. package/src/generators/new/files-integrated-repo/package.json__tmpl__ +14 -0
  58. package/src/generators/new/files-package-based-repo/__dot__gitignore +39 -0
  59. package/src/generators/new/files-package-based-repo/__dot__vscode/extensions.json__tmpl__ +8 -0
  60. package/src/generators/new/files-package-based-repo/package.json__tmpl__ +13 -0
  61. package/src/generators/new/files-readme/README.md.template +21 -0
  62. package/src/generators/new/files-root-app/__dot__gitignore +39 -0
  63. package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +6 -0
  64. package/src/generators/new/files-root-app/package.json__tmpl__ +14 -0
  65. package/src/generators/new/generate-preset.d.ts +4 -0
  66. package/src/generators/new/generate-preset.js +131 -0
  67. package/src/generators/new/generate-preset.js.map +1 -0
  68. package/src/generators/new/generate-workspace-files.d.ts +3 -0
  69. package/src/generators/{workspace/workspace.js → new/generate-workspace-files.js} +81 -72
  70. package/src/generators/new/generate-workspace-files.js.map +1 -0
  71. package/src/generators/new/new.d.ts +11 -6
  72. package/src/generators/new/new.js +41 -212
  73. package/src/generators/new/new.js.map +1 -1
  74. package/src/generators/new/schema.json +16 -7
  75. package/src/generators/npm-package/npm-package.js +3 -6
  76. package/src/generators/npm-package/npm-package.js.map +1 -1
  77. package/src/generators/preset/preset.d.ts +1 -2
  78. package/src/generators/preset/preset.js +57 -255
  79. package/src/generators/preset/preset.js.map +1 -1
  80. package/src/generators/preset/schema.d.ts +5 -1
  81. package/src/generators/preset/schema.json +34 -7
  82. package/src/generators/remove/lib/check-project-is-safe-to-remove.d.ts +3 -0
  83. package/src/generators/remove/lib/check-project-is-safe-to-remove.js +26 -0
  84. package/src/generators/remove/lib/check-project-is-safe-to-remove.js.map +1 -0
  85. package/src/generators/remove/lib/check-targets.d.ts +1 -1
  86. package/src/generators/remove/lib/check-targets.js +33 -29
  87. package/src/generators/remove/lib/check-targets.js.map +1 -1
  88. package/src/generators/remove/lib/remove-project-references-in-config.d.ts +3 -0
  89. package/src/generators/remove/lib/remove-project-references-in-config.js +22 -0
  90. package/src/generators/remove/lib/remove-project-references-in-config.js.map +1 -0
  91. package/src/generators/remove/lib/update-jest-config.js +10 -5
  92. package/src/generators/remove/lib/update-jest-config.js.map +1 -1
  93. package/src/generators/remove/lib/update-tsconfig.d.ts +2 -2
  94. package/src/generators/remove/lib/update-tsconfig.js +23 -15
  95. package/src/generators/remove/lib/update-tsconfig.js.map +1 -1
  96. package/src/generators/remove/remove.js +6 -4
  97. package/src/generators/remove/remove.js.map +1 -1
  98. package/src/generators/remove/schema.json +2 -1
  99. package/src/generators/run-commands/run-commands.js +3 -1
  100. package/src/generators/run-commands/run-commands.js.map +1 -1
  101. package/src/generators/run-commands/schema.json +2 -1
  102. package/src/generators/utils/insert-import.js +10 -5
  103. package/src/generators/utils/insert-import.js.map +1 -1
  104. package/src/generators/utils/insert-statement.js +8 -3
  105. package/src/generators/utils/insert-statement.js.map +1 -1
  106. package/src/generators/utils/presets.d.ts +6 -5
  107. package/src/generators/utils/presets.js +5 -4
  108. package/src/generators/utils/presets.js.map +1 -1
  109. package/src/generators/workspace-generator/schema.json +3 -2
  110. package/src/migrations/update-12-5-0/add-target-dependencies.js +2 -2
  111. package/src/migrations/update-12-5-0/add-target-dependencies.js.map +1 -1
  112. package/src/migrations/update-13-0-0/config-locations/config-locations.d.ts +1 -1
  113. package/src/migrations/update-13-0-0/config-locations/config-locations.js +19 -9
  114. package/src/migrations/update-13-0-0/config-locations/config-locations.js.map +1 -1
  115. package/src/migrations/update-13-0-0/set-default-base-if-not-set.js +2 -2
  116. package/src/migrations/update-13-0-0/set-default-base-if-not-set.js.map +1 -1
  117. package/src/migrations/update-13-10-0/update-tasks-runner.js +4 -3
  118. package/src/migrations/update-13-10-0/update-tasks-runner.js.map +1 -1
  119. package/src/migrations/update-13-2-0/set-parallel-default.js +2 -2
  120. package/src/migrations/update-13-2-0/set-parallel-default.js.map +1 -1
  121. package/src/migrations/update-13-6-0/remove-old-task-runner-options.js +3 -3
  122. package/src/migrations/update-13-6-0/remove-old-task-runner-options.js.map +1 -1
  123. package/src/migrations/update-14-0-0/change-npm-script-executor.js +1 -1
  124. package/src/migrations/update-14-0-0/change-npm-script-executor.js.map +1 -1
  125. package/src/migrations/update-14-0-0/change-nx-json-presets.js +3 -3
  126. package/src/migrations/update-14-0-0/change-nx-json-presets.js.map +1 -1
  127. package/src/migrations/update-14-2-0/enable-source-analysis.js +14 -13
  128. package/src/migrations/update-14-2-0/enable-source-analysis.js.map +1 -1
  129. package/src/migrations/update-14-8-0/change-run-commands-executor.js +1 -1
  130. package/src/migrations/update-14-8-0/change-run-commands-executor.js.map +1 -1
  131. package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.d.ts +3 -0
  132. package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.js +15 -0
  133. package/src/migrations/update-15-7-0/split-configuration-into-project-json-files.js.map +1 -0
  134. package/src/utilities/assets.d.ts +2 -2
  135. package/src/utilities/buildable-libs-utils.d.ts +18 -7
  136. package/src/utilities/buildable-libs-utils.js +28 -13
  137. package/src/utilities/buildable-libs-utils.js.map +1 -1
  138. package/src/utilities/plugins/plugin-capabilities.d.ts +1 -3
  139. package/src/utilities/plugins/plugin-capabilities.js +2 -75
  140. package/src/utilities/plugins/plugin-capabilities.js.map +1 -1
  141. package/src/utilities/run-tasks-in-serial.d.ts +6 -0
  142. package/src/utilities/run-tasks-in-serial.js +6 -0
  143. package/src/utilities/run-tasks-in-serial.js.map +1 -1
  144. package/src/utilities/set-default-collection.js +5 -5
  145. package/src/utilities/set-default-collection.js.map +1 -1
  146. package/src/utilities/ts-config.d.ts +5 -0
  147. package/src/utilities/ts-config.js +40 -0
  148. package/src/utilities/ts-config.js.map +1 -0
  149. package/src/utilities/typescript/compilation.d.ts +1 -1
  150. package/src/utilities/typescript/compilation.js +22 -12
  151. package/src/utilities/typescript/compilation.js.map +1 -1
  152. package/src/utilities/typescript/find-nodes.d.ts +5 -2
  153. package/src/utilities/typescript/find-nodes.js +7 -25
  154. package/src/utilities/typescript/find-nodes.js.map +1 -1
  155. package/src/utilities/typescript/get-source-nodes.d.ts +4 -1
  156. package/src/utilities/typescript/get-source-nodes.js +3 -0
  157. package/src/utilities/typescript/get-source-nodes.js.map +1 -1
  158. package/src/utilities/typescript.d.ts +8 -4
  159. package/src/utilities/typescript.js +21 -38
  160. package/src/utilities/typescript.js.map +1 -1
  161. package/src/utilities/version-utils.d.ts +3 -0
  162. package/src/utilities/version-utils.js +7 -12
  163. package/src/utilities/version-utils.js.map +1 -1
  164. package/src/utils/ast-utils.d.ts +0 -123
  165. package/src/utils/ast-utils.js +5 -546
  166. package/src/utils/ast-utils.js.map +1 -1
  167. package/src/utils/cli-config-utils.d.ts +4 -3
  168. package/src/utils/cli-config-utils.js +4 -45
  169. package/src/utils/cli-config-utils.js.map +1 -1
  170. package/src/utils/lint.d.ts +0 -32
  171. package/src/utils/lint.js +0 -262
  172. package/src/utils/lint.js.map +1 -1
  173. package/src/utils/project-type.d.ts +1 -3
  174. package/src/utils/project-type.js +1 -8
  175. package/src/utils/project-type.js.map +1 -1
  176. package/src/utils/rules/add-install-task.d.ts +1 -1
  177. package/src/utils/rules/add-install-task.js +2 -2
  178. package/src/utils/rules/add-install-task.js.map +1 -1
  179. package/src/utils/rules/deleteFile.d.ts +1 -1
  180. package/src/utils/rules/format-files.js +0 -19
  181. package/src/utils/rules/format-files.js.map +1 -1
  182. package/src/utils/rules/workspace.d.ts +1 -1
  183. package/src/utils/strings.d.ts +12 -0
  184. package/src/utils/strings.js +12 -0
  185. package/src/utils/strings.js.map +1 -1
  186. package/src/utils/testing-utils.d.ts +1 -1
  187. package/src/utils/testing-utils.js +6 -6
  188. package/src/utils/testing-utils.js.map +1 -1
  189. package/src/utils/testing.d.ts +1 -1
  190. package/src/utils/versions.d.ts +3 -4
  191. package/src/utils/versions.js +6 -5
  192. package/src/utils/versions.js.map +1 -1
  193. package/src/utils/workspace.d.ts +1 -1
  194. package/src/generators/convert-to-nx-project/utils/get-project-configuration-path.d.ts +0 -2
  195. package/src/generators/convert-to-nx-project/utils/get-project-configuration-path.js +0 -9
  196. package/src/generators/convert-to-nx-project/utils/get-project-configuration-path.js.map +0 -1
  197. package/src/generators/move/lib/move-project-configuration.d.ts +0 -3
  198. package/src/generators/move/lib/move-project-configuration.js.map +0 -1
  199. package/src/generators/move/lib/move-project.js.map +0 -1
  200. package/src/generators/preset/files/pnpm-workspace/pnpm-workspace.yaml +0 -2
  201. package/src/generators/remove/lib/remove-project-config.d.ts +0 -8
  202. package/src/generators/remove/lib/remove-project-config.js +0 -32
  203. package/src/generators/remove/lib/remove-project-config.js.map +0 -1
  204. package/src/generators/utils/decorate-angular-cli.js__tmpl__ +0 -69
  205. package/src/generators/workspace/files/README.md__tmpl__ +0 -186
  206. package/src/generators/workspace/files/__dot__prettierignore +0 -4
  207. package/src/generators/workspace/files/package.json__tmpl__ +0 -18
  208. package/src/generators/workspace/schema.d.ts +0 -15
  209. package/src/generators/workspace/schema.json +0 -77
  210. package/src/generators/workspace/workspace.d.ts +0 -7
  211. package/src/generators/workspace/workspace.js.map +0 -1
  212. package/src/tslint/nxEnforceModuleBoundariesRule.d.ts +0 -14
  213. package/src/tslint/nxEnforceModuleBoundariesRule.js +0 -177
  214. package/src/tslint/nxEnforceModuleBoundariesRule.js.map +0 -1
  215. package/src/utilities/ast-utils.d.ts +0 -22
  216. package/src/utilities/ast-utils.js +0 -182
  217. package/src/utilities/ast-utils.js.map +0 -1
  218. package/src/utilities/create-package-json.d.ts +0 -10
  219. package/src/utilities/create-package-json.js +0 -87
  220. package/src/utilities/create-package-json.js.map +0 -1
  221. package/src/utilities/executor-options-utils.d.ts +0 -13
  222. package/src/utilities/executor-options-utils.js +0 -36
  223. package/src/utilities/executor-options-utils.js.map +0 -1
  224. package/src/utilities/generate-globs.d.ts +0 -6
  225. package/src/utilities/generate-globs.js +0 -75
  226. package/src/utilities/generate-globs.js.map +0 -1
  227. package/src/utilities/prettier.d.ts +0 -6
  228. package/src/utilities/prettier.js +0 -38
  229. package/src/utilities/prettier.js.map +0 -1
  230. package/src/utils/app-root.d.ts +0 -1
  231. package/src/utils/app-root.js +0 -8
  232. package/src/utils/app-root.js.map +0 -1
  233. package/src/utils/graph-utils.d.ts +0 -5
  234. package/src/utils/graph-utils.js +0 -116
  235. package/src/utils/graph-utils.js.map +0 -1
  236. package/src/utils/rules/check-project-exists.d.ts +0 -10
  237. package/src/utils/rules/check-project-exists.js +0 -24
  238. package/src/utils/rules/check-project-exists.js.map +0 -1
  239. package/src/utils/rules/move-npm-packages.d.ts +0 -11
  240. package/src/utils/rules/move-npm-packages.js +0 -76
  241. package/src/utils/rules/move-npm-packages.js.map +0 -1
  242. package/src/utils/rules/rename-npm-packages.d.ts +0 -10
  243. package/src/utils/rules/rename-npm-packages.js +0 -81
  244. package/src/utils/rules/rename-npm-packages.js.map +0 -1
  245. package/src/utils/rules/rename-package-imports.d.ts +0 -10
  246. package/src/utils/rules/rename-package-imports.js +0 -58
  247. package/src/utils/rules/rename-package-imports.js.map +0 -1
  248. package/src/utils/rules/to-js.d.ts +0 -8
  249. package/src/utils/rules/to-js.js +0 -77
  250. package/src/utils/rules/to-js.js.map +0 -1
  251. package/src/utils/rules/update-karma-conf.d.ts +0 -8
  252. package/src/utils/rules/update-karma-conf.js +0 -36
  253. package/src/utils/rules/update-karma-conf.js.map +0 -1
  254. package/src/utils/runtime-lint-utils.d.ts +0 -80
  255. package/src/utils/runtime-lint-utils.js +0 -307
  256. package/src/utils/runtime-lint-utils.js.map +0 -1
  257. package/src/utils/update-packages-in-package-json.d.ts +0 -3
  258. package/src/utils/update-packages-in-package-json.js +0 -56
  259. package/src/utils/update-packages-in-package-json.js.map +0 -1
  260. package/src/utils/update-task.d.ts +0 -2
  261. package/src/utils/update-task.js +0 -83
  262. package/src/utils/update-task.js.map +0 -1
  263. /package/src/generators/{workspace/files → library/files/root}/tsconfig.base.json +0 -0
  264. /package/src/generators/{workspace/files → new/files-integrated-repo}/__dot__editorconfig +0 -0
  265. /package/src/generators/{workspace/files → new/files-integrated-repo}/tools/generators/.gitkeep +0 -0
  266. /package/src/generators/{workspace/files → new/files-integrated-repo}/tools/tsconfig.tools.json +0 -0
@@ -1,549 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyWithSkipExisting = exports.renameDirSyncInTree = exports.renameSyncInTree = exports.replaceNodeValue = exports.insertImport = exports.createOrUpdate = exports.getProjectConfig = exports.updatePackageJsonDependencies = exports.addDepsToPackageJson = exports.readWorkspace = exports.updateNxJsonInTree = exports.appsDir = exports.libsDir = exports.readNxJsonInTree = exports.updateWorkspaceInTree = exports.updateJsonInTree = exports.allFilesInDirInHost = exports.getFileDataInHost = exports.readJsonInTree = exports.insert = exports.addGlobal = exports.getImport = exports.addIncludeToTsConfig = exports.offset = exports.findClass = exports.addMethod = exports.addParameterToConstructor = exports.ReplaceChange = exports.RemoveChange = exports.InsertChange = exports.NoopChange = exports.getSourceNodes = exports.findNodes = exports.sortObjectByKeys = void 0;
4
- /**
5
- * @license
6
- * Copyright Google Inc. All Rights Reserved.
7
- *
8
- * Use of this source code is governed by an MIT- style license that can be
9
- * found in the LICENSE file at https://angular.io/license
10
- */
11
- const schematics_1 = require("@angular-devkit/schematics");
12
- const ts = require("typescript");
13
- const devkit_1 = require("@nrwl/devkit");
14
- const cli_config_utils_1 = require("./cli-config-utils");
15
- const core_1 = require("@angular-devkit/core");
16
- const add_install_task_1 = require("./rules/add-install-task");
17
- const find_nodes_1 = require("../utilities/typescript/find-nodes");
18
- const get_source_nodes_1 = require("../utilities/typescript/get-source-nodes");
19
- function nodesByPosition(first, second) {
20
- return first.getStart() - second.getStart();
21
- }
22
- function insertAfterLastOccurrence(nodes, toInsert, file, fallbackPos, syntaxKind) {
23
- // sort() has a side effect, so make a copy so that we won't overwrite the parent's object.
24
- let lastItem = [...nodes].sort(nodesByPosition).pop();
25
- if (!lastItem) {
26
- throw new Error();
27
- }
28
- if (syntaxKind) {
29
- lastItem = (0, find_nodes_1.findNodes)(lastItem, syntaxKind).sort(nodesByPosition).pop();
30
- }
31
- if (!lastItem && fallbackPos == undefined) {
32
- throw new Error(`tried to insert ${toInsert} as first occurrence with no fallback position`);
33
- }
34
- const lastItemPosition = lastItem ? lastItem.getEnd() : fallbackPos;
35
- return new InsertChange(file, lastItemPosition, toInsert);
36
- }
37
- function sortObjectByKeys(obj) {
38
- return Object.keys(obj)
39
- .sort()
40
- .reduce((result, key) => {
41
- return Object.assign(Object.assign({}, result), { [key]: obj[key] });
42
- }, {});
43
- }
44
- exports.sortObjectByKeys = sortObjectByKeys;
45
- var find_nodes_2 = require("../utilities/typescript/find-nodes");
46
- Object.defineProperty(exports, "findNodes", { enumerable: true, get: function () { return find_nodes_2.findNodes; } });
47
- var get_source_nodes_2 = require("../utilities/typescript/get-source-nodes");
48
- Object.defineProperty(exports, "getSourceNodes", { enumerable: true, get: function () { return get_source_nodes_2.getSourceNodes; } });
49
- class NoopChange {
50
- constructor() {
51
- this.type = 'noop';
52
- this.description = 'No operation.';
53
- this.order = Infinity;
54
- this.path = null;
55
- }
56
- apply() {
57
- return Promise.resolve();
58
- }
59
- }
60
- exports.NoopChange = NoopChange;
61
- class InsertChange {
62
- constructor(path, pos, toAdd) {
63
- this.path = path;
64
- this.pos = pos;
65
- this.toAdd = toAdd;
66
- this.type = 'insert';
67
- if (pos < 0) {
68
- throw new Error('Negative positions are invalid');
69
- }
70
- this.description = `Inserted ${toAdd} into position ${pos} of ${path}`;
71
- this.order = pos;
72
- }
73
- apply(host) {
74
- return host.read(this.path).then((content) => {
75
- const prefix = content.substring(0, this.pos);
76
- const suffix = content.substring(this.pos);
77
- return host.write(this.path, `${prefix}${this.toAdd}${suffix}`);
78
- });
79
- }
80
- }
81
- exports.InsertChange = InsertChange;
82
- class RemoveChange {
83
- constructor(path, pos, toRemove) {
84
- this.path = path;
85
- this.pos = pos;
86
- this.toRemove = toRemove;
87
- this.type = 'remove';
88
- if (pos < 0) {
89
- throw new Error('Negative positions are invalid');
90
- }
91
- this.description = `Removed ${toRemove} into position ${pos} of ${path}`;
92
- this.order = pos;
93
- }
94
- apply(host) {
95
- return host.read(this.path).then((content) => {
96
- const prefix = content.substring(0, this.pos);
97
- const suffix = content.substring(this.pos + this.toRemove.length);
98
- return host.write(this.path, `${prefix}${suffix}`);
99
- });
100
- }
101
- }
102
- exports.RemoveChange = RemoveChange;
103
- class ReplaceChange {
104
- constructor(path, pos, oldText, newText) {
105
- this.path = path;
106
- this.pos = pos;
107
- this.oldText = oldText;
108
- this.newText = newText;
109
- this.type = 'replace';
110
- if (pos < 0) {
111
- throw new Error('Negative positions are invalid');
112
- }
113
- this.description = `Replaced ${oldText} into position ${pos} of ${path} with ${newText}`;
114
- this.order = pos;
115
- }
116
- apply(host) {
117
- return host.read(this.path).then((content) => {
118
- const prefix = content.substring(0, this.pos);
119
- const suffix = content.substring(this.pos + this.oldText.length);
120
- const text = content.substring(this.pos, this.pos + this.oldText.length);
121
- if (text !== this.oldText) {
122
- return Promise.reject(new Error(`Invalid replace: "${text}" != "${this.oldText}".`));
123
- }
124
- return host.write(this.path, `${prefix}${this.newText}${suffix}`);
125
- });
126
- }
127
- }
128
- exports.ReplaceChange = ReplaceChange;
129
- function addParameterToConstructor(source, modulePath, opts) {
130
- const clazz = findClass(source, opts.className);
131
- const constructor = clazz.members.filter((m) => m.kind === ts.SyntaxKind.Constructor)[0];
132
- if (constructor) {
133
- throw new Error('Should be tested');
134
- }
135
- else {
136
- const methodHeader = `constructor(${opts.param})`;
137
- return addMethod(source, modulePath, {
138
- className: opts.className,
139
- methodHeader,
140
- body: null,
141
- });
142
- }
143
- }
144
- exports.addParameterToConstructor = addParameterToConstructor;
145
- function addMethod(source, modulePath, opts) {
146
- const clazz = findClass(source, opts.className);
147
- const body = opts.body
148
- ? `
149
- ${opts.methodHeader} {
150
- ${offset(opts.body, 1, false)}
151
- }
152
- `
153
- : `
154
- ${opts.methodHeader} {}
155
- `;
156
- return [new InsertChange(modulePath, clazz.end - 1, offset(body, 1, true))];
157
- }
158
- exports.addMethod = addMethod;
159
- function findClass(source, className, silent = false) {
160
- const nodes = (0, get_source_nodes_1.getSourceNodes)(source);
161
- const clazz = (nodes.filter((n) => n.kind === ts.SyntaxKind.ClassDeclaration &&
162
- n.name.text === className)[0]);
163
- if (!clazz && !silent) {
164
- throw new Error(`Cannot find class '${className}'`);
165
- }
166
- return clazz;
167
- }
168
- exports.findClass = findClass;
169
- function offset(text, numberOfTabs, wrap) {
170
- const lines = text
171
- .trim()
172
- .split('\n')
173
- .map((line) => {
174
- let tabs = '';
175
- for (let c = 0; c < numberOfTabs; ++c) {
176
- tabs += ' ';
177
- }
178
- return `${tabs}${line}`;
179
- })
180
- .join('\n');
181
- return wrap ? `\n${lines}\n` : lines;
182
- }
183
- exports.offset = offset;
184
- function addIncludeToTsConfig(tsConfigPath, source, include) {
185
- const includeKeywordPos = source.text.indexOf('"include":');
186
- if (includeKeywordPos > -1) {
187
- const includeArrayEndPos = source.text.indexOf(']', includeKeywordPos);
188
- return [new InsertChange(tsConfigPath, includeArrayEndPos, include)];
189
- }
190
- else {
191
- return [];
192
- }
193
- }
194
- exports.addIncludeToTsConfig = addIncludeToTsConfig;
195
- function getImport(source, predicate) {
196
- const allImports = (0, find_nodes_1.findNodes)(source, ts.SyntaxKind.ImportDeclaration);
197
- const matching = allImports.filter((i) => predicate(i.moduleSpecifier.getText()));
198
- return matching.map((i) => {
199
- const moduleSpec = i.moduleSpecifier
200
- .getText()
201
- .substring(1, i.moduleSpecifier.getText().length - 1);
202
- const t = i.importClause.namedBindings.getText();
203
- const bindings = t
204
- .replace('{', '')
205
- .replace('}', '')
206
- .split(',')
207
- .map((q) => q.trim());
208
- return { moduleSpec, bindings };
209
- });
210
- }
211
- exports.getImport = getImport;
212
- function addGlobal(source, modulePath, statement) {
213
- const allImports = (0, find_nodes_1.findNodes)(source, ts.SyntaxKind.ImportDeclaration);
214
- if (allImports.length > 0) {
215
- const lastImport = allImports[allImports.length - 1];
216
- return [
217
- new InsertChange(modulePath, lastImport.end + 1, `\n${statement}\n`),
218
- ];
219
- }
220
- else {
221
- return [new InsertChange(modulePath, 0, `${statement}\n`)];
222
- }
223
- }
224
- exports.addGlobal = addGlobal;
225
- function insert(host, modulePath, changes) {
226
- if (changes.length < 1) {
227
- return;
228
- }
229
- // sort changes so that the highest pos goes first
230
- const orderedChanges = changes.sort((a, b) => b.order - a.order);
231
- const recorder = host.beginUpdate(modulePath);
232
- for (const change of orderedChanges) {
233
- if (change.type == 'insert') {
234
- recorder.insertLeft(change.pos, change.toAdd);
235
- }
236
- else if (change.type == 'remove') {
237
- recorder.remove(change.pos - 1, change.toRemove.length + 1);
238
- }
239
- else if (change.type == 'replace') {
240
- recorder.remove(change.pos, change.oldText.length);
241
- recorder.insertLeft(change.pos, change.newText);
242
- }
243
- else if (change.type === 'noop') {
244
- // do nothing
245
- }
246
- else {
247
- throw new Error(`Unexpected Change '${change.constructor.name}'`);
248
- }
249
- }
250
- host.commitUpdate(recorder);
251
- }
252
- exports.insert = insert;
253
- /**
254
- * This method is specifically for reading JSON files in a Tree
255
- * @param host The host tree
256
- * @param path The path to the JSON file
257
- * @returns The JSON data in the file.
258
- */
259
- function readJsonInTree(host, path) {
260
- if (!host.exists(path)) {
261
- throw new Error(`Cannot find ${path}`);
262
- }
263
- try {
264
- return (0, devkit_1.parseJson)(host.read(path).toString('utf-8'));
265
- }
266
- catch (e) {
267
- throw new Error(`Cannot parse ${path}: ${e.message}`);
268
- }
269
- }
270
- exports.readJsonInTree = readJsonInTree;
271
- // TODO(v13): remove this deprecated method
272
- /**
273
- * @deprecated This method is deprecated
274
- */
275
- function getFileDataInHost(host, path) {
276
- return {
277
- file: path,
278
- ext: (0, core_1.extname)((0, core_1.normalize)(path)),
279
- hash: '',
280
- };
281
- }
282
- exports.getFileDataInHost = getFileDataInHost;
283
- function allFilesInDirInHost(host, path, options = { recursive: true }) {
284
- const dir = host.getDir(path);
285
- const res = [];
286
- dir.subfiles.forEach((p) => {
287
- res.push((0, core_1.join)(path, p));
288
- });
289
- if (!options.recursive) {
290
- return res;
291
- }
292
- dir.subdirs.forEach((p) => {
293
- res.push(...allFilesInDirInHost(host, (0, core_1.join)(path, p)));
294
- });
295
- return res;
296
- }
297
- exports.allFilesInDirInHost = allFilesInDirInHost;
298
- /**
299
- * This method is specifically for updating JSON in a Tree
300
- * @param path Path of JSON file in the Tree
301
- * @param callback Manipulation of the JSON data
302
- * @returns A rule which updates a JSON file file in a Tree
303
- */
304
- function updateJsonInTree(path, callback) {
305
- return (host, context) => {
306
- if (!host.exists(path)) {
307
- host.create(path, (0, devkit_1.serializeJson)(callback({}, context)));
308
- return host;
309
- }
310
- host.overwrite(path, (0, devkit_1.serializeJson)(callback(readJsonInTree(host, path), context)));
311
- return host;
312
- };
313
- }
314
- exports.updateJsonInTree = updateJsonInTree;
315
- function updateWorkspaceInTree(callback) {
316
- return (host, context = undefined) => {
317
- const path = (0, cli_config_utils_1.getWorkspacePath)(host);
318
- host.overwrite(path, (0, devkit_1.serializeJson)(callback(readJsonInTree(host, path), context, host)));
319
- return host;
320
- };
321
- }
322
- exports.updateWorkspaceInTree = updateWorkspaceInTree;
323
- function readNxJsonInTree(host) {
324
- return readJsonInTree(host, 'nx.json');
325
- }
326
- exports.readNxJsonInTree = readNxJsonInTree;
327
- function libsDir(host) {
328
- var _a, _b;
329
- const json = readJsonInTree(host, 'nx.json');
330
- return (_b = (_a = json === null || json === void 0 ? void 0 : json.workspaceLayout) === null || _a === void 0 ? void 0 : _a.libsDir) !== null && _b !== void 0 ? _b : 'libs';
331
- }
332
- exports.libsDir = libsDir;
333
- function appsDir(host) {
334
- var _a, _b;
335
- const json = readJsonInTree(host, 'nx.json');
336
- return (_b = (_a = json === null || json === void 0 ? void 0 : json.workspaceLayout) === null || _a === void 0 ? void 0 : _a.appsDir) !== null && _b !== void 0 ? _b : 'apps';
337
- }
338
- exports.appsDir = appsDir;
339
- function updateNxJsonInTree(callback) {
340
- return (host, context) => {
341
- host.overwrite('nx.json', (0, devkit_1.serializeJson)(callback(readJsonInTree(host, 'nx.json'), context)));
342
- return host;
343
- };
344
- }
345
- exports.updateNxJsonInTree = updateNxJsonInTree;
346
- function readWorkspace(host) {
347
- const path = (0, cli_config_utils_1.getWorkspacePath)(host);
348
- return readJsonInTree(host, path);
349
- }
350
- exports.readWorkspace = readWorkspace;
351
- /**
352
- * verifies whether the given packageJson dependencies require an update
353
- * given the deps & devDeps passed in
354
- */
355
- function requiresAddingOfPackages(packageJsonFile, deps, devDeps) {
356
- let needsDepsUpdate = false;
357
- let needsDevDepsUpdate = false;
358
- packageJsonFile.dependencies = packageJsonFile.dependencies || {};
359
- packageJsonFile.devDependencies = packageJsonFile.devDependencies || {};
360
- if (Object.keys(deps).length > 0) {
361
- needsDepsUpdate = Object.keys(deps).some((entry) => !packageJsonFile.dependencies[entry]);
362
- }
363
- if (Object.keys(devDeps).length > 0) {
364
- needsDevDepsUpdate = Object.keys(devDeps).some((entry) => !packageJsonFile.devDependencies[entry]);
365
- }
366
- return needsDepsUpdate || needsDevDepsUpdate;
367
- }
368
- /**
369
- * Updates the package.json given the passed deps and/or devDeps. Only updates
370
- * if the packages are not yet present
371
- *
372
- * @param deps the package.json dependencies to add
373
- * @param devDeps the package.json devDependencies to add
374
- * @param addInstall default `true`; set to false to avoid installs
375
- */
376
- function addDepsToPackageJson(deps, devDeps, addInstall = true) {
377
- return (host, context) => {
378
- const currentPackageJson = readJsonInTree(host, 'package.json');
379
- if (requiresAddingOfPackages(currentPackageJson, deps, devDeps)) {
380
- return (0, schematics_1.chain)([
381
- updateJsonInTree('package.json', (json, context) => {
382
- json.dependencies = Object.assign(Object.assign(Object.assign({}, (json.dependencies || {})), deps), (json.dependencies || {}));
383
- json.devDependencies = Object.assign(Object.assign(Object.assign({}, (json.devDependencies || {})), devDeps), (json.devDependencies || {}));
384
- json.dependencies = sortObjectByKeys(json.dependencies);
385
- json.devDependencies = sortObjectByKeys(json.devDependencies);
386
- return json;
387
- }),
388
- (0, add_install_task_1.addInstallTask)({
389
- skipInstall: !addInstall,
390
- }),
391
- ]);
392
- }
393
- else {
394
- return (0, schematics_1.noop)();
395
- }
396
- };
397
- }
398
- exports.addDepsToPackageJson = addDepsToPackageJson;
399
- function updatePackageJsonDependencies(deps, devDeps, addInstall = true) {
400
- return (0, schematics_1.chain)([
401
- updateJsonInTree('package.json', (json, context) => {
402
- json.dependencies = Object.assign(Object.assign({}, (json.dependencies || {})), deps);
403
- json.devDependencies = Object.assign(Object.assign({}, (json.devDependencies || {})), devDeps);
404
- json.dependencies = sortObjectByKeys(json.dependencies);
405
- json.devDependencies = sortObjectByKeys(json.devDependencies);
406
- return json;
407
- }),
408
- (0, add_install_task_1.addInstallTask)({
409
- skipInstall: !addInstall,
410
- }),
411
- ]);
412
- }
413
- exports.updatePackageJsonDependencies = updatePackageJsonDependencies;
414
- function getProjectConfig(host, name) {
415
- const workspaceJson = readJsonInTree(host, (0, cli_config_utils_1.getWorkspacePath)(host));
416
- const projectConfig = workspaceJson.projects[name];
417
- if (!projectConfig) {
418
- throw new Error(`Cannot find project '${name}'`);
419
- }
420
- else if (typeof projectConfig === 'string') {
421
- return readJsonInTree(host, projectConfig);
422
- }
423
- else {
424
- return projectConfig;
425
- }
426
- }
427
- exports.getProjectConfig = getProjectConfig;
428
- function createOrUpdate(host, path, content) {
429
- if (host.exists(path)) {
430
- host.overwrite(path, content);
431
- }
432
- else {
433
- host.create(path, content);
434
- }
435
- }
436
- exports.createOrUpdate = createOrUpdate;
437
- function insertImport(source, fileToEdit, symbolName, fileName, isDefault = false) {
438
- const rootNode = source;
439
- const allImports = (0, find_nodes_1.findNodes)(rootNode, ts.SyntaxKind.ImportDeclaration);
440
- // get nodes that map to import statements from the file fileName
441
- const relevantImports = allImports.filter((node) => {
442
- // StringLiteral of the ImportDeclaration is the import file (fileName in this case).
443
- const importFiles = node
444
- .getChildren()
445
- .filter((child) => child.kind === ts.SyntaxKind.StringLiteral)
446
- .map((n) => n.text);
447
- return importFiles.filter((file) => file === fileName).length === 1;
448
- });
449
- if (relevantImports.length > 0) {
450
- let importsAsterisk = false;
451
- // imports from import file
452
- const imports = [];
453
- relevantImports.forEach((n) => {
454
- Array.prototype.push.apply(imports, (0, find_nodes_1.findNodes)(n, ts.SyntaxKind.Identifier));
455
- if ((0, find_nodes_1.findNodes)(n, ts.SyntaxKind.AsteriskToken).length > 0) {
456
- importsAsterisk = true;
457
- }
458
- });
459
- // if imports * from fileName, don't add symbolName
460
- if (importsAsterisk) {
461
- return new NoopChange();
462
- }
463
- const importTextNodes = imports.filter((n) => n.text === symbolName);
464
- // insert import if it's not there
465
- if (importTextNodes.length === 0) {
466
- const fallbackPos = (0, find_nodes_1.findNodes)(relevantImports[0], ts.SyntaxKind.CloseBraceToken)[0].getStart() ||
467
- (0, find_nodes_1.findNodes)(relevantImports[0], ts.SyntaxKind.FromKeyword)[0].getStart();
468
- return insertAfterLastOccurrence(imports, `, ${symbolName}`, fileToEdit, fallbackPos);
469
- }
470
- return new NoopChange();
471
- }
472
- // no such import declaration exists
473
- const useStrict = (0, find_nodes_1.findNodes)(rootNode, ts.SyntaxKind.StringLiteral).filter((n) => n.text === 'use strict');
474
- let fallbackPos = 0;
475
- if (useStrict.length > 0) {
476
- fallbackPos = useStrict[0].end;
477
- }
478
- const open = isDefault ? '' : '{ ';
479
- const close = isDefault ? '' : ' }';
480
- // if there are no imports or 'use strict' statement, insert import at beginning of file
481
- const insertAtBeginning = allImports.length === 0 && useStrict.length === 0;
482
- const separator = insertAtBeginning ? '' : ';\n';
483
- const toInsert = `${separator}import ${open}${symbolName}${close}` +
484
- ` from '${fileName}'${insertAtBeginning ? ';\n' : ''}`;
485
- return insertAfterLastOccurrence(allImports, toInsert, fileToEdit, fallbackPos, ts.SyntaxKind.StringLiteral);
486
- }
487
- exports.insertImport = insertImport;
488
- function replaceNodeValue(host, modulePath, node, content) {
489
- insert(host, modulePath, [
490
- new ReplaceChange(modulePath, node.getStart(node.getSourceFile()), node.getFullText(), content),
491
- ]);
492
- }
493
- exports.replaceNodeValue = replaceNodeValue;
494
- function renameSyncInTree(tree, from, to, cb) {
495
- if (!tree.exists(from)) {
496
- cb(`Path: ${from} does not exist`);
497
- }
498
- else if (tree.exists(to)) {
499
- cb(`Path: ${to} already exists`);
500
- }
501
- else {
502
- renameFile(tree, from, to);
503
- cb(null);
504
- }
505
- }
506
- exports.renameSyncInTree = renameSyncInTree;
507
- function renameDirSyncInTree(tree, from, to, cb) {
508
- const dir = tree.getDir(from);
509
- if (!dirExists(dir)) {
510
- cb(`Path: ${from} does not exist`);
511
- return;
512
- }
513
- dir.visit((path) => {
514
- const destination = path.replace(from, to);
515
- renameFile(tree, path, destination);
516
- });
517
- cb(null);
518
- }
519
- exports.renameDirSyncInTree = renameDirSyncInTree;
520
- function dirExists(dir) {
521
- return dir.subdirs.length + dir.subfiles.length !== 0;
522
- }
523
- function renameFile(tree, from, to) {
524
- const buffer = tree.read(from);
525
- if (!buffer) {
526
- return;
527
- }
528
- tree.create(to, buffer);
529
- tree.delete(from);
530
- }
531
- /**
532
- * Applies a template merge but skips for already existing entries
533
- */
534
- function applyWithSkipExisting(source, rules) {
535
- return (tree, _context) => {
536
- const rule = (0, schematics_1.mergeWith)((0, schematics_1.apply)(source, [
537
- ...rules,
538
- (0, schematics_1.forEach)((fileEntry) => {
539
- if (tree.exists(fileEntry.path)) {
540
- return null;
541
- }
542
- return fileEntry;
543
- }),
544
- ]));
545
- return rule(tree, _context);
546
- };
547
- }
548
- exports.applyWithSkipExisting = applyWithSkipExisting;
3
+ exports.getSourceNodes = exports.findNodes = void 0;
4
+ var find_nodes_1 = require("../utilities/typescript/find-nodes"); // TODO(v16): Remove this
5
+ Object.defineProperty(exports, "findNodes", { enumerable: true, get: function () { return find_nodes_1.findNodes; } });
6
+ var get_source_nodes_1 = require("../utilities/typescript/get-source-nodes");
7
+ Object.defineProperty(exports, "getSourceNodes", { enumerable: true, get: function () { return get_source_nodes_1.getSourceNodes; } });
549
8
  //# sourceMappingURL=ast-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/ast-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/ast-utils.ts"],"names":[],"mappings":";;;AAEA,iEAA+D,CAAC,yBAAyB;AAAhF,uGAAA,SAAS,OAAA;AAClB,6EAA0E;AAAjE,kHAAA,cAAc,OAAA"}
@@ -1,6 +1,8 @@
1
- import { Tree } from '@angular-devkit/schematics';
1
+ import type { Tree } from '@angular-devkit/schematics';
2
+ /**
3
+ * @deprecated Nx no longer supports workspace.json
4
+ */
2
5
  export declare function getWorkspacePath(host: Tree): string;
3
- export declare function getNpmScope(host: Tree): string;
4
6
  export declare function parseTarget(targetString: string): {
5
7
  project: string;
6
8
  target: string;
@@ -12,4 +14,3 @@ export declare function serializeTarget({ project, target, config }: {
12
14
  target: any;
13
15
  config: any;
14
16
  }): string;
15
- export declare function replaceAppNameWithPath(node: any, appName: string, root: string): any;
@@ -1,16 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.replaceAppNameWithPath = exports.serializeTarget = exports.editTarget = exports.parseTarget = exports.getNpmScope = exports.getWorkspacePath = void 0;
4
- const ast_utils_1 = require("./ast-utils");
3
+ exports.serializeTarget = exports.editTarget = exports.parseTarget = exports.getWorkspacePath = void 0;
4
+ /**
5
+ * @deprecated Nx no longer supports workspace.json
6
+ */
5
7
  function getWorkspacePath(host) {
6
8
  const possibleFiles = ['/angular.json', '/workspace.json'];
7
9
  return possibleFiles.filter((path) => host.exists(path))[0];
8
10
  }
9
11
  exports.getWorkspacePath = getWorkspacePath;
10
- function getNpmScope(host) {
11
- return (0, ast_utils_1.readJsonInTree)(host, 'nx.json').npmScope;
12
- }
13
- exports.getNpmScope = getNpmScope;
14
12
  function parseTarget(targetString) {
15
13
  const [project, target, config] = targetString.split(':');
16
14
  return {
@@ -29,43 +27,4 @@ function serializeTarget({ project, target, config }) {
29
27
  return [project, target, config].filter((part) => !!part).join(':');
30
28
  }
31
29
  exports.serializeTarget = serializeTarget;
32
- function replaceAppNameWithPath(node, appName, root) {
33
- if (typeof node === 'string') {
34
- const matchPattern = new RegExp(`([^a-z0-9]*(${appName}))|((${appName})[^a-z0-9:]*)`, 'gi');
35
- if (!!node.match(matchPattern) &&
36
- node !== 'application' &&
37
- node !== 'library') {
38
- const r = node.replace(appName, root);
39
- return r.startsWith('/apps') || r.startsWith('/libs')
40
- ? r.substring(1)
41
- : r;
42
- }
43
- else {
44
- return node;
45
- }
46
- }
47
- else if (Array.isArray(node)) {
48
- return node.map((j) => replaceAppNameWithPath(j, appName, root));
49
- }
50
- else if (typeof node === 'object' && node) {
51
- const forbiddenPropertyList = [
52
- 'prefix',
53
- 'builder',
54
- 'executor',
55
- 'browserTarget',
56
- 'tags',
57
- 'defaultConfiguration',
58
- 'maximumError',
59
- 'name',
60
- ]; // Some of the properties should not be renamed
61
- return Object.keys(node).reduce((m, c) => ((m[c] = !forbiddenPropertyList.includes(c)
62
- ? replaceAppNameWithPath(node[c], appName, root)
63
- : node[c]),
64
- m), {});
65
- }
66
- else {
67
- return node;
68
- }
69
- }
70
- exports.replaceAppNameWithPath = replaceAppNameWithPath;
71
30
  //# sourceMappingURL=cli-config-utils.js.map