@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,102 @@
1
+ {
2
+ "version": 2,
3
+ "outputCapture": "direct-nodejs",
4
+ "cli": "nx",
5
+ "$id": "NxReactNativeBuildAndroid",
6
+ "$schema": "http://json-schema.org/schema",
7
+ "title": "Release Build for Android",
8
+ "description": "Build target options for Android.",
9
+ "type": "object",
10
+ "presets": [
11
+ {
12
+ "name": "Build Android for current device architecture",
13
+ "keys": ["activeArchOnly"]
14
+ },
15
+ {
16
+ "name": "Build Android without metro cache",
17
+ "keys": ["resetCache"]
18
+ },
19
+ {
20
+ "name": "Build Android with specific tasks",
21
+ "keys": ["tasks"]
22
+ },
23
+ {
24
+ "name": "Build Android with a specific mode",
25
+ "keys": ["mode"]
26
+ }
27
+ ],
28
+ "properties": {
29
+ "apk": {
30
+ "type": "boolean",
31
+ "description": "Generate apk file(s) rather than a bundle (`.aab`).",
32
+ "x-deprecated": "Use `tasks` option instead, e.g. `tasks=['bundleRelease']` to generate aab, `tasks=['assembleDebug']` to generate apk. Will be removed in Nx 17."
33
+ },
34
+ "debug": {
35
+ "type": "boolean",
36
+ "description": "Generate a debug build instead of a release build.",
37
+ "x-deprecated": "Use `mode` option instead, e.g. `mode='debug'`. Deprecated from @react-native-community/cli. Will be removed in Nx 17."
38
+ },
39
+ "gradleTask": {
40
+ "type": "string",
41
+ "description": "Override default gradle task incase of multi build variants",
42
+ "x-deprecated": "Use `tasks` option instead, e.g. `tasks=['assembleDebug']`. Will be removed in Nx 17."
43
+ },
44
+ "mode": {
45
+ "type": "string",
46
+ "description": "Specify your app's build variant",
47
+ "default": "debug",
48
+ "examples": ["debug", "release"],
49
+ "x-priority": "important"
50
+ },
51
+ "packager": {
52
+ "type": "boolean",
53
+ "description": "Launch packager while building",
54
+ "default": true
55
+ },
56
+ "port": {
57
+ "type": "number",
58
+ "description": "The port where the packager server is listening on.",
59
+ "default": 8081
60
+ },
61
+ "tasks": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ },
66
+ "description": "Run custom Gradle tasks. By default it's \"assembleDebug\". Will override passed mode and variant arguments.",
67
+ "examples": [
68
+ "assembleDebug",
69
+ "assembleRelease",
70
+ "bundleDebug",
71
+ "bundleRelease",
72
+ "installDebug",
73
+ "installRelease"
74
+ ]
75
+ },
76
+ "activeArchOnly": {
77
+ "type": "boolean",
78
+ "description": "Build native libraries only for the current device architecture for debug builds.",
79
+ "default": false
80
+ },
81
+ "extraParams": {
82
+ "type": "string",
83
+ "description": "Custom params passed to gradle build command"
84
+ },
85
+ "interactive": {
86
+ "type": "boolean",
87
+ "description": "Explicitly select build type and flavour to use before running a build"
88
+ },
89
+ "sync": {
90
+ "type": "boolean",
91
+ "description": "Syncs npm dependencies to `package.json` (for React Native autolink).",
92
+ "default": true
93
+ },
94
+ "resetCache": {
95
+ "type": "boolean",
96
+ "description": "Resets metro cache.",
97
+ "default": false
98
+ }
99
+ },
100
+ "required": [],
101
+ "examplesFile": "../../../docs/build-android-examples.md"
102
+ }
@@ -0,0 +1,6 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { ReactNativeBuildIosOptions } from './schema';
3
+ export interface ReactNativeBuildIosOutput {
4
+ success: boolean;
5
+ }
6
+ export default function runIosExecutor(options: ReactNativeBuildIosOptions, context: ExecutorContext): AsyncGenerator<ReactNativeBuildIosOutput>;
@@ -0,0 +1,77 @@
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 = [runCliBuildIOS(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 runCliBuildIOS(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', ...createBuildIOSOptions(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
+ function createBuildIOSOptions(options) {
75
+ return (0, get_cli_options_1.getCliOptions)(options, [...nxOptions, ...startOptions], ['buildFolder']);
76
+ }
77
+ //# sourceMappingURL=build-ios.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-ios.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/build-ios/build-ios.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { ExecutorContext } 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 { ReactNativeBuildIosOptions } from './schema';
13
+ import { runCliStart } from '../start/start.impl';
14
+ import { getCliOptions } from '../../utils/get-cli-options';
15
+
16
+ export interface ReactNativeBuildIosOutput {
17
+ success: boolean;
18
+ }
19
+
20
+ let childProcess: ChildProcess;
21
+
22
+ export default async function* runIosExecutor(
23
+ options: ReactNativeBuildIosOptions,
24
+ context: ExecutorContext
25
+ ): AsyncGenerator<ReactNativeBuildIosOutput> {
26
+ if (platform() !== 'darwin') {
27
+ throw new Error(`The run-ios build requires Mac to run`);
28
+ }
29
+ const projectRoot =
30
+ context.projectsConfigurations.projects[context.projectName].root;
31
+ ensureNodeModulesSymlink(context.root, projectRoot);
32
+ if (options.sync) {
33
+ displayNewlyAddedDepsMessage(
34
+ context.projectName,
35
+ await syncDeps(
36
+ context.projectName,
37
+ projectRoot,
38
+ context.root,
39
+ context.projectGraph
40
+ )
41
+ );
42
+ }
43
+
44
+ if (options.install) {
45
+ await podInstall(
46
+ join(context.root, projectRoot, 'ios'),
47
+ options.buildFolder
48
+ );
49
+ }
50
+
51
+ try {
52
+ const tasks = [runCliBuildIOS(context.root, projectRoot, options)];
53
+ if (options.packager && options.mode !== 'Release') {
54
+ tasks.push(
55
+ runCliStart(context.root, projectRoot, {
56
+ port: options.port,
57
+ resetCache: options.resetCache,
58
+ interactive: options.interactive,
59
+ })
60
+ );
61
+ }
62
+
63
+ await Promise.all(tasks);
64
+
65
+ yield { success: true };
66
+ } finally {
67
+ if (childProcess) {
68
+ childProcess.kill();
69
+ }
70
+ }
71
+ }
72
+
73
+ function runCliBuildIOS(
74
+ workspaceRoot: string,
75
+ projectRoot: string,
76
+ options: ReactNativeBuildIosOptions
77
+ ) {
78
+ return new Promise((resolve, reject) => {
79
+ /**
80
+ * Call the react native cli with option `--no-packager`
81
+ * Not passing '--packager' due to cli will launch start command from the project root
82
+ */
83
+ childProcess = fork(
84
+ join(workspaceRoot, './node_modules/react-native/cli.js'),
85
+ ['run-ios', ...createBuildIOSOptions(options), '--no-packager'],
86
+ {
87
+ cwd: join(workspaceRoot, projectRoot),
88
+ env: { ...process.env, RCT_METRO_PORT: options.port.toString() },
89
+ }
90
+ );
91
+
92
+ // Ensure the child process is killed when the parent exits
93
+ process.on('exit', () => childProcess.kill());
94
+ process.on('SIGTERM', () => childProcess.kill());
95
+
96
+ childProcess.on('error', (err) => {
97
+ reject(err);
98
+ });
99
+ childProcess.on('exit', (code) => {
100
+ if (code === 0) {
101
+ resolve(code);
102
+ } else {
103
+ reject(code);
104
+ }
105
+ });
106
+ });
107
+ }
108
+
109
+ const nxOptions = ['sync', 'install', 'packager'];
110
+ const startOptions = ['port', 'resetCache'];
111
+
112
+ function createBuildIOSOptions(options: ReactNativeBuildIosOptions) {
113
+ return getCliOptions<ReactNativeBuildIosOptions>(
114
+ options,
115
+ [...nxOptions, ...startOptions],
116
+ ['buildFolder']
117
+ );
118
+ }
@@ -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 build_ios_impl_1 = require("./build-ios.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(build_ios_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/build-ios/compat.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,qDAAgD;AAEhD,kBAAe,IAAA,0BAAiB,EAAC,wBAAgB,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ // options from https://github.com/react-native-community/cli/blob/main/packages/cli-platform-ios/src/commands/buildIOS/index.ts
2
+
3
+ import { ReactNativeStartOptions } from '../start/schema';
4
+
5
+ export interface ReactNativeBuildIosOptions extends ReactNativeStartOptions {
6
+ // react native options
7
+ simulator?: string;
8
+ mode: string; // default if 'Debug'
9
+ scheme?: string;
10
+ device?: string;
11
+ udid?: string;
12
+ verbose?: boolean;
13
+ port: number; // default is 8081
14
+ xcconfig?: string;
15
+ buildFolder?: string;
16
+ extraParams?: string;
17
+
18
+ // nx options
19
+ packager: boolean; // default is true
20
+ install: boolean; // default is true
21
+ sync: boolean; // default is true
22
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "version": 2,
4
+ "cli": "nx",
5
+ "title": "React Native Build iOS executor",
6
+ "description": "Build iOS app.",
7
+ "type": "object",
8
+ "presets": [
9
+ {
10
+ "name": "Build iOS for a simulator",
11
+ "keys": ["simulator"]
12
+ },
13
+ {
14
+ "name": "Build iOS for a device",
15
+ "keys": ["device"]
16
+ },
17
+ {
18
+ "name": "Build iOS for a device with udid",
19
+ "keys": ["udid"]
20
+ },
21
+ {
22
+ "name": "Run `pod install` before building iOS app",
23
+ "keys": ["install"]
24
+ }
25
+ ],
26
+ "properties": {
27
+ "simulator": {
28
+ "type": "string",
29
+ "description": "Explicitly set simulator to use. Optionally include iOS version between parenthesis at the end to match an exact version: \"iPhone 6 (10.0)\"",
30
+ "examples": [
31
+ "iPhone 14",
32
+ "iPhone 13",
33
+ "iPhone 12",
34
+ "iPhone 11",
35
+ "iPhone X"
36
+ ],
37
+ "x-priority": "important"
38
+ },
39
+ "mode": {
40
+ "type": "string",
41
+ "description": "Explicitly set the scheme configuration to use",
42
+ "default": "Debug",
43
+ "examples": ["Debug", "Release"],
44
+ "x-priority": "important"
45
+ },
46
+ "schema": {
47
+ "type": "string",
48
+ "description": "Explicitly set Xcode scheme to use"
49
+ },
50
+ "device": {
51
+ "type": "string",
52
+ "description": "Explicitly set device to use by name. The value is not required if you have a single device connected."
53
+ },
54
+ "udid": {
55
+ "type": "string",
56
+ "description": "Explicitly set device to use by udid"
57
+ },
58
+ "verbose": {
59
+ "type": "boolean",
60
+ "description": "Do not use xcbeautify or xcpretty even if installed"
61
+ },
62
+ "port": {
63
+ "type": "number",
64
+ "description": "The port where the packager server is listening on.",
65
+ "default": 8081
66
+ },
67
+ "xcconfig": {
68
+ "type": "string",
69
+ "description": "Explicitly set xcconfig to use"
70
+ },
71
+ "buildFolder": {
72
+ "type": "string",
73
+ "description": "Location for iOS build artifacts. Corresponds to Xcode's \"-derivedDataPath\". Relative to ios directory",
74
+ "default": "./build"
75
+ },
76
+ "interactive": {
77
+ "type": "boolean",
78
+ "description": "Explicitly select which scheme and configuration to use before running a build"
79
+ },
80
+ "extraParams": {
81
+ "type": "string",
82
+ "description": "Custom params that will be passed to xcodebuild command."
83
+ },
84
+ "install": {
85
+ "type": "boolean",
86
+ "description": "Runs `pod install` for native modules before building iOS app."
87
+ },
88
+ "sync": {
89
+ "type": "boolean",
90
+ "description": "Syncs npm dependencies to `package.json` (for React Native autolink).",
91
+ "default": true
92
+ },
93
+ "resetCache": {
94
+ "type": "boolean",
95
+ "description": "Resets metro cache.",
96
+ "default": false
97
+ },
98
+ "packager": {
99
+ "type": "boolean",
100
+ "description": "Launch packager while building",
101
+ "default": true
102
+ }
103
+ },
104
+ "required": [],
105
+ "examplesFile": "../../../docs/build-ios-examples.md"
106
+ }
@@ -0,0 +1,6 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { ReactNativeBundleOptions } from './schema';
3
+ export interface ReactNativeBundleOutput {
4
+ success: boolean;
5
+ }
6
+ export default function bundleExecutor(options: ReactNativeBundleOptions, context: ExecutorContext): AsyncGenerator<ReactNativeBundleOutput>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const fileutils_1 = require("@nx/workspace/src/utilities/fileutils");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const path_1 = require("path");
7
+ const child_process_1 = require("child_process");
8
+ const ensure_node_modules_symlink_1 = require("../../utils/ensure-node-modules-symlink");
9
+ let childProcess;
10
+ function bundleExecutor(options, context) {
11
+ return tslib_1.__asyncGenerator(this, arguments, function* bundleExecutor_1() {
12
+ const projectRoot = context.projectsConfigurations.projects[context.projectName].root;
13
+ options.bundleOutput = (0, path_1.join)(context.root, options.bundleOutput);
14
+ (0, fileutils_1.createDirectory)((0, path_1.dirname)(options.bundleOutput));
15
+ (0, ensure_node_modules_symlink_1.ensureNodeModulesSymlink)(context.root, projectRoot);
16
+ try {
17
+ yield tslib_1.__await(runCliBuild(context.root, projectRoot, options));
18
+ yield yield tslib_1.__await({ success: true });
19
+ }
20
+ finally {
21
+ if (childProcess) {
22
+ childProcess.kill();
23
+ }
24
+ }
25
+ });
26
+ }
27
+ exports.default = bundleExecutor;
28
+ function runCliBuild(workspaceRoot, projectRoot, options) {
29
+ return new Promise((resolve, reject) => {
30
+ const cliOptions = createBundleOptions(options);
31
+ childProcess = (0, child_process_1.fork)((0, path_1.join)(workspaceRoot, './node_modules/react-native/cli.js'), ['bundle', ...cliOptions], { cwd: (0, path_1.join)(workspaceRoot, projectRoot), env: process.env });
32
+ // Ensure the child process is killed when the parent exits
33
+ process.on('exit', () => childProcess.kill());
34
+ process.on('SIGTERM', () => childProcess.kill());
35
+ childProcess.on('error', (err) => {
36
+ reject(err);
37
+ });
38
+ childProcess.on('exit', (code) => {
39
+ if (code === 0) {
40
+ resolve(code);
41
+ }
42
+ else {
43
+ reject(code);
44
+ }
45
+ });
46
+ });
47
+ }
48
+ function createBundleOptions(options) {
49
+ return Object.keys(options).reduce((acc, _k) => {
50
+ const v = options[_k];
51
+ const k = (0, devkit_1.names)(_k).fileName;
52
+ if (v === undefined)
53
+ return acc;
54
+ acc.push(`--${k}`, v);
55
+ return acc;
56
+ }, []);
57
+ }
58
+ //# sourceMappingURL=bundle.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.impl.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/bundle/bundle.impl.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,uCAAoD;AACpD,+BAAqC;AACrC,iDAAmD;AAEnD,yFAAmF;AAQnF,IAAI,YAA0B,CAAC;AAE/B,SAA+B,cAAc,CAC3C,OAAiC,EACjC,OAAwB;;QAExB,MAAM,WAAW,GACf,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;QAEpE,OAAO,CAAC,YAAY,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAEhE,IAAA,2BAAe,EAAC,IAAA,cAAO,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/C,IAAA,sDAAwB,EAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI;YACF,sBAAM,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA,CAAC;YACtD,4BAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA,CAAC;SACzB;gBAAS;YACR,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,IAAI,EAAE,CAAC;aACrB;SACF;IACH,CAAC;CAAA;AApBD,iCAoBC;AAED,SAAS,WAAW,CAClB,aAAqB,EACrB,WAAmB,EACnB,OAAiC;IAEjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAChD,YAAY,GAAG,IAAA,oBAAI,EACjB,IAAA,WAAI,EAAC,aAAa,EAAE,oCAAoC,CAAC,EACzD,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,EACzB,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,mBAAmB,CAAC,OAAiC;IAC5D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { createDirectory } from '@nx/workspace/src/utilities/fileutils';
2
+ import { names, ExecutorContext } from '@nx/devkit';
3
+ import { dirname, join } from 'path';
4
+ import { ChildProcess, fork } from 'child_process';
5
+
6
+ import { ensureNodeModulesSymlink } from '../../utils/ensure-node-modules-symlink';
7
+
8
+ import { ReactNativeBundleOptions } from './schema';
9
+
10
+ export interface ReactNativeBundleOutput {
11
+ success: boolean;
12
+ }
13
+
14
+ let childProcess: ChildProcess;
15
+
16
+ export default async function* bundleExecutor(
17
+ options: ReactNativeBundleOptions,
18
+ context: ExecutorContext
19
+ ): AsyncGenerator<ReactNativeBundleOutput> {
20
+ const projectRoot =
21
+ context.projectsConfigurations.projects[context.projectName].root;
22
+
23
+ options.bundleOutput = join(context.root, options.bundleOutput);
24
+
25
+ createDirectory(dirname(options.bundleOutput));
26
+ ensureNodeModulesSymlink(context.root, projectRoot);
27
+
28
+ try {
29
+ await runCliBuild(context.root, projectRoot, options);
30
+ yield { success: true };
31
+ } finally {
32
+ if (childProcess) {
33
+ childProcess.kill();
34
+ }
35
+ }
36
+ }
37
+
38
+ function runCliBuild(
39
+ workspaceRoot: string,
40
+ projectRoot: string,
41
+ options: ReactNativeBundleOptions
42
+ ) {
43
+ return new Promise((resolve, reject) => {
44
+ const cliOptions = createBundleOptions(options);
45
+ childProcess = fork(
46
+ join(workspaceRoot, './node_modules/react-native/cli.js'),
47
+ ['bundle', ...cliOptions],
48
+ { cwd: join(workspaceRoot, projectRoot), env: process.env }
49
+ );
50
+
51
+ // Ensure the child process is killed when the parent exits
52
+ process.on('exit', () => childProcess.kill());
53
+ process.on('SIGTERM', () => childProcess.kill());
54
+
55
+ childProcess.on('error', (err) => {
56
+ reject(err);
57
+ });
58
+ childProcess.on('exit', (code) => {
59
+ if (code === 0) {
60
+ resolve(code);
61
+ } else {
62
+ reject(code);
63
+ }
64
+ });
65
+ });
66
+ }
67
+
68
+ function createBundleOptions(options: ReactNativeBundleOptions) {
69
+ return Object.keys(options).reduce((acc, _k) => {
70
+ const v = options[_k];
71
+ const k = names(_k).fileName;
72
+ if (v === undefined) return acc;
73
+ acc.push(`--${k}`, v);
74
+ return acc;
75
+ }, []);
76
+ }
@@ -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 bundle_impl_1 = require("./bundle.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(bundle_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/react-native/src/executors/bundle/compat.ts"],"names":[],"mappings":";;AAAA,uCAA+C;AAE/C,+CAA2C;AAE3C,kBAAe,IAAA,0BAAiB,EAAC,qBAAc,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ // options form https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
2
+ export interface ReactNativeBundleOptions {
3
+ entryFile: string;
4
+ platform: string;
5
+ transfrom?: string;
6
+ dev: boolean; // default is true
7
+ minify?: boolean; // default is false, if dev is false, then minify will become true
8
+ bundleOutput: string;
9
+ maxWorkers: number;
10
+ sourcemapOutput?: string;
11
+ sourcemapSourcesRoot?: string;
12
+ sourcemapUseAbsolutePath: boolean; // default is false
13
+ assetDest?: string;
14
+ resetCache: boolean; // default is false
15
+ readGlobalCache?: boolean; // default is false
16
+ }