nativescript 8.9.0-alpha.3 → 8.9.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -20
  3. package/lib/base-package-manager.js +47 -64
  4. package/lib/bun-package-manager.js +65 -88
  5. package/lib/color.js +2 -2
  6. package/lib/commands/add-platform.js +14 -30
  7. package/lib/commands/apple-login.js +18 -29
  8. package/lib/commands/appstore-list.js +34 -45
  9. package/lib/commands/appstore-upload.js +52 -65
  10. package/lib/commands/build.js +55 -87
  11. package/lib/commands/clean.js +161 -176
  12. package/lib/commands/command-base.js +14 -27
  13. package/lib/commands/config.js +48 -67
  14. package/lib/commands/create-project.js +210 -229
  15. package/lib/commands/debug.js +66 -88
  16. package/lib/commands/deploy.js +28 -44
  17. package/lib/commands/embedding/embed.js +33 -52
  18. package/lib/commands/extensibility/install-extension.js +5 -16
  19. package/lib/commands/extensibility/list-extensions.js +13 -24
  20. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  21. package/lib/commands/fonts.js +30 -41
  22. package/lib/commands/generate-assets.js +13 -28
  23. package/lib/commands/generate-help.js +2 -13
  24. package/lib/commands/generate.js +12 -60
  25. package/lib/commands/info.js +2 -13
  26. package/lib/commands/install.js +34 -49
  27. package/lib/commands/list-platforms.js +14 -25
  28. package/lib/commands/migrate.js +15 -26
  29. package/lib/commands/native-add.js +23 -46
  30. package/lib/commands/platform-clean.js +19 -32
  31. package/lib/commands/plugin/add-plugin.js +12 -25
  32. package/lib/commands/plugin/build-plugin.js +31 -44
  33. package/lib/commands/plugin/create-plugin.js +110 -133
  34. package/lib/commands/plugin/list-plugins.js +22 -33
  35. package/lib/commands/plugin/remove-plugin.js +20 -33
  36. package/lib/commands/plugin/update-plugin.js +20 -33
  37. package/lib/commands/post-install.js +20 -33
  38. package/lib/commands/prepare.js +19 -35
  39. package/lib/commands/preview.js +49 -62
  40. package/lib/commands/remove-platform.js +7 -18
  41. package/lib/commands/resources/resources-update.js +13 -26
  42. package/lib/commands/run.js +55 -76
  43. package/lib/commands/start.js +6 -19
  44. package/lib/commands/test-init.js +123 -134
  45. package/lib/commands/test.js +66 -89
  46. package/lib/commands/typings.js +126 -142
  47. package/lib/commands/update-platform.js +22 -35
  48. package/lib/commands/update.js +30 -43
  49. package/lib/common/child-process.js +53 -72
  50. package/lib/common/codeGeneration/code-entity.js +1 -1
  51. package/lib/common/codeGeneration/code-printer.js +1 -1
  52. package/lib/common/command-params.js +7 -18
  53. package/lib/common/commands/analytics.js +27 -40
  54. package/lib/common/commands/autocompletion.js +39 -56
  55. package/lib/common/commands/device/device-log-stream.js +12 -23
  56. package/lib/common/commands/device/get-file.js +22 -33
  57. package/lib/common/commands/device/list-applications.js +12 -23
  58. package/lib/common/commands/device/list-devices.js +72 -87
  59. package/lib/common/commands/device/list-files.js +23 -34
  60. package/lib/common/commands/device/put-file.js +22 -33
  61. package/lib/common/commands/device/run-application.js +12 -25
  62. package/lib/common/commands/device/stop-application.js +11 -22
  63. package/lib/common/commands/device/uninstall-application.js +6 -17
  64. package/lib/common/commands/generate-messages.js +17 -28
  65. package/lib/common/commands/help.js +20 -33
  66. package/lib/common/commands/package-manager-get.js +6 -17
  67. package/lib/common/commands/package-manager-set.js +9 -20
  68. package/lib/common/commands/post-install.js +2 -13
  69. package/lib/common/commands/preuninstall.js +23 -38
  70. package/lib/common/commands/proxy/proxy-base.js +8 -19
  71. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  72. package/lib/common/commands/proxy/proxy-get.js +3 -14
  73. package/lib/common/commands/proxy/proxy-set.js +87 -100
  74. package/lib/common/constants.js +11 -11
  75. package/lib/common/decorators.js +10 -22
  76. package/lib/common/dispatchers.js +79 -96
  77. package/lib/common/errors.js +89 -104
  78. package/lib/common/file-system.js +108 -130
  79. package/lib/common/header.js +1 -2
  80. package/lib/common/helpers.js +149 -178
  81. package/lib/common/host-info.js +37 -50
  82. package/lib/common/http-client.js +93 -108
  83. package/lib/common/logger/appenders/cli-appender.js +1 -2
  84. package/lib/common/logger/appenders/emit-appender.js +1 -2
  85. package/lib/common/logger/layouts/cli-layout.js +1 -2
  86. package/lib/common/logger/logger.js +4 -4
  87. package/lib/common/mobile/android/android-application-manager.js +121 -142
  88. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  89. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  90. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  91. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  92. package/lib/common/mobile/android/android-device.js +68 -85
  93. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  94. package/lib/common/mobile/android/android-ini-file-parser.js +8 -6
  95. package/lib/common/mobile/android/android-log-filter.js +1 -1
  96. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  97. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  98. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  99. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  100. package/lib/common/mobile/android/logcat-helper.js +108 -127
  101. package/lib/common/mobile/application-manager-base.js +84 -107
  102. package/lib/common/mobile/device-log-provider-base.js +7 -18
  103. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  104. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  105. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  106. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  107. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  108. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  109. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  110. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  111. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  112. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  113. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  114. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  115. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  116. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  117. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  118. package/lib/common/mobile/mobile-core/devices-service.js +386 -436
  119. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  120. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  121. package/lib/common/mobile/mobile-helper.js +15 -26
  122. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  123. package/lib/common/opener.js +2 -2
  124. package/lib/common/prompter.js +90 -105
  125. package/lib/common/queue.js +9 -20
  126. package/lib/common/services/auto-completion-service.js +39 -52
  127. package/lib/common/services/cancellation.js +17 -28
  128. package/lib/common/services/commands-service.js +146 -169
  129. package/lib/common/services/help-service.js +132 -157
  130. package/lib/common/services/hooks-service.js +93 -108
  131. package/lib/common/services/ios-notification-service.js +21 -34
  132. package/lib/common/services/json-file-settings-service.js +52 -71
  133. package/lib/common/services/lock-service.js +35 -52
  134. package/lib/common/services/message-contract-generator.js +35 -46
  135. package/lib/common/services/micro-templating-service.js +4 -15
  136. package/lib/common/services/net-service.js +90 -107
  137. package/lib/common/services/project-files-manager.js +10 -23
  138. package/lib/common/services/proxy-service.js +13 -24
  139. package/lib/common/services/qr.js +13 -24
  140. package/lib/common/services/settings-service.js +1 -1
  141. package/lib/common/services/xcode-select-service.js +20 -35
  142. package/lib/common/utils.js +2 -2
  143. package/lib/common/validators/project-name-validator.js +1 -1
  144. package/lib/common/validators/validation-result.js +1 -1
  145. package/lib/common/verify-node-version.js +2 -3
  146. package/lib/common/yok.js +23 -36
  147. package/lib/config.js +36 -51
  148. package/lib/constants.js +24 -24
  149. package/lib/controllers/build-controller.js +82 -99
  150. package/lib/controllers/debug-controller.js +107 -128
  151. package/lib/controllers/deploy-controller.js +15 -23
  152. package/lib/controllers/migrate-controller.js +722 -795
  153. package/lib/controllers/platform-controller.js +70 -85
  154. package/lib/controllers/prepare-controller.js +232 -261
  155. package/lib/controllers/run-controller.js +397 -411
  156. package/lib/controllers/update-controller-base.js +16 -29
  157. package/lib/controllers/update-controller.js +94 -119
  158. package/lib/data/prepare-data.js +4 -1
  159. package/lib/definitions/ios.d.ts +9 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +44 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +150 -200
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +163 -199
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +22 -35
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +205 -231
  194. package/lib/services/android-project-service.js +126 -171
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +195 -214
  198. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -58
  199. package/lib/services/assets-generation/assets-generation-service.js +103 -117
  200. package/lib/services/build-artifacts-service.js +9 -20
  201. package/lib/services/build-info-file-service.js +20 -35
  202. package/lib/services/cleanup-service.js +47 -76
  203. package/lib/services/cocoapods-service.js +111 -132
  204. package/lib/services/device/device-install-app-service.js +54 -71
  205. package/lib/services/doctor-service.js +99 -118
  206. package/lib/services/extensibility-service.js +81 -100
  207. package/lib/services/files-hash-service.js +26 -43
  208. package/lib/services/hmr-status-service.js +1 -1
  209. package/lib/services/initialize-service.js +37 -50
  210. package/lib/services/ios/export-options-plist-service.js +38 -51
  211. package/lib/services/ios/ios-signing-service.js +168 -187
  212. package/lib/services/ios/spm-service.js +43 -53
  213. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  214. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  215. package/lib/services/ios/xcodebuild-service.js +52 -71
  216. package/lib/services/ios-debugger-port-service.js +24 -37
  217. package/lib/services/ios-device-debug-service.js +75 -102
  218. package/lib/services/ios-entitlements-service.js +31 -42
  219. package/lib/services/ios-extensions-service.js +18 -29
  220. package/lib/services/ios-project-service.js +419 -460
  221. package/lib/services/ios-provision-service.js +108 -129
  222. package/lib/services/ios-watch-app-service.js +21 -32
  223. package/lib/services/ip-service.js +38 -53
  224. package/lib/services/itmstransporter-service.js +129 -152
  225. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  226. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  227. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  228. package/lib/services/livesync/android-livesync-service.js +14 -35
  229. package/lib/services/livesync/android-livesync-tool.js +90 -113
  230. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  231. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  232. package/lib/services/livesync/ios-livesync-service.js +42 -58
  233. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  234. package/lib/services/log-parser-service.js +1 -1
  235. package/lib/services/log-source-map-service.js +30 -41
  236. package/lib/services/marking-mode-service.js +15 -28
  237. package/lib/services/npm-config-service.js +1 -1
  238. package/lib/services/pacote-service.js +51 -66
  239. package/lib/services/performance-service.js +1 -1
  240. package/lib/services/platform/add-platform-service.js +50 -71
  241. package/lib/services/platform/platform-validation-service.js +22 -33
  242. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  243. package/lib/services/platform-environment-requirements.js +26 -37
  244. package/lib/services/plugins-service.js +122 -147
  245. package/lib/services/project-backup-service.js +1 -1
  246. package/lib/services/project-changes-service.js +124 -141
  247. package/lib/services/project-cleanup-service.js +64 -77
  248. package/lib/services/project-config-service.js +71 -80
  249. package/lib/services/project-data-service.js +101 -118
  250. package/lib/services/project-name-service.js +28 -43
  251. package/lib/services/project-service.js +84 -103
  252. package/lib/services/project-templates-service.js +52 -67
  253. package/lib/services/start-service.js +41 -59
  254. package/lib/services/temp-service.js +8 -21
  255. package/lib/services/terminal-spinner-service.js +15 -26
  256. package/lib/services/test-execution-service.js +59 -72
  257. package/lib/services/test-initialization-service.js +2 -2
  258. package/lib/services/timeline-profiler-service.js +1 -1
  259. package/lib/services/versions-service.js +119 -138
  260. package/lib/services/webpack/webpack-compiler-service.js +214 -234
  261. package/lib/services/xcconfig-service.js +8 -19
  262. package/lib/sys-info.js +45 -62
  263. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  264. package/lib/yarn-package-manager.js +59 -78
  265. package/lib/yarn2-package-manager.js +60 -79
  266. package/package.json +66 -81
  267. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  268. package/node_modules/@npmcli/move-file/README.md +0 -69
  269. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  270. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  281. package/node_modules/@npmcli/move-file/package.json +0 -47
  282. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  283. package/node_modules/balanced-match/LICENSE.md +0 -21
  284. package/node_modules/balanced-match/README.md +0 -97
  285. package/node_modules/balanced-match/index.js +0 -62
  286. package/node_modules/balanced-match/package.json +0 -48
  287. package/node_modules/concat-map/.travis.yml +0 -4
  288. package/node_modules/concat-map/LICENSE +0 -18
  289. package/node_modules/concat-map/README.markdown +0 -62
  290. package/node_modules/concat-map/example/map.js +0 -6
  291. package/node_modules/concat-map/index.js +0 -13
  292. package/node_modules/concat-map/package.json +0 -43
  293. package/node_modules/concat-map/test/map.js +0 -39
  294. package/node_modules/fs.realpath/LICENSE +0 -43
  295. package/node_modules/fs.realpath/README.md +0 -33
  296. package/node_modules/fs.realpath/index.js +0 -66
  297. package/node_modules/fs.realpath/old.js +0 -303
  298. package/node_modules/fs.realpath/package.json +0 -26
  299. package/node_modules/inflight/LICENSE +0 -15
  300. package/node_modules/inflight/README.md +0 -37
  301. package/node_modules/inflight/inflight.js +0 -54
  302. package/node_modules/inflight/package.json +0 -29
  303. package/node_modules/inherits/LICENSE +0 -16
  304. package/node_modules/inherits/README.md +0 -42
  305. package/node_modules/inherits/inherits.js +0 -9
  306. package/node_modules/inherits/inherits_browser.js +0 -27
  307. package/node_modules/inherits/package.json +0 -29
  308. package/node_modules/once/LICENSE +0 -15
  309. package/node_modules/once/README.md +0 -79
  310. package/node_modules/once/once.js +0 -42
  311. package/node_modules/once/package.json +0 -33
  312. package/node_modules/path-is-absolute/index.js +0 -20
  313. package/node_modules/path-is-absolute/license +0 -21
  314. package/node_modules/path-is-absolute/package.json +0 -43
  315. package/node_modules/path-is-absolute/readme.md +0 -59
  316. package/node_modules/rimraf/LICENSE +0 -15
  317. package/node_modules/rimraf/README.md +0 -101
  318. package/node_modules/rimraf/bin.js +0 -68
  319. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  320. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  321. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  322. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  323. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  324. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  325. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  326. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  327. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  328. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  329. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  330. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  331. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  332. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  333. package/node_modules/rimraf/package.json +0 -32
  334. package/node_modules/rimraf/rimraf.js +0 -360
  335. package/node_modules/stringify-package/LICENSE +0 -13
  336. package/node_modules/stringify-package/README.md +0 -55
  337. package/node_modules/stringify-package/index.js +0 -18
  338. package/node_modules/stringify-package/package.json +0 -38
  339. package/node_modules/wrappy/LICENSE +0 -15
  340. package/node_modules/wrappy/README.md +0 -36
  341. package/node_modules/wrappy/package.json +0 -29
  342. package/node_modules/wrappy/wrappy.js +0 -33
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.RunController = void 0;
19
10
  const constants_1 = require("../common/constants");
@@ -48,197 +39,187 @@ class RunController extends events_1.EventEmitter {
48
39
  this.$projectDataService = $projectDataService;
49
40
  this.prepareReadyEventHandler = null;
50
41
  }
51
- run(runData) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const { liveSyncInfo, deviceDescriptors } = runData;
54
- const { projectDir } = liveSyncInfo;
55
- const projectData = this.$projectDataService.getProjectData(projectDir);
56
- yield this.initializeSetup(projectData);
57
- const deviceDescriptorsForInitialSync = this.getDeviceDescriptorsForInitialSync(projectDir, deviceDescriptors);
58
- const newPlatforms = this.$devicesService.getPlatformsFromDeviceDescriptors(deviceDescriptors);
59
- const oldPlatforms = this.$liveSyncProcessDataService.getPlatforms(projectDir);
60
- const platforms = _.uniq(_.concat(newPlatforms, oldPlatforms));
61
- this.$liveSyncProcessDataService.persistData(projectDir, deviceDescriptors, platforms);
62
- const shouldStartWatcher = !liveSyncInfo.skipWatcher &&
63
- this.$liveSyncProcessDataService.hasDeviceDescriptors(projectDir);
64
- if (shouldStartWatcher && liveSyncInfo.useHotModuleReload) {
65
- this.$hmrStatusService.attachToHmrStatusEvent();
66
- }
67
- if (!this.prepareReadyEventHandler) {
68
- const handler = (data) => __awaiter(this, void 0, void 0, function* () {
69
- if (data.hasNativeChanges) {
70
- const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
71
- const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, data.platform, Object.assign(Object.assign({}, liveSyncInfo), { watch: !liveSyncInfo.skipWatcher }));
72
- const changesInfo = yield this.$projectChangesService.checkForChanges(platformData, projectData, prepareData);
73
- if (changesInfo.hasChanges) {
74
- yield this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
75
- }
76
- }
77
- else {
78
- yield this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
42
+ async run(runData) {
43
+ const { liveSyncInfo, deviceDescriptors } = runData;
44
+ const { projectDir } = liveSyncInfo;
45
+ const projectData = this.$projectDataService.getProjectData(projectDir);
46
+ await this.initializeSetup(projectData);
47
+ const deviceDescriptorsForInitialSync = this.getDeviceDescriptorsForInitialSync(projectDir, deviceDescriptors);
48
+ const newPlatforms = this.$devicesService.getPlatformsFromDeviceDescriptors(deviceDescriptors);
49
+ const oldPlatforms = this.$liveSyncProcessDataService.getPlatforms(projectDir);
50
+ const platforms = _.uniq(_.concat(newPlatforms, oldPlatforms));
51
+ this.$liveSyncProcessDataService.persistData(projectDir, deviceDescriptors, platforms);
52
+ const shouldStartWatcher = !liveSyncInfo.skipWatcher &&
53
+ this.$liveSyncProcessDataService.hasDeviceDescriptors(projectDir);
54
+ if (shouldStartWatcher && liveSyncInfo.useHotModuleReload) {
55
+ this.$hmrStatusService.attachToHmrStatusEvent();
56
+ }
57
+ if (!this.prepareReadyEventHandler) {
58
+ const handler = async (data) => {
59
+ if (data.hasNativeChanges) {
60
+ const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
61
+ const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, data.platform, { ...liveSyncInfo, watch: !liveSyncInfo.skipWatcher });
62
+ const changesInfo = await this.$projectChangesService.checkForChanges(platformData, projectData, prepareData);
63
+ if (changesInfo.hasChanges) {
64
+ await this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
79
65
  }
80
- });
81
- this.prepareReadyEventHandler = handler.bind(this);
82
- this.$prepareController.on(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
83
- }
84
- yield this.syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptorsForInitialSync);
85
- this.attachDeviceLostHandler();
86
- });
66
+ }
67
+ else {
68
+ await this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
69
+ }
70
+ };
71
+ this.prepareReadyEventHandler = handler.bind(this);
72
+ this.$prepareController.on(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
73
+ }
74
+ await this.syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptorsForInitialSync);
75
+ this.attachDeviceLostHandler();
87
76
  }
88
- stop(data) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const { projectDir, deviceIdentifiers, stopOptions } = data;
91
- const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
92
- if (liveSyncProcessInfo && !liveSyncProcessInfo.isStopped) {
93
- const shouldAwaitPendingOperation = !stopOptions || stopOptions.shouldAwaitAllActions;
94
- const deviceIdentifiersToRemove = deviceIdentifiers && deviceIdentifiers.length
95
- ? deviceIdentifiers
96
- : _.map(liveSyncProcessInfo.deviceDescriptors, (d) => d.identifier);
97
- const removedDeviceIdentifiers = _.remove(liveSyncProcessInfo.deviceDescriptors, (descriptor) => _.includes(deviceIdentifiersToRemove, descriptor.identifier)).map((descriptor) => descriptor.identifier);
98
- for (let i = 0; i < liveSyncProcessInfo.platforms.length; i++) {
99
- const platform = liveSyncProcessInfo.platforms[i];
100
- const devices = this.$devicesService.getDevicesForPlatform(platform);
101
- if (!devices || !devices.length) {
102
- yield this.$prepareController.stopWatchers(projectDir, platform);
103
- }
77
+ async stop(data) {
78
+ const { projectDir, deviceIdentifiers, stopOptions } = data;
79
+ const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
80
+ if (liveSyncProcessInfo && !liveSyncProcessInfo.isStopped) {
81
+ const shouldAwaitPendingOperation = !stopOptions || stopOptions.shouldAwaitAllActions;
82
+ const deviceIdentifiersToRemove = deviceIdentifiers && deviceIdentifiers.length
83
+ ? deviceIdentifiers
84
+ : _.map(liveSyncProcessInfo.deviceDescriptors, (d) => d.identifier);
85
+ const removedDeviceIdentifiers = _.remove(liveSyncProcessInfo.deviceDescriptors, (descriptor) => _.includes(deviceIdentifiersToRemove, descriptor.identifier)).map((descriptor) => descriptor.identifier);
86
+ for (let i = 0; i < liveSyncProcessInfo.platforms.length; i++) {
87
+ const platform = liveSyncProcessInfo.platforms[i];
88
+ const devices = this.$devicesService.getDevicesForPlatform(platform);
89
+ if (!devices || !devices.length) {
90
+ await this.$prepareController.stopWatchers(projectDir, platform);
104
91
  }
105
- if (!deviceIdentifiers ||
106
- !deviceIdentifiers.length ||
107
- !liveSyncProcessInfo.deviceDescriptors ||
108
- !liveSyncProcessInfo.deviceDescriptors.length) {
109
- if (liveSyncProcessInfo.timer) {
110
- clearTimeout(liveSyncProcessInfo.timer);
111
- }
112
- for (let k = 0; k < liveSyncProcessInfo.platforms.length; k++) {
113
- yield this.$prepareController.stopWatchers(projectDir, liveSyncProcessInfo.platforms[k]);
114
- }
115
- liveSyncProcessInfo.isStopped = true;
116
- if (liveSyncProcessInfo.actionsChain && shouldAwaitPendingOperation) {
117
- yield liveSyncProcessInfo.actionsChain;
118
- }
119
- liveSyncProcessInfo.deviceDescriptors = [];
120
- if (this.prepareReadyEventHandler) {
121
- this.$prepareController.removeListener(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
122
- this.prepareReadyEventHandler = null;
123
- }
124
- const projectData = this.$projectDataService.getProjectData(projectDir);
125
- yield this.$hooksService.executeAfterHooks("watch", {
126
- hookArgs: {
127
- projectData,
128
- },
129
- });
92
+ }
93
+ if (!deviceIdentifiers ||
94
+ !deviceIdentifiers.length ||
95
+ !liveSyncProcessInfo.deviceDescriptors ||
96
+ !liveSyncProcessInfo.deviceDescriptors.length) {
97
+ if (liveSyncProcessInfo.timer) {
98
+ clearTimeout(liveSyncProcessInfo.timer);
130
99
  }
131
- else if (liveSyncProcessInfo.currentSyncAction &&
132
- shouldAwaitPendingOperation) {
133
- yield liveSyncProcessInfo.currentSyncAction;
100
+ for (let k = 0; k < liveSyncProcessInfo.platforms.length; k++) {
101
+ await this.$prepareController.stopWatchers(projectDir, liveSyncProcessInfo.platforms[k]);
134
102
  }
135
- _.each(removedDeviceIdentifiers, (deviceIdentifier) => {
136
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStopped, {
137
- projectDir,
138
- deviceIdentifier,
139
- keepProcessAlive: stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive,
140
- });
141
- });
142
- if (stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive) {
143
- this.removeAllListeners(constants_2.RunOnDeviceEvents.runOnDeviceStopped);
103
+ liveSyncProcessInfo.isStopped = true;
104
+ if (liveSyncProcessInfo.actionsChain && shouldAwaitPendingOperation) {
105
+ await liveSyncProcessInfo.actionsChain;
144
106
  }
107
+ liveSyncProcessInfo.deviceDescriptors = [];
108
+ if (this.prepareReadyEventHandler) {
109
+ this.$prepareController.removeListener(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
110
+ this.prepareReadyEventHandler = null;
111
+ }
112
+ const projectData = this.$projectDataService.getProjectData(projectDir);
113
+ await this.$hooksService.executeAfterHooks("watch", {
114
+ hookArgs: {
115
+ projectData,
116
+ },
117
+ });
145
118
  }
146
- });
119
+ else if (liveSyncProcessInfo.currentSyncAction &&
120
+ shouldAwaitPendingOperation) {
121
+ await liveSyncProcessInfo.currentSyncAction;
122
+ }
123
+ _.each(removedDeviceIdentifiers, (deviceIdentifier) => {
124
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStopped, {
125
+ projectDir,
126
+ deviceIdentifier,
127
+ keepProcessAlive: stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive,
128
+ });
129
+ });
130
+ if (stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive) {
131
+ this.removeAllListeners(constants_2.RunOnDeviceEvents.runOnDeviceStopped);
132
+ }
133
+ }
147
134
  }
148
135
  getDeviceDescriptors(data) {
149
136
  return this.$liveSyncProcessDataService.getDeviceDescriptors(data.projectDir);
150
137
  }
151
- refreshApplication(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, fullSyncAction) {
152
- return __awaiter(this, void 0, void 0, function* () {
153
- const result = deviceDescriptor.debuggingEnabled
154
- ? yield this.refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor)
155
- : yield this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, undefined, fullSyncAction);
156
- const device = liveSyncResultInfo.deviceAppData.device;
157
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceExecuted, {
158
- projectDir: projectData.projectDir,
159
- deviceIdentifier: device.deviceInfo.identifier,
160
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
161
- syncedFiles: liveSyncResultInfo.modifiedFilesData.map((m) => m.getLocalPath()),
162
- isFullSync: liveSyncResultInfo.isFullSync,
163
- });
164
- return result;
138
+ async refreshApplication(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, fullSyncAction) {
139
+ const result = deviceDescriptor.debuggingEnabled
140
+ ? await this.refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor)
141
+ : await this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, undefined, fullSyncAction);
142
+ const device = liveSyncResultInfo.deviceAppData.device;
143
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceExecuted, {
144
+ projectDir: projectData.projectDir,
145
+ deviceIdentifier: device.deviceInfo.identifier,
146
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
147
+ syncedFiles: liveSyncResultInfo.modifiedFilesData.map((m) => m.getLocalPath()),
148
+ isFullSync: liveSyncResultInfo.isFullSync,
165
149
  });
150
+ return result;
166
151
  }
167
- refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- const debugOptions = deviceDescriptor.debugOptions || {};
170
- liveSyncResultInfo.waitForDebugger = !!debugOptions.debugBrk;
171
- liveSyncResultInfo.forceRefreshWithSocket = true;
172
- const refreshInfo = yield this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, {
173
- shouldSkipEmitLiveSyncNotification: true,
174
- shouldCheckDeveloperDiscImage: true,
175
- });
176
- debugOptions.start = !debugOptions.debugBrk;
177
- debugOptions.forceDebuggerAttachedEvent = refreshInfo.didRestart;
178
- yield this.$debugController.enableDebuggingCoreWithoutWaitingCurrentAction(projectData.projectDir, deviceDescriptor.identifier, debugOptions);
179
- return refreshInfo;
152
+ async refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor) {
153
+ const debugOptions = deviceDescriptor.debugOptions || {};
154
+ liveSyncResultInfo.waitForDebugger = !!debugOptions.debugBrk;
155
+ liveSyncResultInfo.forceRefreshWithSocket = true;
156
+ const refreshInfo = await this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, {
157
+ shouldSkipEmitLiveSyncNotification: true,
158
+ shouldCheckDeveloperDiscImage: true,
180
159
  });
160
+ debugOptions.start = !debugOptions.debugBrk;
161
+ debugOptions.forceDebuggerAttachedEvent = refreshInfo.didRestart;
162
+ await this.$debugController.enableDebuggingCoreWithoutWaitingCurrentAction(projectData.projectDir, deviceDescriptor.identifier, debugOptions);
163
+ return refreshInfo;
181
164
  }
182
- refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, settings, fullSyncAction) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- const result = { didRestart: false };
185
- const platform = liveSyncResultInfo.deviceAppData.platform;
186
- const applicationIdentifier = projectData.projectIdentifiers[platform.toLowerCase()];
187
- const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platform);
188
- try {
189
- const isFullSync = filesChangeEventData &&
190
- (filesChangeEventData.hasNativeChanges ||
191
- !filesChangeEventData.hasOnlyHotUpdateFiles);
192
- let shouldRestart = isFullSync;
193
- if (!shouldRestart) {
194
- shouldRestart = yield platformLiveSyncService.shouldRestart(projectData, liveSyncResultInfo);
195
- }
196
- if (!shouldRestart) {
197
- shouldRestart = !(yield platformLiveSyncService.tryRefreshApplication(projectData, liveSyncResultInfo));
198
- }
199
- if (!isFullSync && shouldRestart && fullSyncAction) {
200
- this.$logger.trace(`Syncing all files as the current app state does not support hot updates.`);
201
- liveSyncResultInfo.didRecover = true;
202
- yield fullSyncAction();
203
- }
204
- if (shouldRestart) {
205
- this.emit(constants_2.DEBUGGER_DETACHED_EVENT_NAME, {
206
- deviceIdentifier: liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier,
207
- });
208
- yield platformLiveSyncService.restartApplication(projectData, liveSyncResultInfo);
209
- result.didRestart = true;
210
- }
165
+ async refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, settings, fullSyncAction) {
166
+ const result = { didRestart: false };
167
+ const platform = liveSyncResultInfo.deviceAppData.platform;
168
+ const applicationIdentifier = projectData.projectIdentifiers[platform.toLowerCase()];
169
+ const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platform);
170
+ try {
171
+ const isFullSync = filesChangeEventData &&
172
+ (filesChangeEventData.hasNativeChanges ||
173
+ !filesChangeEventData.hasOnlyHotUpdateFiles);
174
+ let shouldRestart = isFullSync;
175
+ if (!shouldRestart) {
176
+ shouldRestart = await platformLiveSyncService.shouldRestart(projectData, liveSyncResultInfo);
211
177
  }
212
- catch (err) {
213
- this.$logger.info(`Error while trying to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Error is: ${err.message || err}`);
214
- const msg = `Unable to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Try starting it manually.`;
215
- this.$logger.warn(msg);
216
- const device = liveSyncResultInfo.deviceAppData.device;
217
- const deviceIdentifier = device.deviceInfo.identifier;
218
- if (!settings || !settings.shouldSkipEmitLiveSyncNotification) {
219
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceNotification, {
220
- projectDir: projectData.projectDir,
221
- deviceIdentifier: device.deviceInfo.identifier,
222
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
223
- notification: msg,
224
- });
225
- }
226
- if (settings &&
227
- settings.shouldCheckDeveloperDiscImage &&
228
- (err.message || err) === "Could not find developer disk image") {
229
- const attachDebuggerOptions = {
230
- platform: device.deviceInfo.platform,
231
- isEmulator: device.isEmulator,
232
- projectDir: projectData.projectDir,
233
- deviceIdentifier,
234
- debugOptions: deviceDescriptor.debugOptions,
235
- outputPath: deviceDescriptor.buildData.outputPath,
236
- };
237
- this.emit(constants_2.USER_INTERACTION_NEEDED_EVENT_NAME, attachDebuggerOptions);
238
- }
178
+ if (!shouldRestart) {
179
+ shouldRestart = !(await platformLiveSyncService.tryRefreshApplication(projectData, liveSyncResultInfo));
239
180
  }
240
- return result;
241
- });
181
+ if (!isFullSync && shouldRestart && fullSyncAction) {
182
+ this.$logger.trace(`Syncing all files as the current app state does not support hot updates.`);
183
+ liveSyncResultInfo.didRecover = true;
184
+ await fullSyncAction();
185
+ }
186
+ if (shouldRestart) {
187
+ this.emit(constants_2.DEBUGGER_DETACHED_EVENT_NAME, {
188
+ deviceIdentifier: liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier,
189
+ });
190
+ await platformLiveSyncService.restartApplication(projectData, liveSyncResultInfo);
191
+ result.didRestart = true;
192
+ }
193
+ }
194
+ catch (err) {
195
+ this.$logger.info(`Error while trying to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Error is: ${err.message || err}`);
196
+ const msg = `Unable to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Try starting it manually.`;
197
+ this.$logger.warn(msg);
198
+ const device = liveSyncResultInfo.deviceAppData.device;
199
+ const deviceIdentifier = device.deviceInfo.identifier;
200
+ if (!settings || !settings.shouldSkipEmitLiveSyncNotification) {
201
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceNotification, {
202
+ projectDir: projectData.projectDir,
203
+ deviceIdentifier: device.deviceInfo.identifier,
204
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
205
+ notification: msg,
206
+ });
207
+ }
208
+ if (settings &&
209
+ settings.shouldCheckDeveloperDiscImage &&
210
+ (err.message || err) === "Could not find developer disk image") {
211
+ const attachDebuggerOptions = {
212
+ platform: device.deviceInfo.platform,
213
+ isEmulator: device.isEmulator,
214
+ projectDir: projectData.projectDir,
215
+ deviceIdentifier,
216
+ debugOptions: deviceDescriptor.debugOptions,
217
+ outputPath: deviceDescriptor.buildData.outputPath,
218
+ };
219
+ this.emit(constants_2.USER_INTERACTION_NEEDED_EVENT_NAME, attachDebuggerOptions);
220
+ }
221
+ }
222
+ return result;
242
223
  }
243
224
  getDeviceDescriptorsForInitialSync(projectDir, deviceDescriptors) {
244
225
  const currentRunData = this.$liveSyncProcessDataService.getPersistedData(projectDir);
@@ -248,25 +229,23 @@ class RunController extends events_1.EventEmitter {
248
229
  : deviceDescriptors;
249
230
  return deviceDescriptorsForInitialSync;
250
231
  }
251
- initializeSetup(projectData) {
252
- return __awaiter(this, void 0, void 0, function* () {
253
- try {
254
- yield this.$pluginsService.ensureAllDependenciesAreInstalled(projectData);
255
- }
256
- catch (err) {
257
- this.$logger.trace(err);
258
- this.$errors.fail(`Unable to install dependencies. Make sure your package.json is valid and all dependencies are correct. Error is: ${err.message}`);
259
- }
260
- });
232
+ async initializeSetup(projectData) {
233
+ try {
234
+ await this.$pluginsService.ensureAllDependenciesAreInstalled(projectData);
235
+ }
236
+ catch (err) {
237
+ this.$logger.trace(err);
238
+ this.$errors.fail(`Unable to install dependencies. Make sure your package.json is valid and all dependencies are correct. Error is: ${err.message}`);
239
+ }
261
240
  }
262
241
  attachDeviceLostHandler() {
263
- this.$devicesService.on(constants_1.DeviceDiscoveryEventNames.DEVICE_LOST, (device) => __awaiter(this, void 0, void 0, function* () {
242
+ this.$devicesService.on(constants_1.DeviceDiscoveryEventNames.DEVICE_LOST, async (device) => {
264
243
  this.$logger.trace(`Received ${constants_1.DeviceDiscoveryEventNames.DEVICE_LOST} event in LiveSync service for ${device.deviceInfo.identifier}. Will stop LiveSync operation for this device.`);
265
244
  for (const projectDir in this.$liveSyncProcessDataService.getAllPersistedData()) {
266
245
  try {
267
246
  const deviceDescriptors = this.getDeviceDescriptors({ projectDir });
268
247
  if (_.find(deviceDescriptors, (d) => d.identifier === device.deviceInfo.identifier)) {
269
- yield this.stop({
248
+ await this.stop({
270
249
  projectDir,
271
250
  deviceIdentifiers: [device.deviceInfo.identifier],
272
251
  });
@@ -276,251 +255,258 @@ class RunController extends events_1.EventEmitter {
276
255
  this.$logger.warn(`Unable to stop LiveSync operation for ${device.deviceInfo.identifier}.`, err);
277
256
  }
278
257
  }
279
- }));
258
+ });
280
259
  }
281
- syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptors) {
282
- return __awaiter(this, void 0, void 0, function* () {
283
- const rebuiltInformation = {};
284
- const deviceAction = (device) => __awaiter(this, void 0, void 0, function* () {
285
- const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
286
- const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, Object.assign(Object.assign(Object.assign({}, liveSyncInfo), deviceDescriptor.buildData), { nativePrepare: {
287
- skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
288
- }, watch: !liveSyncInfo.skipWatcher }));
289
- const prepareResultData = yield this.$prepareController.prepare(prepareData);
290
- const buildData = Object.assign(Object.assign({}, deviceDescriptor.buildData), { buildForDevice: !device.isEmulator });
291
- const platformData = this.$platformsDataService.getPlatformData(device.deviceInfo.platform, projectData);
292
- try {
293
- let packageFilePath = null;
294
- if (rebuiltInformation[platformData.platformNameLowerCase] &&
295
- (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
296
- rebuiltInformation[platformData.platformNameLowerCase]
297
- .isEmulator === device.isEmulator)) {
298
- packageFilePath =
299
- rebuiltInformation[platformData.platformNameLowerCase]
300
- .packageFilePath;
301
- yield this.$deviceInstallAppService.installOnDevice(device, buildData, packageFilePath);
260
+ async syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptors) {
261
+ const rebuiltInformation = {};
262
+ const deviceAction = async (device) => {
263
+ const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
264
+ const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, {
265
+ ...liveSyncInfo,
266
+ ...deviceDescriptor.buildData,
267
+ nativePrepare: {
268
+ skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
269
+ },
270
+ watch: !liveSyncInfo.skipWatcher,
271
+ });
272
+ const prepareResultData = await this.$prepareController.prepare(prepareData);
273
+ const buildData = {
274
+ ...deviceDescriptor.buildData,
275
+ buildForDevice: !device.isEmulator,
276
+ };
277
+ const platformData = this.$platformsDataService.getPlatformData(device.deviceInfo.platform, projectData);
278
+ try {
279
+ let packageFilePath = null;
280
+ if (rebuiltInformation[platformData.platformNameLowerCase] &&
281
+ (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
282
+ rebuiltInformation[platformData.platformNameLowerCase]
283
+ .isEmulator === device.isEmulator)) {
284
+ packageFilePath =
285
+ rebuiltInformation[platformData.platformNameLowerCase]
286
+ .packageFilePath;
287
+ await this.$deviceInstallAppService.installOnDevice(device, buildData, packageFilePath);
288
+ }
289
+ else {
290
+ const shouldBuild = prepareResultData.hasNativeChanges ||
291
+ buildData.nativePrepare.forceRebuildNativeApp ||
292
+ (await this.$buildController.shouldBuild(buildData));
293
+ if (shouldBuild) {
294
+ packageFilePath = await deviceDescriptor.buildAction();
295
+ rebuiltInformation[platformData.platformNameLowerCase] = {
296
+ isEmulator: device.isEmulator,
297
+ platform: platformData.platformNameLowerCase,
298
+ packageFilePath,
299
+ };
302
300
  }
303
301
  else {
304
- const shouldBuild = prepareResultData.hasNativeChanges ||
305
- buildData.nativePrepare.forceRebuildNativeApp ||
306
- (yield this.$buildController.shouldBuild(buildData));
307
- if (shouldBuild) {
308
- packageFilePath = yield deviceDescriptor.buildAction();
309
- rebuiltInformation[platformData.platformNameLowerCase] = {
310
- isEmulator: device.isEmulator,
311
- platform: platformData.platformNameLowerCase,
312
- packageFilePath,
313
- };
314
- }
315
- else {
316
- yield this.$analyticsService.trackEventActionInGoogleAnalytics({
317
- action: "LiveSync",
318
- device,
319
- projectDir: projectData.projectDir,
320
- });
321
- }
322
- yield this.$deviceInstallAppService.installOnDeviceIfNeeded(device, buildData, packageFilePath);
302
+ await this.$analyticsService.trackEventActionInGoogleAnalytics({
303
+ action: "LiveSync",
304
+ device,
305
+ projectDir: projectData.projectDir,
306
+ });
323
307
  }
324
- const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platformData.platformNameLowerCase);
325
- const { force, useHotModuleReload, skipWatcher } = liveSyncInfo;
326
- const liveSyncResultInfo = yield platformLiveSyncService.fullSync({
327
- force,
328
- useHotModuleReload,
329
- projectData,
330
- device,
331
- watch: !skipWatcher,
332
- liveSyncDeviceData: deviceDescriptor,
333
- });
334
- yield this.refreshApplication(projectData, liveSyncResultInfo, null, deviceDescriptor);
335
- this.$logger.info(`Successfully synced application ${liveSyncResultInfo.deviceAppData.appIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}.`);
336
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStarted, {
337
- projectDir: projectData.projectDir,
338
- deviceIdentifier: device.deviceInfo.identifier,
339
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
340
- });
308
+ await this.$deviceInstallAppService.installOnDeviceIfNeeded(device, buildData, packageFilePath);
341
309
  }
342
- catch (err) {
343
- this.$logger.warn(`Unable to apply changes on device: ${device.deviceInfo.identifier}. Error is: ${err.message}.`);
344
- this.$logger.trace(err);
345
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
346
- projectDir: projectData.projectDir,
347
- deviceIdentifier: device.deviceInfo.identifier,
348
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
349
- error: err,
350
- });
351
- yield this.stop({
352
- projectDir: projectData.projectDir,
353
- deviceIdentifiers: [device.deviceInfo.identifier],
354
- stopOptions: { shouldAwaitAllActions: false },
355
- });
356
- }
357
- });
358
- yield this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => _.some(deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier)));
359
- });
310
+ const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platformData.platformNameLowerCase);
311
+ const { force, useHotModuleReload, skipWatcher } = liveSyncInfo;
312
+ const liveSyncResultInfo = await platformLiveSyncService.fullSync({
313
+ force,
314
+ useHotModuleReload,
315
+ projectData,
316
+ device,
317
+ watch: !skipWatcher,
318
+ liveSyncDeviceData: deviceDescriptor,
319
+ });
320
+ await this.refreshApplication(projectData, liveSyncResultInfo, null, deviceDescriptor);
321
+ this.$logger.info(`Successfully synced application ${liveSyncResultInfo.deviceAppData.appIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}.`);
322
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStarted, {
323
+ projectDir: projectData.projectDir,
324
+ deviceIdentifier: device.deviceInfo.identifier,
325
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
326
+ });
327
+ }
328
+ catch (err) {
329
+ this.$logger.warn(`Unable to apply changes on device: ${device.deviceInfo.identifier}. Error is: ${err.message}.`);
330
+ this.$logger.trace(err);
331
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
332
+ projectDir: projectData.projectDir,
333
+ deviceIdentifier: device.deviceInfo.identifier,
334
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
335
+ error: err,
336
+ });
337
+ await this.stop({
338
+ projectDir: projectData.projectDir,
339
+ deviceIdentifiers: [device.deviceInfo.identifier],
340
+ stopOptions: { shouldAwaitAllActions: false },
341
+ });
342
+ }
343
+ };
344
+ await this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => _.some(deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier)));
360
345
  }
361
- syncChangedDataOnDevices(data, projectData, liveSyncInfo) {
362
- return __awaiter(this, void 0, void 0, function* () {
363
- const successfullySyncedMessageFormat = `Successfully synced application %s on device %s.`;
364
- const rebuiltInformation = {};
365
- const deviceAction = (device) => __awaiter(this, void 0, void 0, function* () {
366
- var _a, _b;
367
- const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors(projectData.projectDir);
368
- const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
369
- const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
370
- const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, Object.assign(Object.assign(Object.assign({}, liveSyncInfo), deviceDescriptor.buildData), { nativePrepare: {
371
- skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
372
- }, watch: !liveSyncInfo.skipWatcher }));
373
- try {
374
- const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(device.deviceInfo.platform);
375
- const allAppFiles = ((_b = (_a = data.hmrData) === null || _a === void 0 ? void 0 : _a.fallbackFiles) === null || _b === void 0 ? void 0 : _b.length)
376
- ? data.hmrData.fallbackFiles
377
- : data.files;
378
- const filesToSync = data.hasOnlyHotUpdateFiles
379
- ? data.files
380
- : allAppFiles;
381
- const watchInfo = {
382
- liveSyncDeviceData: deviceDescriptor,
383
- projectData,
384
- filesToRemove: [],
385
- filesToSync,
386
- hmrData: data.hmrData,
346
+ async syncChangedDataOnDevices(data, projectData, liveSyncInfo) {
347
+ const successfullySyncedMessageFormat = `Successfully synced application %s on device %s.`;
348
+ const rebuiltInformation = {};
349
+ const deviceAction = async (device) => {
350
+ var _a, _b;
351
+ const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors(projectData.projectDir);
352
+ const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
353
+ const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
354
+ const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, {
355
+ ...liveSyncInfo,
356
+ ...deviceDescriptor.buildData,
357
+ nativePrepare: {
358
+ skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
359
+ },
360
+ watch: !liveSyncInfo.skipWatcher,
361
+ });
362
+ try {
363
+ const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(device.deviceInfo.platform);
364
+ const allAppFiles = ((_b = (_a = data.hmrData) === null || _a === void 0 ? void 0 : _a.fallbackFiles) === null || _b === void 0 ? void 0 : _b.length)
365
+ ? data.hmrData.fallbackFiles
366
+ : data.files;
367
+ const filesToSync = data.hasOnlyHotUpdateFiles
368
+ ? data.files
369
+ : allAppFiles;
370
+ const watchInfo = {
371
+ liveSyncDeviceData: deviceDescriptor,
372
+ projectData,
373
+ filesToRemove: [],
374
+ filesToSync,
375
+ hmrData: data.hmrData,
376
+ useHotModuleReload: liveSyncInfo.useHotModuleReload,
377
+ force: liveSyncInfo.force,
378
+ connectTimeout: 1000,
379
+ };
380
+ const deviceAppData = await platformLiveSyncService.getAppData(_.merge({ device, watch: true }, watchInfo));
381
+ if (data.hasNativeChanges) {
382
+ const rebuiltInfo = rebuiltInformation[platformData.platformNameLowerCase] &&
383
+ (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
384
+ rebuiltInformation[platformData.platformNameLowerCase]
385
+ .isEmulator === device.isEmulator);
386
+ if (!rebuiltInfo) {
387
+ await this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData);
388
+ await deviceDescriptor.buildAction();
389
+ rebuiltInformation[platformData.platformNameLowerCase] = {
390
+ isEmulator: device.isEmulator,
391
+ platform: platformData.platformNameLowerCase,
392
+ packageFilePath: null,
393
+ };
394
+ }
395
+ await this.$deviceInstallAppService.installOnDevice(device, deviceDescriptor.buildData, rebuiltInformation[platformData.platformNameLowerCase]
396
+ .packageFilePath);
397
+ await platformLiveSyncService.syncAfterInstall(device, watchInfo);
398
+ await this.refreshApplication(projectData, {
399
+ deviceAppData,
400
+ modifiedFilesData: [],
401
+ isFullSync: false,
387
402
  useHotModuleReload: liveSyncInfo.useHotModuleReload,
388
- force: liveSyncInfo.force,
389
- connectTimeout: 1000,
390
- };
391
- const deviceAppData = yield platformLiveSyncService.getAppData(_.merge({ device, watch: true }, watchInfo));
392
- if (data.hasNativeChanges) {
393
- const rebuiltInfo = rebuiltInformation[platformData.platformNameLowerCase] &&
394
- (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
395
- rebuiltInformation[platformData.platformNameLowerCase]
396
- .isEmulator === device.isEmulator);
397
- if (!rebuiltInfo) {
398
- yield this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData);
399
- yield deviceDescriptor.buildAction();
400
- rebuiltInformation[platformData.platformNameLowerCase] = {
401
- isEmulator: device.isEmulator,
402
- platform: platformData.platformNameLowerCase,
403
- packageFilePath: null,
404
- };
405
- }
406
- yield this.$deviceInstallAppService.installOnDevice(device, deviceDescriptor.buildData, rebuiltInformation[platformData.platformNameLowerCase]
407
- .packageFilePath);
408
- yield platformLiveSyncService.syncAfterInstall(device, watchInfo);
409
- yield this.refreshApplication(projectData, {
410
- deviceAppData,
411
- modifiedFilesData: [],
412
- isFullSync: false,
413
- useHotModuleReload: liveSyncInfo.useHotModuleReload,
414
- }, data, deviceDescriptor);
415
- this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
403
+ }, data, deviceDescriptor);
404
+ this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
405
+ }
406
+ else {
407
+ const isInHMRMode = liveSyncInfo.useHotModuleReload &&
408
+ data.hmrData &&
409
+ data.hmrData.hash;
410
+ if (isInHMRMode) {
411
+ this.$hmrStatusService.watchHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
416
412
  }
417
- else {
418
- const isInHMRMode = liveSyncInfo.useHotModuleReload &&
419
- data.hmrData &&
420
- data.hmrData.hash;
421
- if (isInHMRMode) {
422
- this.$hmrStatusService.watchHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
423
- }
424
- const watchAction = () => __awaiter(this, void 0, void 0, function* () {
425
- const liveSyncResultInfo = yield platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
426
- const fullSyncAction = () => __awaiter(this, void 0, void 0, function* () {
427
- watchInfo.filesToSync = allAppFiles;
428
- const fullLiveSyncResultInfo = yield platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
429
- _.assign(liveSyncResultInfo, fullLiveSyncResultInfo);
430
- });
431
- yield this.$hooksService.executeBeforeHooks("watchAction", {
432
- hookArgs: {
433
- liveSyncResultInfo,
434
- filesToSync,
435
- allAppFiles,
436
- isInHMRMode,
437
- filesChangedEvent: data,
438
- },
439
- });
440
- yield this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor, fullSyncAction);
441
- if (!liveSyncResultInfo.didRecover && isInHMRMode) {
442
- const status = yield this.$hmrStatusService.getHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
443
- if (status === constants_1.HmrConstants.HMR_ERROR_STATUS) {
444
- yield fullSyncAction();
445
- liveSyncResultInfo.isFullSync = true;
446
- yield this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor);
447
- }
448
- }
449
- yield this.$hooksService.executeAfterHooks("watchAction", {
413
+ const watchAction = async () => {
414
+ const liveSyncResultInfo = await platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
415
+ const fullSyncAction = async () => {
416
+ watchInfo.filesToSync = allAppFiles;
417
+ const fullLiveSyncResultInfo = await platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
418
+ _.assign(liveSyncResultInfo, fullLiveSyncResultInfo);
419
+ };
420
+ await this.$hooksService.executeBeforeHooks("watchAction", {
421
+ hookArgs: {
450
422
  liveSyncResultInfo,
451
423
  filesToSync,
452
424
  allAppFiles,
453
- filesChangedEvent: data,
454
425
  isInHMRMode,
455
- });
456
- this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
426
+ filesChangedEvent: data,
427
+ },
457
428
  });
458
- if (liveSyncInfo.useHotModuleReload) {
459
- try {
460
- this.$logger.trace("Try executing watch action without any preparation of files.");
461
- yield watchAction();
462
- this.$logger.trace("Successfully executed watch action without any preparation of files.");
463
- return;
464
- }
465
- catch (err) {
466
- this.$logger.trace(`Error while trying to execute fast sync. Now we'll check the state of the app and we'll try to resurrect from the error. The error is: ${err}`);
429
+ await this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor, fullSyncAction);
430
+ if (!liveSyncResultInfo.didRecover && isInHMRMode) {
431
+ const status = await this.$hmrStatusService.getHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
432
+ if (status === constants_1.HmrConstants.HMR_ERROR_STATUS) {
433
+ await fullSyncAction();
434
+ liveSyncResultInfo.isFullSync = true;
435
+ await this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor);
467
436
  }
468
437
  }
469
- yield this.$deviceInstallAppService.installOnDeviceIfNeeded(device, deviceDescriptor.buildData);
470
- watchInfo.connectTimeout = null;
471
- yield watchAction();
438
+ await this.$hooksService.executeAfterHooks("watchAction", {
439
+ liveSyncResultInfo,
440
+ filesToSync,
441
+ allAppFiles,
442
+ filesChangedEvent: data,
443
+ isInHMRMode,
444
+ });
445
+ this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
446
+ };
447
+ if (liveSyncInfo.useHotModuleReload) {
448
+ try {
449
+ this.$logger.trace("Try executing watch action without any preparation of files.");
450
+ await watchAction();
451
+ this.$logger.trace("Successfully executed watch action without any preparation of files.");
452
+ return;
453
+ }
454
+ catch (err) {
455
+ this.$logger.trace(`Error while trying to execute fast sync. Now we'll check the state of the app and we'll try to resurrect from the error. The error is: ${err}`);
456
+ }
472
457
  }
458
+ await this.$deviceInstallAppService.installOnDeviceIfNeeded(device, deviceDescriptor.buildData);
459
+ watchInfo.connectTimeout = null;
460
+ await watchAction();
473
461
  }
474
- catch (err) {
475
- this.$logger.warn(`Unable to apply changes for device: ${device.deviceInfo.identifier}. Error is: ${err && err.message}.`);
476
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
477
- projectDir: projectData.projectDir,
478
- deviceIdentifier: device.deviceInfo.identifier,
479
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
480
- error: err,
481
- });
482
- yield this.stop({
483
- projectDir: projectData.projectDir,
484
- deviceIdentifiers: [device.deviceInfo.identifier],
485
- stopOptions: { shouldAwaitAllActions: false },
486
- });
462
+ }
463
+ catch (err) {
464
+ this.$logger.warn(`Unable to apply changes for device: ${device.deviceInfo.identifier}. Error is: ${err && err.message}.`);
465
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
466
+ projectDir: projectData.projectDir,
467
+ deviceIdentifier: device.deviceInfo.identifier,
468
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
469
+ error: err,
470
+ });
471
+ await this.stop({
472
+ projectDir: projectData.projectDir,
473
+ deviceIdentifiers: [device.deviceInfo.identifier],
474
+ stopOptions: { shouldAwaitAllActions: false },
475
+ });
476
+ }
477
+ };
478
+ await this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => {
479
+ const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectData.projectDir);
480
+ return (data.platform.toLowerCase() ===
481
+ device.deviceInfo.platform.toLowerCase() &&
482
+ liveSyncProcessInfo &&
483
+ _.some(liveSyncProcessInfo.deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier));
484
+ }));
485
+ }
486
+ async addActionToChain(projectDir, action) {
487
+ const liveSyncInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
488
+ if (liveSyncInfo) {
489
+ liveSyncInfo.actionsChain = liveSyncInfo.actionsChain.then(async () => {
490
+ if (!liveSyncInfo.isStopped) {
491
+ liveSyncInfo.currentSyncAction = action();
492
+ const res = await liveSyncInfo.currentSyncAction;
493
+ return res;
487
494
  }
488
495
  });
489
- yield this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => {
490
- const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectData.projectDir);
491
- return (data.platform.toLowerCase() ===
492
- device.deviceInfo.platform.toLowerCase() &&
493
- liveSyncProcessInfo &&
494
- _.some(liveSyncProcessInfo.deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier));
495
- }));
496
- });
497
- }
498
- addActionToChain(projectDir, action) {
499
- return __awaiter(this, void 0, void 0, function* () {
500
- const liveSyncInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
501
- if (liveSyncInfo) {
502
- liveSyncInfo.actionsChain = liveSyncInfo.actionsChain.then(() => __awaiter(this, void 0, void 0, function* () {
503
- if (!liveSyncInfo.isStopped) {
504
- liveSyncInfo.currentSyncAction = action();
505
- const res = yield liveSyncInfo.currentSyncAction;
506
- return res;
507
- }
508
- }));
509
- const result = yield liveSyncInfo.actionsChain;
510
- return result;
511
- }
512
- });
496
+ const result = await liveSyncInfo.actionsChain;
497
+ return result;
498
+ }
513
499
  }
514
500
  emitCore(event, data) {
515
501
  this.$logger.trace(`Will emit event ${event} with data`, data);
516
502
  this.emit(event, data);
517
503
  }
518
504
  }
505
+ exports.RunController = RunController;
519
506
  __decorate([
520
507
  (0, decorators_1.performanceLog)()
521
508
  ], RunController.prototype, "refreshApplicationWithoutDebug", null);
522
509
  __decorate([
523
510
  (0, decorators_1.cache)()
524
511
  ], RunController.prototype, "attachDeviceLostHandler", null);
525
- exports.RunController = RunController;
526
512
  yok_1.injector.register("runController", RunController);