@nx/react-native 16.0.0-beta.1

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 (368) hide show
  1. package/.eslintrc.json +19 -0
  2. package/CHANGELOG.md +8 -0
  3. package/LICENSE +22 -0
  4. package/README.md +63 -0
  5. package/executors.json +106 -0
  6. package/generators.json +109 -0
  7. package/index.d.ts +5 -0
  8. package/index.js +14 -0
  9. package/index.js.map +1 -0
  10. package/migrations.json +1291 -0
  11. package/package.json +58 -0
  12. package/plugins/jest/svg-mock.d.ts +0 -0
  13. package/plugins/jest/svg-mock.js +4 -0
  14. package/plugins/jest/svg-mock.js.map +1 -0
  15. package/plugins/metro-resolver.d.ts +1 -0
  16. package/plugins/metro-resolver.js +135 -0
  17. package/plugins/metro-resolver.js.map +1 -0
  18. package/plugins/with-nx-metro.d.ts +8 -0
  19. package/plugins/with-nx-metro.js +32 -0
  20. package/plugins/with-nx-metro.js.map +1 -0
  21. package/project.json +64 -0
  22. package/src/executors/build-android/build-android.impl.d.ts +6 -0
  23. package/src/executors/build-android/build-android.impl.js +76 -0
  24. package/src/executors/build-android/build-android.impl.js.map +1 -0
  25. package/src/executors/build-android/build-android.impl.ts +108 -0
  26. package/src/executors/build-android/compat.d.ts +2 -0
  27. package/src/executors/build-android/compat.js +6 -0
  28. package/src/executors/build-android/compat.js.map +1 -0
  29. package/src/executors/build-android/schema.d.ts +31 -0
  30. package/src/executors/build-android/schema.json +102 -0
  31. package/src/executors/build-ios/build-ios.impl.d.ts +6 -0
  32. package/src/executors/build-ios/build-ios.impl.js +77 -0
  33. package/src/executors/build-ios/build-ios.impl.js.map +1 -0
  34. package/src/executors/build-ios/build-ios.impl.ts +118 -0
  35. package/src/executors/build-ios/compat.d.ts +2 -0
  36. package/src/executors/build-ios/compat.js +6 -0
  37. package/src/executors/build-ios/compat.js.map +1 -0
  38. package/src/executors/build-ios/schema.d.ts +22 -0
  39. package/src/executors/build-ios/schema.json +106 -0
  40. package/src/executors/bundle/bundle.impl.d.ts +6 -0
  41. package/src/executors/bundle/bundle.impl.js +58 -0
  42. package/src/executors/bundle/bundle.impl.js.map +1 -0
  43. package/src/executors/bundle/bundle.impl.ts +76 -0
  44. package/src/executors/bundle/compat.d.ts +2 -0
  45. package/src/executors/bundle/compat.js +6 -0
  46. package/src/executors/bundle/compat.js.map +1 -0
  47. package/src/executors/bundle/schema.d.ts +16 -0
  48. package/src/executors/bundle/schema.json +92 -0
  49. package/src/executors/ensure-symlink/compat.d.ts +2 -0
  50. package/src/executors/ensure-symlink/compat.js +6 -0
  51. package/src/executors/ensure-symlink/compat.js.map +1 -0
  52. package/src/executors/ensure-symlink/ensure-symlink.impl.d.ts +5 -0
  53. package/src/executors/ensure-symlink/ensure-symlink.impl.js +13 -0
  54. package/src/executors/ensure-symlink/ensure-symlink.impl.js.map +1 -0
  55. package/src/executors/ensure-symlink/ensure-symlink.impl.ts +18 -0
  56. package/src/executors/ensure-symlink/schema.json +11 -0
  57. package/src/executors/pod-install/compat.d.ts +2 -0
  58. package/src/executors/pod-install/compat.js +6 -0
  59. package/src/executors/pod-install/compat.js.map +1 -0
  60. package/src/executors/pod-install/pod-install.impl.d.ts +6 -0
  61. package/src/executors/pod-install/pod-install.impl.js +15 -0
  62. package/src/executors/pod-install/pod-install.impl.js.map +1 -0
  63. package/src/executors/pod-install/pod-install.impl.ts +21 -0
  64. package/src/executors/pod-install/schema.d.ts +3 -0
  65. package/src/executors/pod-install/schema.json +18 -0
  66. package/src/executors/run-android/compat.d.ts +2 -0
  67. package/src/executors/run-android/compat.js +6 -0
  68. package/src/executors/run-android/compat.js.map +1 -0
  69. package/src/executors/run-android/run-android.impl.d.ts +6 -0
  70. package/src/executors/run-android/run-android.impl.js +72 -0
  71. package/src/executors/run-android/run-android.impl.js.map +1 -0
  72. package/src/executors/run-android/run-android.impl.ts +110 -0
  73. package/src/executors/run-android/schema.d.ts +24 -0
  74. package/src/executors/run-android/schema.json +121 -0
  75. package/src/executors/run-ios/compat.d.ts +2 -0
  76. package/src/executors/run-ios/compat.js +6 -0
  77. package/src/executors/run-ios/compat.js.map +1 -0
  78. package/src/executors/run-ios/run-ios.impl.d.ts +6 -0
  79. package/src/executors/run-ios/run-ios.impl.js +78 -0
  80. package/src/executors/run-ios/run-ios.impl.js.map +1 -0
  81. package/src/executors/run-ios/run-ios.impl.ts +120 -0
  82. package/src/executors/run-ios/schema.d.ts +12 -0
  83. package/src/executors/run-ios/schema.json +119 -0
  84. package/src/executors/start/compat.d.ts +2 -0
  85. package/src/executors/start/compat.js +6 -0
  86. package/src/executors/start/compat.js.map +1 -0
  87. package/src/executors/start/lib/is-packager-running.d.ts +1 -0
  88. package/src/executors/start/lib/is-packager-running.js +19 -0
  89. package/src/executors/start/lib/is-packager-running.js.map +1 -0
  90. package/src/executors/start/schema.d.ts +7 -0
  91. package/src/executors/start/schema.json +28 -0
  92. package/src/executors/start/start.impl.d.ts +8 -0
  93. package/src/executors/start/start.impl.js +99 -0
  94. package/src/executors/start/start.impl.js.map +1 -0
  95. package/src/executors/start/start.impl.ts +120 -0
  96. package/src/executors/storybook/compat.d.ts +2 -0
  97. package/src/executors/storybook/compat.js +6 -0
  98. package/src/executors/storybook/compat.js.map +1 -0
  99. package/src/executors/storybook/schema.d.ts +7 -0
  100. package/src/executors/storybook/schema.json +34 -0
  101. package/src/executors/storybook/storybook.impl.d.ts +5 -0
  102. package/src/executors/storybook/storybook.impl.js +76 -0
  103. package/src/executors/storybook/storybook.impl.js.map +1 -0
  104. package/src/executors/storybook/storybook.impl.ts +105 -0
  105. package/src/executors/sync-deps/compat.d.ts +2 -0
  106. package/src/executors/sync-deps/compat.js +6 -0
  107. package/src/executors/sync-deps/compat.js.map +1 -0
  108. package/src/executors/sync-deps/schema.d.ts +4 -0
  109. package/src/executors/sync-deps/schema.json +28 -0
  110. package/src/executors/sync-deps/sync-deps.impl.d.ts +8 -0
  111. package/src/executors/sync-deps/sync-deps.impl.js +62 -0
  112. package/src/executors/sync-deps/sync-deps.impl.js.map +1 -0
  113. package/src/executors/sync-deps/sync-deps.impl.ts +101 -0
  114. package/src/generators/application/application.d.ts +5 -0
  115. package/src/generators/application/application.js +40 -0
  116. package/src/generators/application/application.js.map +1 -0
  117. package/src/generators/application/application.spec.ts +214 -0
  118. package/src/generators/application/files/app/.ruby-version +1 -0
  119. package/src/generators/application/files/app/Gemfile.template +6 -0
  120. package/src/generators/application/files/app/android/app/build.gradle.template +184 -0
  121. package/src/generators/application/files/app/android/app/debug.keystore +0 -0
  122. package/src/generators/application/files/app/android/app/proguard-rules.pro +10 -0
  123. package/src/generators/application/files/app/android/app/src/androidTest/java/com/__lowerCaseName__/DetoxTest.java.template +30 -0
  124. package/src/generators/application/files/app/android/app/src/debug/AndroidManifest.xml.template +14 -0
  125. package/src/generators/application/files/app/android/app/src/debug/java/com/__lowerCaseName__/ReactNativeFlipper.java.template +75 -0
  126. package/src/generators/application/files/app/android/app/src/main/AndroidManifest.xml.template +26 -0
  127. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainActivity.java.template +35 -0
  128. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.java.template +63 -0
  129. package/src/generators/application/files/app/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  130. package/src/generators/application/files/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  131. package/src/generators/application/files/app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  132. package/src/generators/application/files/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  133. package/src/generators/application/files/app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  134. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  135. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  136. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  137. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  138. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  139. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  140. package/src/generators/application/files/app/android/app/src/main/res/values/strings.xml.template +3 -0
  141. package/src/generators/application/files/app/android/app/src/main/res/values/styles.xml +9 -0
  142. package/src/generators/application/files/app/android/app/src/main/res/xml/network_security_config.xml +7 -0
  143. package/src/generators/application/files/app/android/app/src/release/java/com/__lowerCaseName__/ReactNativeFlipper.java.template +20 -0
  144. package/src/generators/application/files/app/android/build.gradle.template +34 -0
  145. package/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  146. package/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  147. package/src/generators/application/files/app/android/gradle.properties +44 -0
  148. package/src/generators/application/files/app/android/gradlew.bat +89 -0
  149. package/src/generators/application/files/app/android/gradlew.template +234 -0
  150. package/src/generators/application/files/app/android/settings.gradle.template +7 -0
  151. package/src/generators/application/files/app/app.json.template +4 -0
  152. package/src/generators/application/files/app/babel.config.json.template +3 -0
  153. package/src/generators/application/files/app/ios/.xcode.env.template +12 -0
  154. package/src/generators/application/files/app/ios/Podfile.template +60 -0
  155. package/src/generators/application/files/app/ios/__className__/AppDelegate.h +6 -0
  156. package/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template +36 -0
  157. package/src/generators/application/files/app/ios/__className__/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  158. package/src/generators/application/files/app/ios/__className__/Images.xcassets/Contents.json +6 -0
  159. package/src/generators/application/files/app/ios/__className__/Info.plist.template +55 -0
  160. package/src/generators/application/files/app/ios/__className__/LaunchScreen.storyboard.template +47 -0
  161. package/src/generators/application/files/app/ios/__className__/main.m +10 -0
  162. package/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template +702 -0
  163. package/src/generators/application/files/app/ios/__className__.xcodeproj/xcshareddata/xcschemes/__className__.xcscheme.template +88 -0
  164. package/src/generators/application/files/app/ios/__className__.xcworkspace/contents.xcworkspacedata +10 -0
  165. package/src/generators/application/files/app/ios/__className__Tests/Info.plist +24 -0
  166. package/src/generators/application/files/app/ios/__className__Tests/__className__Tests.m +66 -0
  167. package/src/generators/application/files/app/metro.config.js.template +38 -0
  168. package/src/generators/application/files/app/package.json.template +15 -0
  169. package/src/generators/application/files/app/src/app/App.spec.tsx.template +9 -0
  170. package/src/generators/application/files/app/src/app/App.tsx.template +694 -0
  171. package/src/generators/application/files/app/src/main.tsx.template +4 -0
  172. package/src/generators/application/files/app/test-setup.ts.template +1 -0
  173. package/src/generators/application/files/app/tsconfig.app.json.template +9 -0
  174. package/src/generators/application/files/app/tsconfig.json.template +25 -0
  175. package/src/generators/application/lib/add-detox.d.ts +3 -0
  176. package/src/generators/application/lib/add-detox.js +16 -0
  177. package/src/generators/application/lib/add-detox.js.map +1 -0
  178. package/src/generators/application/lib/add-project.d.ts +3 -0
  179. package/src/generators/application/lib/add-project.js +83 -0
  180. package/src/generators/application/lib/add-project.js.map +1 -0
  181. package/src/generators/application/lib/create-application-files.d.ts +3 -0
  182. package/src/generators/application/lib/create-application-files.js +20 -0
  183. package/src/generators/application/lib/create-application-files.js.map +1 -0
  184. package/src/generators/application/lib/nomalize-options.spec.ts +138 -0
  185. package/src/generators/application/lib/normalize-options.d.ts +13 -0
  186. package/src/generators/application/lib/normalize-options.js +36 -0
  187. package/src/generators/application/lib/normalize-options.js.map +1 -0
  188. package/src/generators/application/schema.d.ts +19 -0
  189. package/src/generators/application/schema.json +89 -0
  190. package/src/generators/component/component.d.ts +5 -0
  191. package/src/generators/component/component.js +53 -0
  192. package/src/generators/component/component.js.map +1 -0
  193. package/src/generators/component/component.spec.ts +135 -0
  194. package/src/generators/component/files/__fileName__.spec.tsx__tmpl__ +11 -0
  195. package/src/generators/component/files/__fileName__.tsx__tmpl__ +32 -0
  196. package/src/generators/component/lib/add-import.d.ts +3 -0
  197. package/src/generators/component/lib/add-import.js +34 -0
  198. package/src/generators/component/lib/add-import.js.map +1 -0
  199. package/src/generators/component/lib/normalize-options.d.ts +8 -0
  200. package/src/generators/component/lib/normalize-options.js +58 -0
  201. package/src/generators/component/lib/normalize-options.js.map +1 -0
  202. package/src/generators/component/schema.d.ts +14 -0
  203. package/src/generators/component/schema.json +78 -0
  204. package/src/generators/component-story/component-story.d.ts +8 -0
  205. package/src/generators/component-story/component-story.js +113 -0
  206. package/src/generators/component-story/component-story.js.map +1 -0
  207. package/src/generators/component-story/component-story.spec.ts +433 -0
  208. package/src/generators/component-story/files/__componentFileName__.stories.__fileExt__ +24 -0
  209. package/src/generators/component-story/schema.d.ts +5 -0
  210. package/src/generators/component-story/schema.json +34 -0
  211. package/src/generators/init/init.d.ts +6 -0
  212. package/src/generators/init/init.js +58 -0
  213. package/src/generators/init/init.js.map +1 -0
  214. package/src/generators/init/init.spec.ts +81 -0
  215. package/src/generators/init/lib/add-git-ignore-entry.d.ts +2 -0
  216. package/src/generators/init/lib/add-git-ignore-entry.js +25 -0
  217. package/src/generators/init/lib/add-git-ignore-entry.js.map +1 -0
  218. package/src/generators/init/lib/gitignore-entries.d.ts +1 -0
  219. package/src/generators/init/lib/gitignore-entries.js +75 -0
  220. package/src/generators/init/lib/gitignore-entries.js.map +1 -0
  221. package/src/generators/init/schema.d.ts +7 -0
  222. package/src/generators/init/schema.json +40 -0
  223. package/src/generators/library/files/lib/README.md +7 -0
  224. package/src/generators/library/files/lib/babel.config.json.template +17 -0
  225. package/src/generators/library/files/lib/package.json__tmpl__ +4 -0
  226. package/src/generators/library/files/lib/src/index.ts__tmpl__ +0 -0
  227. package/src/generators/library/files/lib/test-setup.ts.template +1 -0
  228. package/src/generators/library/files/lib/tsconfig.json__tmpl__ +16 -0
  229. package/src/generators/library/files/lib/tsconfig.lib.json__tmpl__ +9 -0
  230. package/src/generators/library/lib/normalize-options.d.ts +13 -0
  231. package/src/generators/library/lib/normalize-options.js +26 -0
  232. package/src/generators/library/lib/normalize-options.js.map +1 -0
  233. package/src/generators/library/library.d.ts +5 -0
  234. package/src/generators/library/library.js +103 -0
  235. package/src/generators/library/library.js.map +1 -0
  236. package/src/generators/library/library.spec.ts +397 -0
  237. package/src/generators/library/schema.d.ts +22 -0
  238. package/src/generators/library/schema.json +102 -0
  239. package/src/generators/stories/schema.d.ts +5 -0
  240. package/src/generators/stories/schema.json +42 -0
  241. package/src/generators/stories/stories-app.spec.ts +145 -0
  242. package/src/generators/stories/stories-lib.spec.ts +113 -0
  243. package/src/generators/stories/stories.d.ts +6 -0
  244. package/src/generators/stories/stories.js +63 -0
  245. package/src/generators/stories/stories.js.map +1 -0
  246. package/src/generators/storybook-configuration/configuration.d.ts +5 -0
  247. package/src/generators/storybook-configuration/configuration.js +60 -0
  248. package/src/generators/storybook-configuration/configuration.js.map +1 -0
  249. package/src/generators/storybook-configuration/configuration.spec.ts +146 -0
  250. package/src/generators/storybook-configuration/files/app/storybook.ts.template +9 -0
  251. package/src/generators/storybook-configuration/files/app/toggle-storybook.tsx.template +114 -0
  252. package/src/generators/storybook-configuration/files/root/story-loader.js.template +13 -0
  253. package/src/generators/storybook-configuration/lib/add-resolver-main-fields-to-metro-config.d.ts +6 -0
  254. package/src/generators/storybook-configuration/lib/add-resolver-main-fields-to-metro-config.js +26 -0
  255. package/src/generators/storybook-configuration/lib/add-resolver-main-fields-to-metro-config.js.map +1 -0
  256. package/src/generators/storybook-configuration/lib/add-resolver-main-fields-to-metro-config.spec.ts +161 -0
  257. package/src/generators/storybook-configuration/lib/create-storybook-files.d.ts +6 -0
  258. package/src/generators/storybook-configuration/lib/create-storybook-files.js +45 -0
  259. package/src/generators/storybook-configuration/lib/create-storybook-files.js.map +1 -0
  260. package/src/generators/storybook-configuration/lib/replace-app-import-with-storybook-toggle.d.ts +7 -0
  261. package/src/generators/storybook-configuration/lib/replace-app-import-with-storybook-toggle.js +30 -0
  262. package/src/generators/storybook-configuration/lib/replace-app-import-with-storybook-toggle.js.map +1 -0
  263. package/src/generators/storybook-configuration/lib/replace-app-import-with-storybook-toggle.spec.ts +65 -0
  264. package/src/generators/storybook-configuration/schema.d.ts +11 -0
  265. package/src/generators/storybook-configuration/schema.json +66 -0
  266. package/src/generators/upgrade-native/lib/create-native-files.d.ts +3 -0
  267. package/src/generators/upgrade-native/lib/create-native-files.js +15 -0
  268. package/src/generators/upgrade-native/lib/create-native-files.js.map +1 -0
  269. package/src/generators/upgrade-native/lib/normalize-options.d.ts +12 -0
  270. package/src/generators/upgrade-native/lib/normalize-options.js +28 -0
  271. package/src/generators/upgrade-native/lib/normalize-options.js.map +1 -0
  272. package/src/generators/upgrade-native/schema.d.ts +9 -0
  273. package/src/generators/upgrade-native/schema.json +41 -0
  274. package/src/generators/upgrade-native/upgrade-native.d.ts +9 -0
  275. package/src/generators/upgrade-native/upgrade-native.js +33 -0
  276. package/src/generators/upgrade-native/upgrade-native.js.map +1 -0
  277. package/src/migrations/update-12-10-0/add-react-native-svg-12-10-0.d.ts +8 -0
  278. package/src/migrations/update-12-10-0/add-react-native-svg-12-10-0.js +63 -0
  279. package/src/migrations/update-12-10-0/add-react-native-svg-12-10-0.js.map +1 -0
  280. package/src/migrations/update-12-10-0/add-react-native-svg-12-10-0.spec.ts +79 -0
  281. package/src/migrations/update-12-5-0/update-jest-for-react-native.d.ts +2 -0
  282. package/src/migrations/update-12-5-0/update-jest-for-react-native.js +62 -0
  283. package/src/migrations/update-12-5-0/update-jest-for-react-native.js.map +1 -0
  284. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.d.ts +2 -0
  285. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.js +22 -0
  286. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.js.map +1 -0
  287. package/src/migrations/update-13-5-0/add-babel-config-root-13-5-0.spec.ts +48 -0
  288. package/src/migrations/update-13-5-0/update-react-native-typing-svg-13-5-0.d.ts +6 -0
  289. package/src/migrations/update-13-5-0/update-react-native-typing-svg-13-5-0.js +41 -0
  290. package/src/migrations/update-13-5-0/update-react-native-typing-svg-13-5-0.js.map +1 -0
  291. package/src/migrations/update-13-5-0/update-react-native-typing-svg-13-5-0.spec.ts +61 -0
  292. package/src/migrations/update-14-0-0/add-project-root-metro-config-14-0-0.d.ts +6 -0
  293. package/src/migrations/update-14-0-0/add-project-root-metro-config-14-0-0.js +33 -0
  294. package/src/migrations/update-14-0-0/add-project-root-metro-config-14-0-0.js.map +1 -0
  295. package/src/migrations/update-14-0-0/add-project-root-metro-config-14-0-0.spec.ts +192 -0
  296. package/src/migrations/update-14-0-0/update-entry-file-bundle-14-0-0.d.ts +5 -0
  297. package/src/migrations/update-14-0-0/update-entry-file-bundle-14-0-0.js +39 -0
  298. package/src/migrations/update-14-0-0/update-entry-file-bundle-14-0-0.js.map +1 -0
  299. package/src/migrations/update-14-0-0/update-entry-file-bundle-14-0-0.spec.ts +84 -0
  300. package/src/migrations/update-14-0-2/change-main-to-class-name-14-0-2.d.ts +5 -0
  301. package/src/migrations/update-14-0-2/change-main-to-class-name-14-0-2.js +42 -0
  302. package/src/migrations/update-14-0-2/change-main-to-class-name-14-0-2.js.map +1 -0
  303. package/src/migrations/update-14-0-2/change-main-to-class-name-14-0-2.spec.ts +48 -0
  304. package/src/migrations/update-14-2-1/rename-blockList-metro-config.d.ts +6 -0
  305. package/src/migrations/update-14-2-1/rename-blockList-metro-config.js +33 -0
  306. package/src/migrations/update-14-2-1/rename-blockList-metro-config.js.map +1 -0
  307. package/src/migrations/update-14-2-1/rename-blockList-metro-config.spec.ts +190 -0
  308. package/src/migrations/update-14-5-5/add-exclude-sync-deps.d.ts +5 -0
  309. package/src/migrations/update-14-5-5/add-exclude-sync-deps.js +26 -0
  310. package/src/migrations/update-14-5-5/add-exclude-sync-deps.js.map +1 -0
  311. package/src/migrations/update-14-5-5/add-exclude-sync-deps.spec.ts +39 -0
  312. package/src/migrations/update-14-5-8/change-searchDir-storybook.d.ts +5 -0
  313. package/src/migrations/update-14-5-8/change-searchDir-storybook.js +26 -0
  314. package/src/migrations/update-14-5-8/change-searchDir-storybook.js.map +1 -0
  315. package/src/migrations/update-14-5-8/change-searchDir-storybook.spec.ts +39 -0
  316. package/src/migrations/update-14-6-0/remove-jest-transform.d.ts +5 -0
  317. package/src/migrations/update-14-6-0/remove-jest-transform.js +58 -0
  318. package/src/migrations/update-14-6-0/remove-jest-transform.js.map +1 -0
  319. package/src/migrations/update-14-6-0/remove-jest-transform.spec.ts +109 -0
  320. package/src/migrations/update-15-0-0/add-babel-inputs.d.ts +2 -0
  321. package/src/migrations/update-15-0-0/add-babel-inputs.js +13 -0
  322. package/src/migrations/update-15-0-0/add-babel-inputs.js.map +1 -0
  323. package/src/migrations/update-15-0-0/add-babel-inputs.spec.ts +73 -0
  324. package/src/migrations/update-15-9-1/add-build-ios-target.d.ts +5 -0
  325. package/src/migrations/update-15-9-1/add-build-ios-target.js +34 -0
  326. package/src/migrations/update-15-9-1/add-build-ios-target.js.map +1 -0
  327. package/src/migrations/update-15-9-1/add-build-ios-target.spec.ts +36 -0
  328. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
  329. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +13 -0
  330. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js.map +1 -0
  331. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.spec.ts +37 -0
  332. package/src/utils/add-jest.d.ts +2 -0
  333. package/src/utils/add-jest.js +38 -0
  334. package/src/utils/add-jest.js.map +1 -0
  335. package/src/utils/add-linting.d.ts +12 -0
  336. package/src/utils/add-linting.js +41 -0
  337. package/src/utils/add-linting.js.map +1 -0
  338. package/src/utils/add-linting.spec.ts +42 -0
  339. package/src/utils/chmod-android-gradle-files.d.ts +3 -0
  340. package/src/utils/chmod-android-gradle-files.js +24 -0
  341. package/src/utils/chmod-android-gradle-files.js.map +1 -0
  342. package/src/utils/ensure-node-modules-symlink.d.ts +9 -0
  343. package/src/utils/ensure-node-modules-symlink.js +29 -0
  344. package/src/utils/ensure-node-modules-symlink.js.map +1 -0
  345. package/src/utils/ensure-node-modules-symlink.spec.ts +108 -0
  346. package/src/utils/find-all-npm-dependencies.d.ts +2 -0
  347. package/src/utils/find-all-npm-dependencies.js +26 -0
  348. package/src/utils/find-all-npm-dependencies.js.map +1 -0
  349. package/src/utils/find-all-npm-dependencies.spec.ts +95 -0
  350. package/src/utils/format-file.d.ts +1 -0
  351. package/src/utils/format-file.js +17 -0
  352. package/src/utils/format-file.js.map +1 -0
  353. package/src/utils/get-cli-options.d.ts +8 -0
  354. package/src/utils/get-cli-options.js +31 -0
  355. package/src/utils/get-cli-options.js.map +1 -0
  356. package/src/utils/pod-install-task.d.ts +8 -0
  357. package/src/utils/pod-install-task.js +62 -0
  358. package/src/utils/pod-install-task.js.map +1 -0
  359. package/src/utils/symlink-task.d.ts +2 -0
  360. package/src/utils/symlink-task.js +19 -0
  361. package/src/utils/symlink-task.js.map +1 -0
  362. package/src/utils/testing-generators.d.ts +3 -0
  363. package/src/utils/testing-generators.js +36 -0
  364. package/src/utils/testing-generators.js.map +1 -0
  365. package/src/utils/versions.d.ts +20 -0
  366. package/src/utils/versions.js +24 -0
  367. package/src/utils/versions.js.map +1 -0
  368. package/typings/svg.d.ts +7 -0
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const path_1 = require("path");
5
+ const child_process_1 = require("child_process");
6
+ const os_1 = require("os");
7
+ const ensure_node_modules_symlink_1 = require("../../utils/ensure-node-modules-symlink");
8
+ const sync_deps_impl_1 = require("../sync-deps/sync-deps.impl");
9
+ const pod_install_task_1 = require("../../utils/pod-install-task");
10
+ const start_impl_1 = require("../start/start.impl");
11
+ const get_cli_options_1 = require("../../utils/get-cli-options");
12
+ let childProcess;
13
+ function runIosExecutor(options, context) {
14
+ return tslib_1.__asyncGenerator(this, arguments, function* runIosExecutor_1() {
15
+ if ((0, os_1.platform)() !== 'darwin') {
16
+ throw new Error(`The run-ios build requires Mac to run`);
17
+ }
18
+ const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
19
+ (0, ensure_node_modules_symlink_1.ensureNodeModulesSymlink)(context.root, projectRoot);
20
+ if (options.sync) {
21
+ (0, sync_deps_impl_1.displayNewlyAddedDepsMessage)(context.projectName, yield tslib_1.__await((0, sync_deps_impl_1.syncDeps)(context.projectName, projectRoot, context.root, context.projectGraph)));
22
+ }
23
+ if (options.install) {
24
+ yield tslib_1.__await((0, pod_install_task_1.podInstall)((0, path_1.join)(context.root, projectRoot, 'ios'), options.buildFolder));
25
+ }
26
+ try {
27
+ const tasks = [runCliRunIOS(context.root, projectRoot, options)];
28
+ if (options.packager && options.mode !== 'Release') {
29
+ tasks.push((0, start_impl_1.runCliStart)(context.root, projectRoot, {
30
+ port: options.port,
31
+ resetCache: options.resetCache,
32
+ interactive: options.interactive,
33
+ }));
34
+ }
35
+ yield tslib_1.__await(Promise.all(tasks));
36
+ yield yield tslib_1.__await({ success: true });
37
+ }
38
+ finally {
39
+ if (childProcess) {
40
+ childProcess.kill();
41
+ }
42
+ }
43
+ });
44
+ }
45
+ exports.default = runIosExecutor;
46
+ function runCliRunIOS(workspaceRoot, projectRoot, options) {
47
+ return new Promise((resolve, reject) => {
48
+ /**
49
+ * Call the react native cli with option `--no-packager`
50
+ * Not passing '--packager' due to cli will launch start command from the project root
51
+ */
52
+ childProcess = (0, child_process_1.fork)((0, path_1.join)(workspaceRoot, './node_modules/react-native/cli.js'), ['run-ios', ...createRunIOSOptions(options), '--no-packager'], {
53
+ cwd: (0, path_1.join)(workspaceRoot, projectRoot),
54
+ env: Object.assign(Object.assign({}, process.env), { RCT_METRO_PORT: options.port.toString() }),
55
+ });
56
+ // Ensure the child process is killed when the parent exits
57
+ process.on('exit', () => childProcess.kill());
58
+ process.on('SIGTERM', () => childProcess.kill());
59
+ childProcess.on('error', (err) => {
60
+ reject(err);
61
+ });
62
+ childProcess.on('exit', (code) => {
63
+ if (code === 0) {
64
+ resolve(code);
65
+ }
66
+ else {
67
+ reject(code);
68
+ }
69
+ });
70
+ });
71
+ }
72
+ const nxOptions = ['sync', 'install', 'packager'];
73
+ const startOptions = ['port', 'resetCache'];
74
+ const deprecatedOptions = ['xcodeConfiguration'];
75
+ function createRunIOSOptions(options) {
76
+ return (0, get_cli_options_1.getCliOptions)(options, [...nxOptions, ...startOptions, ...deprecatedOptions], ['buildFolder']);
77
+ }
78
+ //# sourceMappingURL=run-ios.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-ios.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/run-ios/run-ios.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { ExecutorContext, logger, names } from '@nx/devkit';
2
+ import { join } from 'path';
3
+ import { ChildProcess, fork } from 'child_process';
4
+ import { platform } from 'os';
5
+
6
+ import { ensureNodeModulesSymlink } from '../../utils/ensure-node-modules-symlink';
7
+ import {
8
+ displayNewlyAddedDepsMessage,
9
+ syncDeps,
10
+ } from '../sync-deps/sync-deps.impl';
11
+ import { podInstall } from '../../utils/pod-install-task';
12
+ import { ReactNativeRunIosOptions } from './schema';
13
+ import { runCliStart } from '../start/start.impl';
14
+ import { getCliOptions } from '../../utils/get-cli-options';
15
+ import { rmdirSync } from 'fs-extra';
16
+
17
+ export interface ReactNativeRunIosOutput {
18
+ success: boolean;
19
+ }
20
+
21
+ let childProcess: ChildProcess;
22
+
23
+ export default async function* runIosExecutor(
24
+ options: ReactNativeRunIosOptions,
25
+ context: ExecutorContext
26
+ ): AsyncGenerator<ReactNativeRunIosOutput> {
27
+ if (platform() !== 'darwin') {
28
+ throw new Error(`The run-ios build requires Mac to run`);
29
+ }
30
+ const projectRoot =
31
+ context.projectsConfigurations.projects[context.projectName].root;
32
+ ensureNodeModulesSymlink(context.root, projectRoot);
33
+ if (options.sync) {
34
+ displayNewlyAddedDepsMessage(
35
+ context.projectName,
36
+ await syncDeps(
37
+ context.projectName,
38
+ projectRoot,
39
+ context.root,
40
+ context.projectGraph
41
+ )
42
+ );
43
+ }
44
+
45
+ if (options.install) {
46
+ await podInstall(
47
+ join(context.root, projectRoot, 'ios'),
48
+ options.buildFolder
49
+ );
50
+ }
51
+
52
+ try {
53
+ const tasks = [runCliRunIOS(context.root, projectRoot, options)];
54
+ if (options.packager && options.mode !== 'Release') {
55
+ tasks.push(
56
+ runCliStart(context.root, projectRoot, {
57
+ port: options.port,
58
+ resetCache: options.resetCache,
59
+ interactive: options.interactive,
60
+ })
61
+ );
62
+ }
63
+
64
+ await Promise.all(tasks);
65
+
66
+ yield { success: true };
67
+ } finally {
68
+ if (childProcess) {
69
+ childProcess.kill();
70
+ }
71
+ }
72
+ }
73
+
74
+ function runCliRunIOS(
75
+ workspaceRoot: string,
76
+ projectRoot: string,
77
+ options: ReactNativeRunIosOptions
78
+ ) {
79
+ return new Promise((resolve, reject) => {
80
+ /**
81
+ * Call the react native cli with option `--no-packager`
82
+ * Not passing '--packager' due to cli will launch start command from the project root
83
+ */
84
+ childProcess = fork(
85
+ join(workspaceRoot, './node_modules/react-native/cli.js'),
86
+ ['run-ios', ...createRunIOSOptions(options), '--no-packager'],
87
+ {
88
+ cwd: join(workspaceRoot, projectRoot),
89
+ env: { ...process.env, RCT_METRO_PORT: options.port.toString() },
90
+ }
91
+ );
92
+
93
+ // Ensure the child process is killed when the parent exits
94
+ process.on('exit', () => childProcess.kill());
95
+ process.on('SIGTERM', () => childProcess.kill());
96
+
97
+ childProcess.on('error', (err) => {
98
+ reject(err);
99
+ });
100
+ childProcess.on('exit', (code) => {
101
+ if (code === 0) {
102
+ resolve(code);
103
+ } else {
104
+ reject(code);
105
+ }
106
+ });
107
+ });
108
+ }
109
+
110
+ const nxOptions = ['sync', 'install', 'packager'];
111
+ const startOptions = ['port', 'resetCache'];
112
+ const deprecatedOptions = ['xcodeConfiguration'];
113
+
114
+ function createRunIOSOptions(options: ReactNativeRunIosOptions) {
115
+ return getCliOptions<ReactNativeRunIosOptions>(
116
+ options,
117
+ [...nxOptions, ...startOptions, ...deprecatedOptions],
118
+ ['buildFolder']
119
+ );
120
+ }
@@ -0,0 +1,12 @@
1
+ import { ReactNativeBuildIosOptions } from '../build-ios/schema';
2
+ import { ReactNativeStartOptions } from '../start/schema';
3
+
4
+ // part of options form https://github.com/react-native-community/cli/blob/main/packages/cli-platform-ios/src/commands/runIOS/index.ts
5
+ export interface ReactNativeRunIosOptions extends ReactNativeBuildIosOptions {
6
+ /**
7
+ * @deprecated use mode instead, will be removed in nx 17.
8
+ */
9
+ xcodeConfiguration?: string;
10
+
11
+ binaryPath?: string;
12
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "version": 2,
3
+ "outputCapture": "direct-nodejs",
4
+ "cli": "nx",
5
+ "$id": "NxReactNativeRunIos",
6
+ "$schema": "http://json-schema.org/schema",
7
+ "title": "Run iOS application",
8
+ "description": "Run iOS target options.",
9
+ "type": "object",
10
+ "presets": [
11
+ {
12
+ "name": "Run iOS on a simulator",
13
+ "keys": ["simulator"]
14
+ },
15
+ {
16
+ "name": "Run iOS on a device",
17
+ "keys": ["device"]
18
+ },
19
+ {
20
+ "name": "Run iOS on a device with udid",
21
+ "keys": ["udid"]
22
+ },
23
+ {
24
+ "name": "Run `pod install` before building iOS app",
25
+ "keys": ["install"]
26
+ }
27
+ ],
28
+ "properties": {
29
+ "xcodeConfiguration": {
30
+ "type": "string",
31
+ "description": "Explicitly set the Xcode configuration to use.",
32
+ "default": "Debug",
33
+ "examples": ["Debug", "Release"],
34
+ "x-deprecated": "Use `mode` instead. Deprecated from @react-native-community/cli. Will be removed in Nx 17."
35
+ },
36
+ "simulator": {
37
+ "type": "string",
38
+ "description": "Explicitly set simulator to use. Optionally include iOS version between parenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"",
39
+ "examples": [
40
+ "iPhone 14",
41
+ "iPhone 13",
42
+ "iPhone 12",
43
+ "iPhone 11",
44
+ "iPhone X"
45
+ ],
46
+ "x-priority": "important"
47
+ },
48
+ "mode": {
49
+ "type": "string",
50
+ "description": "Explicitly set the scheme configuration to use",
51
+ "default": "Debug",
52
+ "examples": ["Debug", "Release"],
53
+ "x-priority": "important"
54
+ },
55
+ "schema": {
56
+ "type": "string",
57
+ "description": "Explicitly set Xcode scheme to use"
58
+ },
59
+ "device": {
60
+ "type": "string",
61
+ "description": "Explicitly set device to use by name. The value is not required if you have a single device connected."
62
+ },
63
+ "udid": {
64
+ "type": "string",
65
+ "description": "Explicitly set device to use by udid"
66
+ },
67
+ "verbose": {
68
+ "type": "boolean",
69
+ "description": "Do not use xcbeautify or xcpretty even if installed"
70
+ },
71
+ "port": {
72
+ "type": "number",
73
+ "description": "The port where the packager server is listening on.",
74
+ "default": 8081
75
+ },
76
+ "xcconfig": {
77
+ "type": "string",
78
+ "description": "Explicitly set xcconfig to use"
79
+ },
80
+ "buildFolder": {
81
+ "type": "string",
82
+ "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory.",
83
+ "buildFolder": "./build"
84
+ },
85
+ "interactive": {
86
+ "type": "boolean",
87
+ "description": "Explicitly select which scheme and configuration to use before running a build"
88
+ },
89
+ "extraParams": {
90
+ "type": "string",
91
+ "description": "Custom params that will be passed to xcodebuild command."
92
+ },
93
+ "install": {
94
+ "type": "boolean",
95
+ "description": "Runs `pod install` for native modules before building iOS app.",
96
+ "default": false
97
+ },
98
+ "sync": {
99
+ "type": "boolean",
100
+ "description": "Syncs npm dependencies to `package.json` (for React Native autolink).",
101
+ "default": true
102
+ },
103
+ "resetCache": {
104
+ "type": "boolean",
105
+ "description": "Resets metro cache.",
106
+ "default": false
107
+ },
108
+ "packager": {
109
+ "type": "boolean",
110
+ "description": "Launch packager while building",
111
+ "default": true
112
+ },
113
+ "binaryPath": {
114
+ "type": "string",
115
+ "description": "Path relative to project root where pre-built .app binary lives."
116
+ }
117
+ },
118
+ "examplesFile": "../../../docs/run-ios-examples.md"
119
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const start_impl_1 = require("./start.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(start_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/start/compat.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,6CAAyC;AAEzC,kBAAe,IAAA,0BAAiB,EAAC,oBAAa,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isPackagerRunning(packagerPort: number): Promise<'running' | 'not_running' | 'unrecognized'>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPackagerRunning = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_fetch_1 = require("node-fetch");
6
+ function isPackagerRunning(packagerPort) {
7
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
8
+ try {
9
+ const resp = yield (0, node_fetch_1.default)(`http://localhost:${packagerPort}/status`);
10
+ const data = yield resp.text();
11
+ return data === 'packager-status:running' ? 'running' : 'unrecognized';
12
+ }
13
+ catch (_a) {
14
+ return 'not_running';
15
+ }
16
+ });
17
+ }
18
+ exports.isPackagerRunning = isPackagerRunning;
19
+ //# sourceMappingURL=is-packager-running.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-packager-running.js","sourceRoot":"","sources":["../../../../../../../packages/react-native/src/executors/start/lib/is-packager-running.ts"],"names":[],"mappings":";;;;AAAA,2CAA+B;AAE/B,SAAsB,iBAAiB,CACrC,YAAoB;;QAEpB,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAK,EAAC,oBAAoB,YAAY,SAAS,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;SACxE;QAAC,WAAM;YACN,OAAO,aAAa,CAAC;SACtB;IACH,CAAC;CAAA;AAVD,8CAUC"}
@@ -0,0 +1,7 @@
1
+ // options from https://github.com/react-native-community/cli/blob/main/packages/cli-plugin-metro/src/commands/start/index.ts
2
+
3
+ export interface ReactNativeStartOptions {
4
+ port: number;
5
+ resetCache: boolean; // default is false
6
+ interactive: boolean; // default is true
7
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "version": 2,
3
+ "outputCapture": "direct-nodejs",
4
+ "cli": "nx",
5
+ "$id": "NxReactNativeStart",
6
+ "$schema": "http://json-schema.org/schema",
7
+ "title": "Packager Server for React Native",
8
+ "description": "Packager Server target options.",
9
+ "type": "object",
10
+ "properties": {
11
+ "port": {
12
+ "type": "number",
13
+ "description": "The port to listen on.",
14
+ "default": 8081
15
+ },
16
+ "resetCache": {
17
+ "type": "boolean",
18
+ "description": "Resets metro cache.",
19
+ "default": false
20
+ },
21
+ "interactive": {
22
+ "type": "boolean",
23
+ "description": "Run packager server in interactive mode.",
24
+ "default": true
25
+ }
26
+ },
27
+ "examplesFile": "../../../docs/start-examples.md"
28
+ }
@@ -0,0 +1,8 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { ReactNativeStartOptions } from './schema';
3
+ export interface ReactNativeStartOutput {
4
+ baseUrl?: string;
5
+ success: boolean;
6
+ }
7
+ export default function startExecutor(options: ReactNativeStartOptions, context: ExecutorContext): AsyncGenerator<ReactNativeStartOutput>;
8
+ export declare function runCliStart(workspaceRoot: string, projectRoot: string, options: ReactNativeStartOptions): Promise<void>;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCliStart = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const chalk = require("chalk");
6
+ const devkit_1 = require("@nx/devkit");
7
+ const child_process_1 = require("child_process");
8
+ const path_1 = require("path");
9
+ const ensure_node_modules_symlink_1 = require("../../utils/ensure-node-modules-symlink");
10
+ const is_packager_running_1 = require("./lib/is-packager-running");
11
+ let childProcess;
12
+ function startExecutor(options, context) {
13
+ return tslib_1.__asyncGenerator(this, arguments, function* startExecutor_1() {
14
+ const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
15
+ (0, ensure_node_modules_symlink_1.ensureNodeModulesSymlink)(context.root, projectRoot);
16
+ try {
17
+ const baseUrl = `http://localhost:${options.port}`;
18
+ const appName = context.projectName;
19
+ devkit_1.logger.info(chalk.cyan(`Packager is ready at ${baseUrl}`));
20
+ devkit_1.logger.info(`Use ${chalk.bold(`nx run-android ${appName}`)} or ${chalk.bold(`nx run-ios ${appName}`)} to run the native app.`);
21
+ yield tslib_1.__await(runCliStart(context.root, projectRoot, options));
22
+ yield yield tslib_1.__await({
23
+ baseUrl,
24
+ success: true,
25
+ });
26
+ }
27
+ finally {
28
+ if (childProcess) {
29
+ childProcess.kill();
30
+ }
31
+ }
32
+ });
33
+ }
34
+ exports.default = startExecutor;
35
+ /*
36
+ * Starts the JS bundler and checks for "running" status before notifying
37
+ * that packager has started.
38
+ */
39
+ function runCliStart(workspaceRoot, projectRoot, options) {
40
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
41
+ const result = yield (0, is_packager_running_1.isPackagerRunning)(options.port);
42
+ if (result === 'running') {
43
+ devkit_1.logger.info('JS server already running.');
44
+ }
45
+ else if (result === 'unrecognized') {
46
+ devkit_1.logger.warn('JS server not recognized.');
47
+ }
48
+ else {
49
+ // result === 'not_running'
50
+ devkit_1.logger.info('Starting JS server...');
51
+ try {
52
+ yield startAsync(workspaceRoot, projectRoot, options);
53
+ }
54
+ catch (error) {
55
+ devkit_1.logger.error(`Failed to start the packager server. Error details: ${error.message}`);
56
+ throw error;
57
+ }
58
+ }
59
+ });
60
+ }
61
+ exports.runCliStart = runCliStart;
62
+ function startAsync(workspaceRoot, projectRoot, options) {
63
+ return new Promise((resolve, reject) => {
64
+ childProcess = (0, child_process_1.fork)((0, path_1.join)(workspaceRoot, './node_modules/react-native/cli.js'), ['start', ...createStartOptions(options)], { cwd: (0, path_1.join)(workspaceRoot, projectRoot), env: process.env });
65
+ // Ensure the child process is killed when the parent exits
66
+ process.on('exit', () => childProcess.kill());
67
+ process.on('SIGTERM', () => childProcess.kill());
68
+ childProcess.on('error', (err) => {
69
+ reject(err);
70
+ });
71
+ childProcess.on('exit', (code) => {
72
+ if (code === 0) {
73
+ resolve(code);
74
+ }
75
+ else {
76
+ reject(code);
77
+ }
78
+ });
79
+ });
80
+ }
81
+ function createStartOptions(options) {
82
+ return Object.keys(options).reduce((acc, k) => {
83
+ if (k === 'resetCache') {
84
+ if (options[k] === true) {
85
+ acc.push(`--reset-cache`);
86
+ }
87
+ }
88
+ else if (k === 'interactive') {
89
+ if (options[k] === false) {
90
+ acc.push(`--no-interactive`);
91
+ }
92
+ }
93
+ else {
94
+ acc.push(`--${k}`, options[k]);
95
+ }
96
+ return acc;
97
+ }, []);
98
+ }
99
+ //# sourceMappingURL=start.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/start/start.impl.ts"],"names":[],"mappings":";;;;AAAA,+BAA+B;AAC/B,uCAAqD;AACrD,iDAAmD;AACnD,+BAA4B;AAC5B,yFAAmF;AACnF,mEAA8D;AAQ9D,IAAI,YAA0B,CAAC;AAE/B,SAA+B,aAAa,CAC1C,OAAgC,EAChC,OAAwB;;QAExB,MAAM,WAAW,GACf,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QACpE,IAAA,sDAAwB,EAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI;YACF,MAAM,OAAO,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;YACpC,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3D,eAAM,CAAC,IAAI,CACT,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,OAAO,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,CAC7D,cAAc,OAAO,EAAE,CACxB,yBAAyB,CAC3B,CAAC;YAEF,sBAAM,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA,CAAC;YAEtD,4BAAM;gBACJ,OAAO;gBACP,OAAO,EAAE,IAAI;aACd,CAAA,CAAC;SACH;gBAAS;YACR,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,EAAE,CAAC;aACrB;SACF;IACH,CAAC;CAAA;AA7BD,gCA6BC;AAED;;;GAGG;AACH,SAAsB,WAAW,CAC/B,aAAqB,EACrB,WAAmB,EACnB,OAAgC;;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAA,uCAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,KAAK,cAAc,EAAE;YACpC,eAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;SAC1C;aAAM;YACL,2BAA2B;YAC3B,eAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAErC,IAAI;gBACF,MAAM,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;aACvD;YAAC,OAAO,KAAK,EAAE;gBACd,eAAM,CAAC,KAAK,CACV,uDAAuD,KAAK,CAAC,OAAO,EAAE,CACvE,CAAC;gBACF,MAAM,KAAK,CAAC;aACb;SACF;IACH,CAAC;CAAA;AAvBD,kCAuBC;AAED,SAAS,UAAU,CACjB,aAAqB,EACrB,WAAmB,EACnB,OAAgC;IAEhC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,YAAY,GAAG,IAAA,oBAAI,EACjB,IAAA,WAAI,EAAC,aAAa,EAAE,oCAAoC,CAAC,EACzD,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EACzC,EAAE,GAAG,EAAE,IAAA,WAAI,EAAC,aAAa,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAC5D,CAAC;QAEF,2DAA2D;QAC3D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,CAAC;aACd;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAO;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5C,IAAI,CAAC,KAAK,YAAY,EAAE;YACtB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gBACvB,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC3B;SACF;aAAM,IAAI,CAAC,KAAK,aAAa,EAAE;YAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAC9B;SACF;aAAM;YACL,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAChC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
@@ -0,0 +1,120 @@
1
+ import * as chalk from 'chalk';
2
+ import { ExecutorContext, logger } from '@nx/devkit';
3
+ import { ChildProcess, fork } from 'child_process';
4
+ import { join } from 'path';
5
+ import { ensureNodeModulesSymlink } from '../../utils/ensure-node-modules-symlink';
6
+ import { isPackagerRunning } from './lib/is-packager-running';
7
+ import { ReactNativeStartOptions } from './schema';
8
+
9
+ export interface ReactNativeStartOutput {
10
+ baseUrl?: string;
11
+ success: boolean;
12
+ }
13
+
14
+ let childProcess: ChildProcess;
15
+
16
+ export default async function* startExecutor(
17
+ options: ReactNativeStartOptions,
18
+ context: ExecutorContext
19
+ ): AsyncGenerator<ReactNativeStartOutput> {
20
+ const projectRoot =
21
+ context.projectsConfigurations.projects[context.projectName].root;
22
+ ensureNodeModulesSymlink(context.root, projectRoot);
23
+
24
+ try {
25
+ const baseUrl = `http://localhost:${options.port}`;
26
+ const appName = context.projectName;
27
+ logger.info(chalk.cyan(`Packager is ready at ${baseUrl}`));
28
+ logger.info(
29
+ `Use ${chalk.bold(`nx run-android ${appName}`)} or ${chalk.bold(
30
+ `nx run-ios ${appName}`
31
+ )} to run the native app.`
32
+ );
33
+
34
+ await runCliStart(context.root, projectRoot, options);
35
+
36
+ yield {
37
+ baseUrl,
38
+ success: true,
39
+ };
40
+ } finally {
41
+ if (childProcess) {
42
+ childProcess.kill();
43
+ }
44
+ }
45
+ }
46
+
47
+ /*
48
+ * Starts the JS bundler and checks for "running" status before notifying
49
+ * that packager has started.
50
+ */
51
+ export async function runCliStart(
52
+ workspaceRoot: string,
53
+ projectRoot: string,
54
+ options: ReactNativeStartOptions
55
+ ): Promise<void> {
56
+ const result = await isPackagerRunning(options.port);
57
+ if (result === 'running') {
58
+ logger.info('JS server already running.');
59
+ } else if (result === 'unrecognized') {
60
+ logger.warn('JS server not recognized.');
61
+ } else {
62
+ // result === 'not_running'
63
+ logger.info('Starting JS server...');
64
+
65
+ try {
66
+ await startAsync(workspaceRoot, projectRoot, options);
67
+ } catch (error) {
68
+ logger.error(
69
+ `Failed to start the packager server. Error details: ${error.message}`
70
+ );
71
+ throw error;
72
+ }
73
+ }
74
+ }
75
+
76
+ function startAsync(
77
+ workspaceRoot: string,
78
+ projectRoot: string,
79
+ options: ReactNativeStartOptions
80
+ ): Promise<number> {
81
+ return new Promise((resolve, reject) => {
82
+ childProcess = fork(
83
+ join(workspaceRoot, './node_modules/react-native/cli.js'),
84
+ ['start', ...createStartOptions(options)],
85
+ { cwd: join(workspaceRoot, projectRoot), env: process.env }
86
+ );
87
+
88
+ // Ensure the child process is killed when the parent exits
89
+ process.on('exit', () => childProcess.kill());
90
+ process.on('SIGTERM', () => childProcess.kill());
91
+
92
+ childProcess.on('error', (err) => {
93
+ reject(err);
94
+ });
95
+ childProcess.on('exit', (code) => {
96
+ if (code === 0) {
97
+ resolve(code);
98
+ } else {
99
+ reject(code);
100
+ }
101
+ });
102
+ });
103
+ }
104
+
105
+ function createStartOptions(options) {
106
+ return Object.keys(options).reduce((acc, k) => {
107
+ if (k === 'resetCache') {
108
+ if (options[k] === true) {
109
+ acc.push(`--reset-cache`);
110
+ }
111
+ } else if (k === 'interactive') {
112
+ if (options[k] === false) {
113
+ acc.push(`--no-interactive`);
114
+ }
115
+ } else {
116
+ acc.push(`--${k}`, options[k]);
117
+ }
118
+ return acc;
119
+ }, []);
120
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nx/devkit");
4
+ const storybook_impl_1 = require("./storybook.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(storybook_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/storybook/compat.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,qDAAiD;AAEjD,kBAAe,IAAA,0BAAiB,EAAC,wBAAiB,CAAC,CAAC"}