@nrwl/workspace 13.10.0-beta.1 → 13.10.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (402) hide show
  1. package/index.d.ts +3 -5
  2. package/index.js +5 -9
  3. package/index.js.map +1 -1
  4. package/migrations.json +12 -6
  5. package/package.json +5 -8
  6. package/src/executors/counter/counter.impl.js +7 -7
  7. package/src/executors/counter/counter.impl.js.map +1 -1
  8. package/src/executors/run-commands/run-commands.impl.js +4 -4
  9. package/src/executors/run-script/run-script.impl.js +1 -1
  10. package/src/generators/convert-to-nx-project/convert-to-nx-project.js +2 -2
  11. package/src/generators/library/library.js +2 -2
  12. package/src/generators/move/lib/update-cypress-json.d.ts +1 -2
  13. package/src/generators/move/lib/update-cypress-json.js.map +1 -1
  14. package/src/generators/move/lib/update-project-root-files.js +3 -3
  15. package/src/generators/move/lib/update-project-root-files.js.map +1 -1
  16. package/src/generators/move/lib/update-storybook-config.js +3 -3
  17. package/src/generators/move/lib/update-storybook-config.js.map +1 -1
  18. package/src/generators/move/move.js +1 -1
  19. package/src/generators/new/new.js +3 -3
  20. package/src/generators/npm-package/npm-package.js +1 -1
  21. package/src/generators/preset/preset.js +2 -2
  22. package/src/generators/remove/lib/check-dependencies.js +4 -4
  23. package/src/generators/remove/lib/check-dependencies.js.map +1 -1
  24. package/src/generators/remove/remove.js +1 -1
  25. package/src/generators/run-commands/run-commands.js +1 -1
  26. package/src/generators/utils/decorate-angular-cli.js__tmpl__ +1 -1
  27. package/src/generators/workspace/files/nx.json__tmpl__ +1 -1
  28. package/src/generators/workspace/workspace.js +1 -1
  29. package/src/generators/workspace-generator/workspace-generator.js +1 -1
  30. package/src/migrations/update-12-5-0/add-target-dependencies.js +1 -1
  31. package/src/migrations/update-13-0-0/config-locations/config-locations.js +1 -1
  32. package/src/migrations/update-13-0-0/set-default-base-if-not-set.js +1 -1
  33. package/src/migrations/update-13-10-0/update-decorate-cli.d.ts +3 -0
  34. package/src/migrations/update-13-10-0/update-decorate-cli.js +14 -0
  35. package/src/migrations/update-13-10-0/update-decorate-cli.js.map +1 -0
  36. package/src/migrations/update-13-10-0/update-tasks-runner.d.ts +3 -0
  37. package/src/migrations/update-13-10-0/update-tasks-runner.js +16 -0
  38. package/src/migrations/update-13-10-0/update-tasks-runner.js.map +1 -0
  39. package/src/migrations/update-13-2-0/set-parallel-default.js +1 -1
  40. package/src/migrations/update-13-3-0/update-tsc-executor-location.js +1 -1
  41. package/src/tslint/nxEnforceModuleBoundariesRule.d.ts +1 -1
  42. package/src/tslint/nxEnforceModuleBoundariesRule.js +10 -11
  43. package/src/tslint/nxEnforceModuleBoundariesRule.js.map +1 -1
  44. package/src/utilities/assets.d.ts +0 -8
  45. package/src/utilities/assets.js +1 -23
  46. package/src/utilities/assets.js.map +1 -1
  47. package/src/utilities/buildable-libs-utils.d.ts +1 -0
  48. package/src/utilities/buildable-libs-utils.js +27 -20
  49. package/src/utilities/buildable-libs-utils.js.map +1 -1
  50. package/src/utilities/fileutils.d.ts +0 -3
  51. package/src/utilities/fileutils.js +1 -8
  52. package/src/utilities/fileutils.js.map +1 -1
  53. package/src/utilities/generate-globs.js +2 -2
  54. package/src/utilities/generate-globs.js.map +1 -1
  55. package/src/utilities/output.d.ts +1 -61
  56. package/src/utilities/output.js +2 -167
  57. package/src/utilities/output.js.map +1 -1
  58. package/src/utilities/plugins/community-plugins.js +1 -1
  59. package/src/utilities/plugins/plugin-capabilities.js +2 -2
  60. package/src/utilities/plugins/plugin-capabilities.js.map +1 -1
  61. package/src/utilities/prettier.js +1 -1
  62. package/src/utilities/run-tasks-in-serial.js +1 -1
  63. package/src/utilities/typescript/compilation.js +2 -2
  64. package/src/utilities/typescript/compilation.js.map +1 -1
  65. package/src/utilities/typescript.js +5 -5
  66. package/src/utilities/typescript.js.map +1 -1
  67. package/src/utils/ast-utils.d.ts +1 -2
  68. package/src/utils/ast-utils.js.map +1 -1
  69. package/src/utils/lint.js +1 -1
  70. package/src/utils/lint.js.map +1 -1
  71. package/src/utils/project-type.d.ts +1 -1
  72. package/src/utils/rules/format-files.js +7 -7
  73. package/src/utils/rules/format-files.js.map +1 -1
  74. package/src/utils/rules/rename-package-imports.js +1 -1
  75. package/src/utils/runtime-lint-utils.d.ts +2 -3
  76. package/src/utils/runtime-lint-utils.js +2 -2
  77. package/src/utils/runtime-lint-utils.js.map +1 -1
  78. package/src/utils/testing-utils.js +4 -4
  79. package/src/utils/testing-utils.js.map +1 -1
  80. package/src/utils/testing.js +2 -2
  81. package/src/utils/version-utils.js +1 -1
  82. package/src/utils/version-utils.js.map +1 -1
  83. package/src/utils/versions.js +1 -1
  84. package/src/utils/workspace.js +6 -6
  85. package/tasks-runners/default.d.ts +1 -1
  86. package/tasks-runners/default.js +1 -1
  87. package/src/command-line/affected.d.ts +0 -3
  88. package/src/command-line/affected.js +0 -117
  89. package/src/command-line/affected.js.map +0 -1
  90. package/src/command-line/connect-to-nx-cloud.d.ts +0 -2
  91. package/src/command-line/connect-to-nx-cloud.js +0 -78
  92. package/src/command-line/connect-to-nx-cloud.js.map +0 -1
  93. package/src/command-line/daemon.d.ts +0 -2
  94. package/src/command-line/daemon.js +0 -23
  95. package/src/command-line/daemon.js.map +0 -1
  96. package/src/command-line/dep-graph.d.ts +0 -24
  97. package/src/command-line/dep-graph.js +0 -370
  98. package/src/command-line/dep-graph.js.map +0 -1
  99. package/src/command-line/examples.d.ts +0 -5
  100. package/src/command-line/examples.js +0 -283
  101. package/src/command-line/examples.js.map +0 -1
  102. package/src/command-line/format.d.ts +0 -7
  103. package/src/command-line/format.js +0 -206
  104. package/src/command-line/format.js.map +0 -1
  105. package/src/command-line/lint.d.ts +0 -1
  106. package/src/command-line/lint.js +0 -32
  107. package/src/command-line/lint.js.map +0 -1
  108. package/src/command-line/list.d.ts +0 -13
  109. package/src/command-line/list.js +0 -41
  110. package/src/command-line/list.js.map +0 -1
  111. package/src/command-line/nx-commands.d.ts +0 -9
  112. package/src/command-line/nx-commands.js +0 -426
  113. package/src/command-line/nx-commands.js.map +0 -1
  114. package/src/command-line/print-affected.d.ts +0 -6
  115. package/src/command-line/print-affected.js +0 -82
  116. package/src/command-line/print-affected.js.map +0 -1
  117. package/src/command-line/report.d.ts +0 -24
  118. package/src/command-line/report.js +0 -135
  119. package/src/command-line/report.js.map +0 -1
  120. package/src/command-line/reset.d.ts +0 -1
  121. package/src/command-line/reset.js +0 -20
  122. package/src/command-line/reset.js.map +0 -1
  123. package/src/command-line/run-many.d.ts +0 -3
  124. package/src/command-line/run-many.js +0 -61
  125. package/src/command-line/run-many.js.map +0 -1
  126. package/src/command-line/run-one.d.ts +0 -6
  127. package/src/command-line/run-one.js +0 -31
  128. package/src/command-line/run-one.js.map +0 -1
  129. package/src/command-line/shared.d.ts +0 -5
  130. package/src/command-line/shared.js +0 -75
  131. package/src/command-line/shared.js.map +0 -1
  132. package/src/command-line/supported-nx-commands.d.ts +0 -1
  133. package/src/command-line/supported-nx-commands.js +0 -35
  134. package/src/command-line/supported-nx-commands.js.map +0 -1
  135. package/src/command-line/utils.d.ts +0 -40
  136. package/src/command-line/utils.js +0 -157
  137. package/src/command-line/utils.js.map +0 -1
  138. package/src/command-line/workspace-generators.d.ts +0 -1
  139. package/src/command-line/workspace-generators.js +0 -145
  140. package/src/command-line/workspace-generators.js.map +0 -1
  141. package/src/command-line/workspace-integrity-checks.d.ts +0 -11
  142. package/src/command-line/workspace-integrity-checks.js +0 -60
  143. package/src/command-line/workspace-integrity-checks.js.map +0 -1
  144. package/src/core/affected-project-graph/affected-project-graph-models.d.ts +0 -10
  145. package/src/core/affected-project-graph/affected-project-graph-models.js +0 -3
  146. package/src/core/affected-project-graph/affected-project-graph-models.js.map +0 -1
  147. package/src/core/affected-project-graph/affected-project-graph.d.ts +0 -3
  148. package/src/core/affected-project-graph/affected-project-graph.js +0 -88
  149. package/src/core/affected-project-graph/affected-project-graph.js.map +0 -1
  150. package/src/core/affected-project-graph/index.d.ts +0 -2
  151. package/src/core/affected-project-graph/index.js +0 -6
  152. package/src/core/affected-project-graph/index.js.map +0 -1
  153. package/src/core/affected-project-graph/locators/implicit-json-changes.d.ts +0 -4
  154. package/src/core/affected-project-graph/locators/implicit-json-changes.js +0 -54
  155. package/src/core/affected-project-graph/locators/implicit-json-changes.js.map +0 -1
  156. package/src/core/affected-project-graph/locators/npm-packages.d.ts +0 -4
  157. package/src/core/affected-project-graph/locators/npm-packages.js +0 -35
  158. package/src/core/affected-project-graph/locators/npm-packages.js.map +0 -1
  159. package/src/core/affected-project-graph/locators/tsconfig-json-changes.d.ts +0 -4
  160. package/src/core/affected-project-graph/locators/tsconfig-json-changes.js +0 -64
  161. package/src/core/affected-project-graph/locators/tsconfig-json-changes.js.map +0 -1
  162. package/src/core/affected-project-graph/locators/workspace-json-changes.d.ts +0 -4
  163. package/src/core/affected-project-graph/locators/workspace-json-changes.js +0 -48
  164. package/src/core/affected-project-graph/locators/workspace-json-changes.js.map +0 -1
  165. package/src/core/affected-project-graph/locators/workspace-projects.d.ts +0 -3
  166. package/src/core/affected-project-graph/locators/workspace-projects.js +0 -40
  167. package/src/core/affected-project-graph/locators/workspace-projects.js.map +0 -1
  168. package/src/core/assert-workspace-validity.d.ts +0 -2
  169. package/src/core/assert-workspace-validity.js +0 -67
  170. package/src/core/assert-workspace-validity.js.map +0 -1
  171. package/src/core/dep-graph/3rdpartylicenses.txt +0 -732
  172. package/src/core/dep-graph/index.html +0 -16
  173. package/src/core/dep-graph/main.esm.js +0 -2
  174. package/src/core/dep-graph/main.esm.js.LICENSE.txt +0 -39
  175. package/src/core/dep-graph/polyfills.esm.js +0 -1
  176. package/src/core/dep-graph/runtime.esm.js +0 -1
  177. package/src/core/dep-graph/styles.css +0 -3
  178. package/src/core/file-map-utils.d.ts +0 -10
  179. package/src/core/file-map-utils.js +0 -80
  180. package/src/core/file-map-utils.js.map +0 -1
  181. package/src/core/file-utils.d.ts +0 -32
  182. package/src/core/file-utils.js +0 -160
  183. package/src/core/file-utils.js.map +0 -1
  184. package/src/core/hasher/file-hasher-base.d.ts +0 -12
  185. package/src/core/hasher/file-hasher-base.js +0 -68
  186. package/src/core/hasher/file-hasher-base.js.map +0 -1
  187. package/src/core/hasher/file-hasher.d.ts +0 -2
  188. package/src/core/hasher/file-hasher.js +0 -22
  189. package/src/core/hasher/file-hasher.js.map +0 -1
  190. package/src/core/hasher/git-based-file-hasher.d.ts +0 -10
  191. package/src/core/hasher/git-based-file-hasher.js +0 -50
  192. package/src/core/hasher/git-based-file-hasher.js.map +0 -1
  193. package/src/core/hasher/git-hasher.d.ts +0 -7
  194. package/src/core/hasher/git-hasher.js +0 -134
  195. package/src/core/hasher/git-hasher.js.map +0 -1
  196. package/src/core/hasher/hasher.d.ts +0 -63
  197. package/src/core/hasher/hasher.js +0 -367
  198. package/src/core/hasher/hasher.js.map +0 -1
  199. package/src/core/hasher/hashing-impl.d.ts +0 -5
  200. package/src/core/hasher/hashing-impl.js +0 -23
  201. package/src/core/hasher/hashing-impl.js.map +0 -1
  202. package/src/core/hasher/node-based-file-hasher.d.ts +0 -7
  203. package/src/core/hasher/node-based-file-hasher.js +0 -78
  204. package/src/core/hasher/node-based-file-hasher.js.map +0 -1
  205. package/src/core/normalize-nx-json.d.ts +0 -8
  206. package/src/core/normalize-nx-json.js +0 -38
  207. package/src/core/normalize-nx-json.js.map +0 -1
  208. package/src/core/nx-deps/nx-deps-cache.d.ts +0 -39
  209. package/src/core/nx-deps/nx-deps-cache.js +0 -164
  210. package/src/core/nx-deps/nx-deps-cache.js.map +0 -1
  211. package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.d.ts +0 -5
  212. package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.js +0 -19
  213. package/src/core/project-graph/build-dependencies/build-explicit-typescript-and-package-json-dependencies.js.map +0 -1
  214. package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts +0 -3
  215. package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.js +0 -73
  216. package/src/core/project-graph/build-dependencies/explicit-package-json-dependencies.js.map +0 -1
  217. package/src/core/project-graph/build-dependencies/explicit-project-dependencies.d.ts +0 -3
  218. package/src/core/project-graph/build-dependencies/explicit-project-dependencies.js +0 -27
  219. package/src/core/project-graph/build-dependencies/explicit-project-dependencies.js.map +0 -1
  220. package/src/core/project-graph/build-dependencies/implicit-project-dependencies.d.ts +0 -2
  221. package/src/core/project-graph/build-dependencies/implicit-project-dependencies.js +0 -20
  222. package/src/core/project-graph/build-dependencies/implicit-project-dependencies.js.map +0 -1
  223. package/src/core/project-graph/build-dependencies/index.d.ts +0 -3
  224. package/src/core/project-graph/build-dependencies/index.js +0 -7
  225. package/src/core/project-graph/build-dependencies/index.js.map +0 -1
  226. package/src/core/project-graph/build-dependencies/typescript-import-locator.d.ts +0 -11
  227. package/src/core/project-graph/build-dependencies/typescript-import-locator.js +0 -114
  228. package/src/core/project-graph/build-dependencies/typescript-import-locator.js.map +0 -1
  229. package/src/core/project-graph/build-nodes/index.d.ts +0 -2
  230. package/src/core/project-graph/build-nodes/index.js +0 -6
  231. package/src/core/project-graph/build-nodes/index.js.map +0 -1
  232. package/src/core/project-graph/build-nodes/npm-packages.d.ts +0 -2
  233. package/src/core/project-graph/build-nodes/npm-packages.js +0 -22
  234. package/src/core/project-graph/build-nodes/npm-packages.js.map +0 -1
  235. package/src/core/project-graph/build-nodes/workspace-projects.d.ts +0 -2
  236. package/src/core/project-graph/build-nodes/workspace-projects.js +0 -49
  237. package/src/core/project-graph/build-nodes/workspace-projects.js.map +0 -1
  238. package/src/core/project-graph/build-project-graph.d.ts +0 -7
  239. package/src/core/project-graph/build-project-graph.js +0 -231
  240. package/src/core/project-graph/build-project-graph.js.map +0 -1
  241. package/src/core/project-graph/daemon/cache.d.ts +0 -6
  242. package/src/core/project-graph/daemon/cache.js +0 -56
  243. package/src/core/project-graph/daemon/cache.js.map +0 -1
  244. package/src/core/project-graph/daemon/client/client.d.ts +0 -26
  245. package/src/core/project-graph/daemon/client/client.js +0 -200
  246. package/src/core/project-graph/daemon/client/client.js.map +0 -1
  247. package/src/core/project-graph/daemon/client/exec-is-server-available.d.ts +0 -1
  248. package/src/core/project-graph/daemon/client/exec-is-server-available.js +0 -13
  249. package/src/core/project-graph/daemon/client/exec-is-server-available.js.map +0 -1
  250. package/src/core/project-graph/daemon/client/generate-help-output.d.ts +0 -1
  251. package/src/core/project-graph/daemon/client/generate-help-output.js +0 -31
  252. package/src/core/project-graph/daemon/client/generate-help-output.js.map +0 -1
  253. package/src/core/project-graph/daemon/server/logger.d.ts +0 -18
  254. package/src/core/project-graph/daemon/server/logger.js +0 -38
  255. package/src/core/project-graph/daemon/server/logger.js.map +0 -1
  256. package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.d.ts +0 -8
  257. package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js +0 -191
  258. package/src/core/project-graph/daemon/server/project-graph-incremental-recomputation.js.map +0 -1
  259. package/src/core/project-graph/daemon/server/server.d.ts +0 -4
  260. package/src/core/project-graph/daemon/server/server.js +0 -236
  261. package/src/core/project-graph/daemon/server/server.js.map +0 -1
  262. package/src/core/project-graph/daemon/server/shutdown-utils.d.ts +0 -12
  263. package/src/core/project-graph/daemon/server/shutdown-utils.js +0 -32
  264. package/src/core/project-graph/daemon/server/shutdown-utils.js.map +0 -1
  265. package/src/core/project-graph/daemon/server/start.d.ts +0 -1
  266. package/src/core/project-graph/daemon/server/start.js +0 -19
  267. package/src/core/project-graph/daemon/server/start.js.map +0 -1
  268. package/src/core/project-graph/daemon/server/stop.d.ts +0 -1
  269. package/src/core/project-graph/daemon/server/stop.js +0 -19
  270. package/src/core/project-graph/daemon/server/stop.js.map +0 -1
  271. package/src/core/project-graph/daemon/server/watcher.d.ts +0 -12
  272. package/src/core/project-graph/daemon/server/watcher.js +0 -158
  273. package/src/core/project-graph/daemon/server/watcher.js.map +0 -1
  274. package/src/core/project-graph/daemon/socket-utils.d.ts +0 -15
  275. package/src/core/project-graph/daemon/socket-utils.js +0 -38
  276. package/src/core/project-graph/daemon/socket-utils.js.map +0 -1
  277. package/src/core/project-graph/daemon/tmp-dir.d.ts +0 -6
  278. package/src/core/project-graph/daemon/tmp-dir.js +0 -37
  279. package/src/core/project-graph/daemon/tmp-dir.js.map +0 -1
  280. package/src/core/project-graph/index.d.ts +0 -3
  281. package/src/core/project-graph/index.js +0 -10
  282. package/src/core/project-graph/index.js.map +0 -1
  283. package/src/core/project-graph/operators.d.ts +0 -14
  284. package/src/core/project-graph/operators.js +0 -119
  285. package/src/core/project-graph/operators.js.map +0 -1
  286. package/src/core/project-graph/project-graph-models.d.ts +0 -8
  287. package/src/core/project-graph/project-graph-models.js +0 -12
  288. package/src/core/project-graph/project-graph-models.js.map +0 -1
  289. package/src/core/project-graph/project-graph-worker.d.ts +0 -1
  290. package/src/core/project-graph/project-graph-worker.js +0 -19
  291. package/src/core/project-graph/project-graph-worker.js.map +0 -1
  292. package/src/core/project-graph/project-graph.d.ts +0 -16
  293. package/src/core/project-graph/project-graph.js +0 -167
  294. package/src/core/project-graph/project-graph.js.map +0 -1
  295. package/src/core/shared-interfaces.d.ts +0 -11
  296. package/src/core/shared-interfaces.js +0 -3
  297. package/src/core/shared-interfaces.js.map +0 -1
  298. package/src/core/target-project-locator.d.ts +0 -36
  299. package/src/core/target-project-locator.js +0 -164
  300. package/src/core/target-project-locator.js.map +0 -1
  301. package/src/init/init.d.ts +0 -1
  302. package/src/init/init.js +0 -13
  303. package/src/init/init.js.map +0 -1
  304. package/src/tasks-runner/batch/batch-messages.d.ts +0 -24
  305. package/src/tasks-runner/batch/batch-messages.js +0 -9
  306. package/src/tasks-runner/batch/batch-messages.js.map +0 -1
  307. package/src/tasks-runner/batch/run-batch.d.ts +0 -1
  308. package/src/tasks-runner/batch/run-batch.js +0 -57
  309. package/src/tasks-runner/batch/run-batch.js.map +0 -1
  310. package/src/tasks-runner/cache.d.ts +0 -40
  311. package/src/tasks-runner/cache.js +0 -284
  312. package/src/tasks-runner/cache.js.map +0 -1
  313. package/src/tasks-runner/default-reporter.d.ts +0 -11
  314. package/src/tasks-runner/default-reporter.js +0 -79
  315. package/src/tasks-runner/default-reporter.js.map +0 -1
  316. package/src/tasks-runner/default-tasks-runner.d.ts +0 -19
  317. package/src/tasks-runner/default-tasks-runner.js +0 -48
  318. package/src/tasks-runner/default-tasks-runner.js.map +0 -1
  319. package/src/tasks-runner/empty-reporter.d.ts +0 -10
  320. package/src/tasks-runner/empty-reporter.js +0 -13
  321. package/src/tasks-runner/empty-reporter.js.map +0 -1
  322. package/src/tasks-runner/forked-process-task-runner.d.ts +0 -36
  323. package/src/tasks-runner/forked-process-task-runner.js +0 -257
  324. package/src/tasks-runner/forked-process-task-runner.js.map +0 -1
  325. package/src/tasks-runner/life-cycle.d.ts +0 -43
  326. package/src/tasks-runner/life-cycle.js +0 -72
  327. package/src/tasks-runner/life-cycle.js.map +0 -1
  328. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts +0 -25
  329. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +0 -349
  330. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js.map +0 -1
  331. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.d.ts +0 -25
  332. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +0 -231
  333. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js.map +0 -1
  334. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.d.ts +0 -6
  335. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js +0 -19
  336. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js.map +0 -1
  337. package/src/tasks-runner/life-cycles/pretty-time.d.ts +0 -4
  338. package/src/tasks-runner/life-cycles/pretty-time.js +0 -75
  339. package/src/tasks-runner/life-cycles/pretty-time.js.map +0 -1
  340. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.d.ts +0 -33
  341. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +0 -110
  342. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js.map +0 -1
  343. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.d.ts +0 -31
  344. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +0 -97
  345. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js.map +0 -1
  346. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.d.ts +0 -19
  347. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.js +0 -67
  348. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.js.map +0 -1
  349. package/src/tasks-runner/life-cycles/task-timings-life-cycle.d.ts +0 -13
  350. package/src/tasks-runner/life-cycles/task-timings-life-cycle.js +0 -33
  351. package/src/tasks-runner/life-cycles/task-timings-life-cycle.js.map +0 -1
  352. package/src/tasks-runner/remove-old-cache-records.d.ts +0 -1
  353. package/src/tasks-runner/remove-old-cache-records.js +0 -62
  354. package/src/tasks-runner/remove-old-cache-records.js.map +0 -1
  355. package/src/tasks-runner/reporter.d.ts +0 -14
  356. package/src/tasks-runner/reporter.js +0 -11
  357. package/src/tasks-runner/reporter.js.map +0 -1
  358. package/src/tasks-runner/run-command.d.ts +0 -19
  359. package/src/tasks-runner/run-command.js +0 -353
  360. package/src/tasks-runner/run-command.js.map +0 -1
  361. package/src/tasks-runner/run-one-reporter.d.ts +0 -12
  362. package/src/tasks-runner/run-one-reporter.js +0 -68
  363. package/src/tasks-runner/run-one-reporter.js.map +0 -1
  364. package/src/tasks-runner/task-graph-creator.d.ts +0 -11
  365. package/src/tasks-runner/task-graph-creator.js +0 -71
  366. package/src/tasks-runner/task-graph-creator.js.map +0 -1
  367. package/src/tasks-runner/task-orchestrator.d.ts +0 -37
  368. package/src/tasks-runner/task-orchestrator.js +0 -299
  369. package/src/tasks-runner/task-orchestrator.js.map +0 -1
  370. package/src/tasks-runner/tasks-runner-v2.d.ts +0 -18
  371. package/src/tasks-runner/tasks-runner-v2.js +0 -42
  372. package/src/tasks-runner/tasks-runner-v2.js.map +0 -1
  373. package/src/tasks-runner/tasks-runner.d.ts +0 -44
  374. package/src/tasks-runner/tasks-runner.js +0 -15
  375. package/src/tasks-runner/tasks-runner.js.map +0 -1
  376. package/src/tasks-runner/tasks-schedule.d.ts +0 -32
  377. package/src/tasks-runner/tasks-schedule.js +0 -130
  378. package/src/tasks-runner/tasks-schedule.js.map +0 -1
  379. package/src/tasks-runner/utils.d.ts +0 -25
  380. package/src/tasks-runner/utils.js +0 -217
  381. package/src/tasks-runner/utils.js.map +0 -1
  382. package/src/utilities/array.d.ts +0 -17
  383. package/src/utilities/array.js +0 -26
  384. package/src/utilities/array.js.map +0 -1
  385. package/src/utilities/cache-directory.d.ts +0 -1
  386. package/src/utilities/cache-directory.js +0 -34
  387. package/src/utilities/cache-directory.js.map +0 -1
  388. package/src/utilities/is_ci.d.ts +0 -1
  389. package/src/utilities/is_ci.js +0 -21
  390. package/src/utilities/is_ci.js.map +0 -1
  391. package/src/utilities/json-diff.d.ts +0 -17
  392. package/src/utilities/json-diff.js +0 -112
  393. package/src/utilities/json-diff.js.map +0 -1
  394. package/src/utilities/perf-logging.d.ts +0 -1
  395. package/src/utilities/perf-logging.js +0 -12
  396. package/src/utilities/perf-logging.js.map +0 -1
  397. package/src/utilities/project-graph-utils.d.ts +0 -11
  398. package/src/utilities/project-graph-utils.js +0 -95
  399. package/src/utilities/project-graph-utils.js.map +0 -1
  400. package/src/utilities/strip-source-code.d.ts +0 -2
  401. package/src/utilities/strip-source-code.js +0 -85
  402. package/src/utilities/strip-source-code.js.map +0 -1
@@ -1,349 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRunManyDynamicOutputRenderer = void 0;
4
- const tslib_1 = require("tslib");
5
- const cliCursor = require("cli-cursor");
6
- const cli_spinners_1 = require("cli-spinners");
7
- const os_1 = require("os");
8
- const readline = require("readline");
9
- const output_1 = require("../../utilities/output");
10
- const pretty_time_1 = require("./pretty-time");
11
- /**
12
- * The following function is responsible for creating a life cycle with dynamic
13
- * outputs, meaning previous outputs can be rewritten or modified as new outputs
14
- * are added. It is therefore intended for use on a user's local machines.
15
- *
16
- * In CI environments the static equivalent of this life cycle should be used.
17
- *
18
- * NOTE: output.dim() should be preferred over output.colors.gray() because it
19
- * is much more consistently readable across different terminal color themes.
20
- */
21
- function createRunManyDynamicOutputRenderer({ projectNames, tasks, args, overrides, }) {
22
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
- cliCursor.hide();
24
- let resolveRenderIsDonePromise;
25
- const renderIsDone = new Promise((resolve) => (resolveRenderIsDonePromise = resolve)).then(() => {
26
- clearRenderInterval();
27
- cliCursor.show();
28
- });
29
- function clearRenderInterval() {
30
- if (renderProjectRowsIntervalId) {
31
- clearInterval(renderProjectRowsIntervalId);
32
- }
33
- }
34
- process.on('exit', () => clearRenderInterval());
35
- process.on('SIGINT', () => clearRenderInterval());
36
- process.on('SIGTERM', () => clearRenderInterval());
37
- process.on('SIGHUP', () => clearRenderInterval());
38
- const lifeCycle = {};
39
- const isVerbose = overrides.verbose === true;
40
- const start = process.hrtime();
41
- const figures = yield Promise.resolve().then(() => require('figures'));
42
- const totalTasks = tasks.length;
43
- const totalProjects = projectNames.length;
44
- const totalDependentTasks = totalTasks - totalProjects;
45
- const targetName = args.target;
46
- const projectRows = projectNames.map((projectName) => {
47
- return {
48
- projectName,
49
- status: 'pending',
50
- };
51
- });
52
- const tasksToTerminalOutputs = {};
53
- const tasksToProcessStartTimes = {};
54
- let hasTaskOutput = false;
55
- let pinnedFooterNumLines = 0;
56
- let totalCompletedTasks = 0;
57
- let totalSuccessfulTasks = 0;
58
- let totalFailedTasks = 0;
59
- let totalCachedTasks = 0;
60
- // Used to control the rendering of the spinner on each project row
61
- let projectRowsCurrentFrame = 0;
62
- let renderProjectRowsIntervalId;
63
- const clearPinnedFooter = () => {
64
- for (let i = 0; i < pinnedFooterNumLines; i++) {
65
- readline.moveCursor(process.stdout, 0, -1);
66
- readline.clearLine(process.stdout, 0);
67
- }
68
- };
69
- const renderPinnedFooter = (lines, dividerColor = 'cyan') => {
70
- let additionalLines = 0;
71
- if (hasTaskOutput) {
72
- output_1.output.addVerticalSeparator(dividerColor);
73
- additionalLines += 3;
74
- }
75
- // Create vertical breathing room for cursor position under the pinned footer
76
- lines.push('');
77
- for (const line of lines) {
78
- process.stdout.write(output_1.output.X_PADDING + line + os_1.EOL);
79
- }
80
- pinnedFooterNumLines = lines.length + additionalLines;
81
- };
82
- const printTaskResult = (task, status) => {
83
- clearPinnedFooter();
84
- // If this is the very first output, add some vertical breathing room
85
- if (!hasTaskOutput) {
86
- output_1.output.addNewline();
87
- }
88
- hasTaskOutput = true;
89
- switch (status) {
90
- case 'local-cache':
91
- writeLine(`${output_1.output.colors.green(figures.tick) +
92
- output_1.output.dim(' nx run ') +
93
- task.id} ${output_1.output.dim('[local cache]')}`);
94
- if (isVerbose) {
95
- writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
96
- }
97
- break;
98
- case 'local-cache-kept-existing':
99
- writeLine(`${output_1.output.colors.green(figures.tick) +
100
- output_1.output.dim(' nx run ') +
101
- task.id} ${output_1.output.dim('[existing outputs match the cache, left as is]')}`);
102
- if (isVerbose) {
103
- writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
104
- }
105
- break;
106
- case 'remote-cache':
107
- writeLine(`${output_1.output.colors.green(figures.tick) +
108
- output_1.output.dim(' nx run ') +
109
- task.id} ${output_1.output.dim('[remote cache]')}`);
110
- if (isVerbose) {
111
- writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
112
- }
113
- break;
114
- case 'success': {
115
- const timeTakenText = (0, pretty_time_1.prettyTime)(process.hrtime(tasksToProcessStartTimes[task.id]));
116
- writeLine(output_1.output.colors.green(figures.tick) +
117
- output_1.output.dim(' nx run ') +
118
- task.id +
119
- output_1.output.dim(` (${timeTakenText})`));
120
- if (isVerbose) {
121
- writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
122
- }
123
- break;
124
- }
125
- case 'failure':
126
- output_1.output.addNewline();
127
- writeLine(output_1.output.colors.red(figures.cross) +
128
- output_1.output.dim(' nx run ') +
129
- output_1.output.colors.red(task.id));
130
- writeCommandOutputBlock(tasksToTerminalOutputs[task.id]);
131
- break;
132
- }
133
- delete tasksToTerminalOutputs[task.id];
134
- renderPinnedFooter([]);
135
- renderProjectRows();
136
- };
137
- const renderProjectRows = () => {
138
- const max = cli_spinners_1.dots.frames.length - 1;
139
- const curr = projectRowsCurrentFrame;
140
- projectRowsCurrentFrame = curr >= max ? 0 : curr + 1;
141
- const additionalFooterRows = [''];
142
- const runningTasks = projectRows.filter((row) => row.status === 'running');
143
- const remainingTasks = totalTasks - totalCompletedTasks;
144
- if (runningTasks.length > 0) {
145
- additionalFooterRows.push(output_1.output.dim(` ${output_1.output.colors.cyan(figures.arrowRight)} Executing ${runningTasks.length}/${remainingTasks} remaining tasks${runningTasks.length > 1 ? ' in parallel' : ''}...`));
146
- additionalFooterRows.push('');
147
- for (const projectRow of runningTasks) {
148
- additionalFooterRows.push(` ${output_1.output.dim.cyan(cli_spinners_1.dots.frames[projectRowsCurrentFrame])} ${output_1.output.dim('nx run ') + projectRow.projectName + ':' + targetName}`);
149
- }
150
- /**
151
- * Reduce layout thrashing by ensuring that there is a relatively consistent
152
- * height for the area in which the task rows are rendered.
153
- *
154
- * We can look at the parallel flag to know how many rows are likely to be
155
- * needed in the common case and always render that at least that many.
156
- */
157
- if (totalCompletedTasks !== totalTasks &&
158
- Number.isInteger(args.parallel) &&
159
- runningTasks.length < args.parallel) {
160
- // Don't bother with this optimization if there are fewer tasks remaining than rows required
161
- if (remainingTasks >= args.parallel) {
162
- for (let i = runningTasks.length; i < args.parallel; i++) {
163
- additionalFooterRows.push('');
164
- }
165
- }
166
- }
167
- }
168
- if (totalSuccessfulTasks > 0 || totalFailedTasks > 0) {
169
- additionalFooterRows.push('');
170
- }
171
- if (totalFailedTasks > 0) {
172
- additionalFooterRows.push(` ${output_1.output.colors.red(figures.cross)} ${totalFailedTasks}${`/${totalCompletedTasks}`} failed`);
173
- }
174
- if (totalSuccessfulTasks > 0) {
175
- additionalFooterRows.push(` ${output_1.output.colors.green(figures.tick)} ${totalSuccessfulTasks}${`/${totalCompletedTasks}`} succeeded ${output_1.output.dim(`[${totalCachedTasks} read from cache]`)}`);
176
- }
177
- clearPinnedFooter();
178
- if (additionalFooterRows.length > 1) {
179
- let text = `Running target ${output_1.output.bold.cyan(targetName)} for ${output_1.output.bold.cyan(totalProjects)} projects`;
180
- if (totalDependentTasks > 0) {
181
- text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) they depend on`;
182
- }
183
- const taskOverridesRows = [];
184
- if (Object.keys(overrides).length > 0) {
185
- const leftPadding = `${output_1.output.X_PADDING} `;
186
- taskOverridesRows.push('');
187
- taskOverridesRows.push(`${leftPadding}${output_1.output.dim.cyan('With additional flags:')}`);
188
- Object.entries(overrides)
189
- .map(([flag, value]) => output_1.output.dim.cyan(`${leftPadding} --${flag}=${value}`))
190
- .forEach((arg) => taskOverridesRows.push(arg));
191
- }
192
- const pinnedFooterLines = [
193
- output_1.output.applyNxPrefix('cyan', output_1.output.colors.cyan(text)),
194
- ...taskOverridesRows,
195
- ...additionalFooterRows,
196
- ];
197
- // Vertical breathing room when there isn't yet any output or divider
198
- if (!hasTaskOutput) {
199
- pinnedFooterLines.unshift('');
200
- }
201
- renderPinnedFooter(pinnedFooterLines);
202
- }
203
- else {
204
- renderPinnedFooter([]);
205
- }
206
- };
207
- lifeCycle.startCommand = () => {
208
- if (totalProjects <= 0) {
209
- let description = `with target ${output_1.output.colors.white.bold(targetName)}`;
210
- if (args.configuration) {
211
- description += ` that are configured for "${args.configuration}"`;
212
- }
213
- renderPinnedFooter([
214
- '',
215
- output_1.output.applyNxPrefix('gray', `No projects ${description} were run`),
216
- ]);
217
- resolveRenderIsDonePromise();
218
- return;
219
- }
220
- renderPinnedFooter([]);
221
- };
222
- lifeCycle.endCommand = () => {
223
- clearRenderInterval();
224
- const timeTakenText = (0, pretty_time_1.prettyTime)(process.hrtime(start));
225
- clearPinnedFooter();
226
- if (totalSuccessfulTasks === totalTasks) {
227
- let text = `Successfully ran target ${output_1.output.bold(targetName)} for ${output_1.output.bold(totalProjects)} projects`;
228
- if (totalDependentTasks > 0) {
229
- text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) they depend on`;
230
- }
231
- const taskOverridesRows = [];
232
- if (Object.keys(overrides).length > 0) {
233
- const leftPadding = `${output_1.output.X_PADDING} `;
234
- taskOverridesRows.push('');
235
- taskOverridesRows.push(`${leftPadding}${output_1.output.dim.green('With additional flags:')}`);
236
- Object.entries(overrides)
237
- .map(([flag, value]) => output_1.output.dim.green(`${leftPadding} --${flag}=${value}`))
238
- .forEach((arg) => taskOverridesRows.push(arg));
239
- }
240
- const pinnedFooterLines = [
241
- output_1.output.applyNxPrefix('green', output_1.output.colors.green(text) + output_1.output.dim.white(` (${timeTakenText})`)),
242
- ...taskOverridesRows,
243
- ];
244
- if (totalCachedTasks > 0) {
245
- pinnedFooterLines.push(output_1.output.dim(`${os_1.EOL} Nx read the output from the cache instead of running the command for ${totalCachedTasks} out of ${totalTasks} tasks.`));
246
- }
247
- renderPinnedFooter(pinnedFooterLines, 'green');
248
- }
249
- else {
250
- let text = `Ran target ${output_1.output.bold(targetName)} for ${output_1.output.bold(totalProjects)} projects`;
251
- if (totalDependentTasks > 0) {
252
- text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) they depend on`;
253
- }
254
- const taskOverridesRows = [];
255
- if (Object.keys(overrides).length > 0) {
256
- const leftPadding = `${output_1.output.X_PADDING} `;
257
- taskOverridesRows.push('');
258
- taskOverridesRows.push(`${leftPadding}${output_1.output.dim.red('With additional flags:')}`);
259
- Object.entries(overrides)
260
- .map(([flag, value]) => output_1.output.dim.red(`${leftPadding} --${flag}=${value}`))
261
- .forEach((arg) => taskOverridesRows.push(arg));
262
- }
263
- renderPinnedFooter([
264
- output_1.output.applyNxPrefix('red', output_1.output.colors.red(text) + output_1.output.dim.white(` (${timeTakenText})`)),
265
- ...taskOverridesRows,
266
- '',
267
- ` ${output_1.output.colors.red(figures.cross)} ${totalFailedTasks}${`/${totalCompletedTasks}`} failed`,
268
- ` ${output_1.output.dim(figures.tick)} ${totalSuccessfulTasks}${`/${totalCompletedTasks}`} succeeded ${output_1.output.dim(`[${totalCachedTasks} read from cache]`)}`,
269
- ], 'red');
270
- }
271
- resolveRenderIsDonePromise();
272
- };
273
- lifeCycle.startTasks = (tasks) => {
274
- for (const task of tasks) {
275
- tasksToProcessStartTimes[task.id] = process.hrtime();
276
- }
277
- for (const projectRow of projectRows) {
278
- const matchedTask = tasks.find((t) => t.target.project === projectRow.projectName);
279
- if (!matchedTask) {
280
- continue;
281
- }
282
- projectRow.status = 'running';
283
- }
284
- if (!renderProjectRowsIntervalId) {
285
- renderProjectRowsIntervalId = setInterval(renderProjectRows, 100);
286
- }
287
- };
288
- lifeCycle.printTaskTerminalOutput = (task, _cacheStatus, output) => {
289
- tasksToTerminalOutputs[task.id] = output;
290
- };
291
- lifeCycle.endTasks = (taskResults) => {
292
- for (let t of taskResults) {
293
- totalCompletedTasks++;
294
- const matchingProjectRow = projectRows.find((pr) => pr.projectName === t.task.target.project);
295
- if (matchingProjectRow) {
296
- matchingProjectRow.status = t.status;
297
- }
298
- switch (t.status) {
299
- case 'remote-cache':
300
- case 'local-cache':
301
- case 'local-cache-kept-existing':
302
- totalCachedTasks++;
303
- totalSuccessfulTasks++;
304
- break;
305
- case 'success':
306
- totalSuccessfulTasks++;
307
- break;
308
- case 'failure':
309
- totalFailedTasks++;
310
- break;
311
- }
312
- printTaskResult(t.task, t.status);
313
- }
314
- };
315
- return { lifeCycle, renderIsDone };
316
- });
317
- }
318
- exports.createRunManyDynamicOutputRenderer = createRunManyDynamicOutputRenderer;
319
- function writeLine(line) {
320
- const additionalXPadding = ' ';
321
- process.stdout.write(output_1.output.X_PADDING + additionalXPadding + line + os_1.EOL);
322
- }
323
- /**
324
- * There's not much we can do in order to "neaten up" the outputs of
325
- * commands we do not control, but at the very least we can trim any
326
- * leading whitespace and any _excess_ trailing newlines so that there
327
- * isn't unncecessary vertical whitespace.
328
- */
329
- function writeCommandOutputBlock(commandOutput) {
330
- commandOutput = commandOutput || '';
331
- commandOutput = commandOutput.trimStart();
332
- const additionalXPadding = ' ';
333
- const lines = commandOutput.split(os_1.EOL);
334
- let totalTrailingEmptyLines = 0;
335
- for (let i = lines.length - 1; i >= 0; i--) {
336
- if (lines[i] !== '') {
337
- break;
338
- }
339
- totalTrailingEmptyLines++;
340
- }
341
- if (totalTrailingEmptyLines > 1) {
342
- const linesToRemove = totalTrailingEmptyLines - 1;
343
- lines.splice(lines.length - linesToRemove, linesToRemove);
344
- }
345
- // Indent the command output to make it look more "designed" in the context of the dynamic output
346
- process.stdout.write(lines.map((l) => `${output_1.output.X_PADDING}${additionalXPadding}${l}`).join(os_1.EOL) +
347
- os_1.EOL);
348
- }
349
- //# sourceMappingURL=dynamic-run-many-terminal-output-life-cycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-run-many-terminal-output-life-cycle.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import type { LifeCycle } from '../life-cycle';
2
- import type { Task } from '../tasks-runner';
3
- /**
4
- * The following function is responsible for creating a life cycle with dynamic
5
- * outputs, meaning previous outputs can be rewritten or modified as new outputs
6
- * are added. It is therefore intended for use on a user's local machines.
7
- *
8
- * In CI environments the static equivalent of this life cycle should be used.
9
- *
10
- * NOTE: output.dim() should be preferred over output.colors.gray() because it
11
- * is much more consistently readable across different terminal color themes.
12
- */
13
- export declare function createRunOneDynamicOutputRenderer({ initiatingProject, tasks, args, overrides, }: {
14
- initiatingProject: string;
15
- tasks: Task[];
16
- args: {
17
- target?: string;
18
- configuration?: string;
19
- parallel?: number;
20
- };
21
- overrides: Record<string, unknown>;
22
- }): Promise<{
23
- lifeCycle: LifeCycle;
24
- renderIsDone: Promise<void>;
25
- }>;
@@ -1,231 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRunOneDynamicOutputRenderer = void 0;
4
- const tslib_1 = require("tslib");
5
- const cliCursor = require("cli-cursor");
6
- const cli_spinners_1 = require("cli-spinners");
7
- const os_1 = require("os");
8
- const readline = require("readline");
9
- const output_1 = require("../../utilities/output");
10
- const pretty_time_1 = require("./pretty-time");
11
- /**
12
- * The following function is responsible for creating a life cycle with dynamic
13
- * outputs, meaning previous outputs can be rewritten or modified as new outputs
14
- * are added. It is therefore intended for use on a user's local machines.
15
- *
16
- * In CI environments the static equivalent of this life cycle should be used.
17
- *
18
- * NOTE: output.dim() should be preferred over output.colors.gray() because it
19
- * is much more consistently readable across different terminal color themes.
20
- */
21
- function createRunOneDynamicOutputRenderer({ initiatingProject, tasks, args, overrides, }) {
22
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
- cliCursor.hide();
24
- let resolveRenderIsDonePromise;
25
- const renderIsDone = new Promise((resolve) => (resolveRenderIsDonePromise = resolve)).then(() => {
26
- clearRenderInterval();
27
- cliCursor.show();
28
- });
29
- function clearRenderInterval() {
30
- if (renderDependentTargetsIntervalId) {
31
- clearInterval(renderDependentTargetsIntervalId);
32
- }
33
- }
34
- process.on('exit', () => clearRenderInterval());
35
- process.on('SIGINT', () => clearRenderInterval());
36
- process.on('SIGTERM', () => clearRenderInterval());
37
- process.on('SIGHUP', () => clearRenderInterval());
38
- const lifeCycle = {};
39
- const start = process.hrtime();
40
- const figures = yield Promise.resolve().then(() => require('figures'));
41
- let state = 'EXECUTING_DEPENDENT_TARGETS';
42
- const tasksToTerminalOutputs = {};
43
- const totalTasks = tasks.length;
44
- const totalDependentTasks = totalTasks - 1;
45
- const totalTasksFromInitiatingProject = tasks.filter((t) => t.target.project === initiatingProject).length;
46
- // Tasks from the initiating project are treated differently, they forward their output
47
- const totalDependentTasksNotFromInitiatingProject = totalTasks - totalTasksFromInitiatingProject;
48
- const targetName = args.target;
49
- let dependentTargetsNumLines = 0;
50
- let totalCompletedTasks = 0;
51
- let totalSuccessfulTasks = 0;
52
- let totalFailedTasks = 0;
53
- let totalCachedTasks = 0;
54
- // Used to control the rendering of the spinner
55
- let dependentTargetsCurrentFrame = 0;
56
- let renderDependentTargetsIntervalId;
57
- const clearDependentTargets = () => {
58
- for (let i = 0; i < dependentTargetsNumLines; i++) {
59
- readline.moveCursor(process.stdout, 0, -1);
60
- readline.clearLine(process.stdout, 0);
61
- }
62
- };
63
- const renderLines = (lines, dividerColor = 'cyan', renderDivider = true, skipPadding = false) => {
64
- let additionalLines = 0;
65
- if (renderDivider) {
66
- output_1.output.addVerticalSeparator(dividerColor);
67
- additionalLines += 3;
68
- }
69
- if (renderDivider) {
70
- lines.push('');
71
- }
72
- for (const line of lines) {
73
- process.stdout.write((skipPadding ? '' : output_1.output.X_PADDING) + line + os_1.EOL);
74
- }
75
- dependentTargetsNumLines = lines.length + additionalLines;
76
- };
77
- const renderDependentTargets = (renderDivider = true) => {
78
- if (totalDependentTasksNotFromInitiatingProject <= 0) {
79
- return;
80
- }
81
- const max = cli_spinners_1.dots.frames.length - 1;
82
- const curr = dependentTargetsCurrentFrame;
83
- dependentTargetsCurrentFrame = curr >= max ? 0 : curr + 1;
84
- const linesToRender = [''];
85
- const remainingDependentTasksNotFromInitiatingProject = totalDependentTasksNotFromInitiatingProject - totalCompletedTasks;
86
- switch (state) {
87
- case 'EXECUTING_DEPENDENT_TARGETS':
88
- if (totalFailedTasks === 0) {
89
- linesToRender.push(` ${output_1.output.colors.cyan(cli_spinners_1.dots.frames[dependentTargetsCurrentFrame])} ${output_1.output.dim(`Nx is waiting on ${remainingDependentTasksNotFromInitiatingProject} dependent project tasks before running tasks from`)} ${initiatingProject}${output_1.output.dim('...')}`);
90
- if (totalSuccessfulTasks > 0) {
91
- linesToRender.push('');
92
- }
93
- }
94
- break;
95
- }
96
- if (totalFailedTasks > 0) {
97
- linesToRender.push(output_1.output.colors.red.dim(` ${output_1.output.colors.red(figures.cross)} ${totalFailedTasks}${`/${totalCompletedTasks}`} dependent project tasks failed (see below)`));
98
- }
99
- if (totalSuccessfulTasks > 0) {
100
- linesToRender.push(output_1.output.dim(` ${output_1.output.dim(figures.tick)} ${totalSuccessfulTasks}${`/${totalCompletedTasks}`} dependent project tasks succeeded ${output_1.output.dim(`[${totalCachedTasks} read from cache]`)}`));
101
- }
102
- clearDependentTargets();
103
- if (linesToRender.length > 1) {
104
- renderLines(linesToRender, 'gray', renderDivider && state !== 'EXECUTING_DEPENDENT_TARGETS', true);
105
- }
106
- else {
107
- renderLines([]);
108
- }
109
- };
110
- lifeCycle.startCommand = () => {
111
- renderDependentTargets();
112
- };
113
- lifeCycle.startTasks = (tasks) => {
114
- for (const task of tasks) {
115
- // Move from the dependent project tasks phase to the initiating project's targets
116
- if (task.target.project === initiatingProject &&
117
- state !== 'EXECUTING_INITIATING_PROJECT_TARGET') {
118
- state = 'EXECUTING_INITIATING_PROJECT_TARGET';
119
- clearRenderInterval();
120
- renderDependentTargets(false);
121
- if (totalDependentTasksNotFromInitiatingProject > 0) {
122
- output_1.output.addNewline();
123
- process.stdout.write(` ${output_1.output.dim('Hint: you can run the command with')} --verbose ${output_1.output.dim('to see the full dependent project outputs')}` + os_1.EOL);
124
- output_1.output.addVerticalSeparator('gray');
125
- }
126
- }
127
- }
128
- if (!renderDependentTargetsIntervalId &&
129
- state === 'EXECUTING_DEPENDENT_TARGETS') {
130
- renderDependentTargetsIntervalId = setInterval(renderDependentTargets, 100);
131
- }
132
- };
133
- lifeCycle.printTaskTerminalOutput = (task, cacheStatus, terminalOutput) => {
134
- if (task.target.project === initiatingProject) {
135
- output_1.output.logCommand(task.id, cacheStatus);
136
- output_1.output.addNewline();
137
- process.stdout.write(terminalOutput);
138
- }
139
- else {
140
- tasksToTerminalOutputs[task.id] = terminalOutput;
141
- }
142
- };
143
- lifeCycle.endTasks = (taskResults) => {
144
- for (let t of taskResults) {
145
- totalCompletedTasks++;
146
- switch (t.status) {
147
- case 'remote-cache':
148
- case 'local-cache':
149
- case 'local-cache-kept-existing':
150
- totalCachedTasks++;
151
- totalSuccessfulTasks++;
152
- break;
153
- case 'success':
154
- totalSuccessfulTasks++;
155
- break;
156
- case 'failure':
157
- totalFailedTasks++;
158
- /**
159
- * A dependent project has failed so we stop executing and update the relevant
160
- * dependent project task messaging
161
- */
162
- if (t.task.target.project !== initiatingProject) {
163
- clearRenderInterval();
164
- renderDependentTargets(false);
165
- output_1.output.addVerticalSeparator('red');
166
- output_1.output.logCommand(t.task.id, t.status);
167
- output_1.output.addNewline();
168
- process.stdout.write(tasksToTerminalOutputs[t.task.id]);
169
- }
170
- break;
171
- }
172
- delete tasksToTerminalOutputs[t.task.id];
173
- }
174
- };
175
- lifeCycle.endCommand = () => {
176
- clearRenderInterval();
177
- const timeTakenText = (0, pretty_time_1.prettyTime)(process.hrtime(start));
178
- if (totalSuccessfulTasks === totalTasks) {
179
- state = 'COMPLETED_SUCCESSFULLY';
180
- let text = `Successfully ran target ${output_1.output.bold(targetName)} for project ${output_1.output.bold(initiatingProject)}`;
181
- if (totalDependentTasks > 0) {
182
- text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) it depends on`;
183
- }
184
- const taskOverridesLines = [];
185
- if (Object.keys(overrides).length > 0) {
186
- const leftPadding = `${output_1.output.X_PADDING} `;
187
- taskOverridesLines.push('');
188
- taskOverridesLines.push(`${leftPadding}${output_1.output.dim.green('With additional flags:')}`);
189
- Object.entries(overrides)
190
- .map(([flag, value]) => output_1.output.dim.green(`${leftPadding} --${flag}=${value}`))
191
- .forEach((arg) => taskOverridesLines.push(arg));
192
- }
193
- const pinnedFooterLines = [
194
- output_1.output.applyNxPrefix('green', output_1.output.colors.green(text) + output_1.output.dim(` (${timeTakenText})`)),
195
- ...taskOverridesLines,
196
- ];
197
- if (totalCachedTasks > 0) {
198
- pinnedFooterLines.push(output_1.output.dim(`${os_1.EOL} Nx read the output from the cache instead of running the command for ${totalCachedTasks} out of ${totalTasks} tasks.`));
199
- }
200
- renderLines(pinnedFooterLines, 'green');
201
- }
202
- else {
203
- state = 'COMPLETED_WITH_ERRORS';
204
- let text = `Ran target ${output_1.output.bold(targetName)} for project ${output_1.output.bold(initiatingProject)}`;
205
- if (totalDependentTasks > 0) {
206
- text += ` and ${output_1.output.bold(totalDependentTasks)} task(s) it depends on`;
207
- }
208
- const taskOverridesLines = [];
209
- if (Object.keys(overrides).length > 0) {
210
- const leftPadding = `${output_1.output.X_PADDING} `;
211
- taskOverridesLines.push('');
212
- taskOverridesLines.push(`${leftPadding}${output_1.output.dim.red('With additional flags:')}`);
213
- Object.entries(overrides)
214
- .map(([flag, value]) => output_1.output.dim.red(`${leftPadding} --${flag}=${value}`))
215
- .forEach((arg) => taskOverridesLines.push(arg));
216
- }
217
- renderLines([
218
- output_1.output.applyNxPrefix('red', output_1.output.colors.red(text) + output_1.output.dim(` (${timeTakenText})`)),
219
- ...taskOverridesLines,
220
- '',
221
- ` ${output_1.output.colors.red(figures.cross)} ${totalFailedTasks}${`/${totalCompletedTasks}`} failed`,
222
- ` ${output_1.output.dim(figures.tick)} ${totalSuccessfulTasks}${`/${totalCompletedTasks}`} succeeded ${output_1.output.dim(`[${totalCachedTasks} read from cache]`)}`,
223
- ], 'red');
224
- }
225
- resolveRenderIsDonePromise();
226
- };
227
- return { lifeCycle, renderIsDone };
228
- });
229
- }
230
- exports.createRunOneDynamicOutputRenderer = createRunOneDynamicOutputRenderer;
231
- //# sourceMappingURL=dynamic-run-one-terminal-output-life-cycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-run-one-terminal-output-life-cycle.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.ts"],"names":[],"mappings":"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"}