@vxrn/vite-plugin-metro 2.0.0-beta.33.1 → 2.0.0-beta.362.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 (338) hide show
  1. package/dist/cjs/babel-plugins/import-meta-env-plugin.cjs +84 -102
  2. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.cjs +108 -0
  3. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +90 -107
  4. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
  5. package/dist/cjs/env/platformEnv.cjs +57 -57
  6. package/dist/cjs/env/platformEnv.native.cjs +95 -0
  7. package/dist/cjs/env/platformEnv.native.js +74 -75
  8. package/dist/cjs/env/platformEnv.native.js.map +1 -1
  9. package/dist/cjs/index.cjs +21 -25
  10. package/dist/cjs/index.native.cjs +39 -0
  11. package/dist/cjs/index.native.js +21 -24
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +54 -51
  14. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.cjs +108 -0
  15. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +95 -94
  16. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  17. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +303 -257
  18. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.cjs +361 -0
  19. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +327 -267
  20. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  21. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.cjs +38 -44
  22. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.cjs +53 -0
  23. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +39 -44
  24. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
  25. package/dist/cjs/metro-config/types.cjs +9 -11
  26. package/dist/cjs/metro-config/types.native.cjs +18 -0
  27. package/dist/cjs/metro-config/types.native.js +9 -10
  28. package/dist/cjs/metro-config/types.native.js.map +1 -1
  29. package/dist/cjs/plugins/metroPlugin.cjs +210 -248
  30. package/dist/cjs/plugins/metroPlugin.native.cjs +242 -0
  31. package/dist/cjs/plugins/metroPlugin.native.js +216 -253
  32. package/dist/cjs/plugins/metroPlugin.native.js.map +1 -1
  33. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.cjs +56 -65
  34. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.cjs +121 -0
  35. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js +94 -106
  36. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
  37. package/dist/cjs/rn-commands/bundle/assetPathUtils.cjs +51 -55
  38. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.cjs +72 -0
  39. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js +51 -54
  40. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
  41. package/dist/cjs/rn-commands/bundle/buildBundle.cjs +37 -46
  42. package/dist/cjs/rn-commands/bundle/buildBundle.native.cjs +57 -0
  43. package/dist/cjs/rn-commands/bundle/buildBundle.native.js +39 -47
  44. package/dist/cjs/rn-commands/bundle/buildBundle.native.js.map +1 -1
  45. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.cjs +57 -68
  46. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.cjs +81 -0
  47. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js +59 -70
  48. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
  49. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.cjs +37 -39
  50. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.cjs +70 -0
  51. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js +56 -59
  52. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
  53. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.cjs +20 -29
  54. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.cjs +39 -0
  55. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js +20 -28
  56. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
  57. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.cjs +20 -33
  58. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.cjs +38 -0
  59. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js +20 -32
  60. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
  61. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.cjs +23 -32
  62. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.cjs +38 -0
  63. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js +23 -31
  64. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
  65. package/dist/cjs/rn-commands/bundle/index.cjs +15 -17
  66. package/dist/cjs/rn-commands/bundle/index.native.cjs +30 -0
  67. package/dist/cjs/rn-commands/bundle/index.native.js +15 -16
  68. package/dist/cjs/rn-commands/bundle/index.native.js.map +1 -1
  69. package/dist/cjs/rn-commands/bundle/saveAssets.cjs +85 -96
  70. package/dist/cjs/rn-commands/bundle/saveAssets.native.cjs +129 -0
  71. package/dist/cjs/rn-commands/bundle/saveAssets.native.js +102 -114
  72. package/dist/cjs/rn-commands/bundle/saveAssets.native.js.map +1 -1
  73. package/dist/cjs/rn-commands/bundle/types.cjs +9 -11
  74. package/dist/cjs/rn-commands/bundle/types.native.cjs +18 -0
  75. package/dist/cjs/rn-commands/bundle/types.native.js +9 -10
  76. package/dist/cjs/rn-commands/bundle/types.native.js.map +1 -1
  77. package/dist/cjs/rn-commands/index.cjs +17 -26
  78. package/dist/cjs/rn-commands/index.native.cjs +32 -0
  79. package/dist/cjs/rn-commands/index.native.js +17 -25
  80. package/dist/cjs/rn-commands/index.native.js.map +1 -1
  81. package/dist/cjs/transformer/babel-core.cjs +16 -18
  82. package/dist/cjs/transformer/babel-core.native.cjs +30 -0
  83. package/dist/cjs/transformer/babel-core.native.js +16 -17
  84. package/dist/cjs/transformer/babel-core.native.js.map +1 -1
  85. package/dist/cjs/transformer/babel-transformer.cjs +155 -151
  86. package/dist/cjs/transformer/babel-transformer.native.cjs +197 -0
  87. package/dist/cjs/transformer/babel-transformer.native.js +171 -158
  88. package/dist/cjs/transformer/babel-transformer.native.js.map +1 -1
  89. package/dist/cjs/transformer/expoVirtualEnv.cjs +92 -0
  90. package/dist/cjs/transformer/expoVirtualEnv.native.cjs +113 -0
  91. package/dist/cjs/transformer/expoVirtualEnv.native.js +115 -0
  92. package/dist/cjs/transformer/expoVirtualEnv.native.js.map +1 -0
  93. package/dist/cjs/transformer/loadBabelConfig.cjs +44 -49
  94. package/dist/cjs/transformer/loadBabelConfig.native.cjs +64 -0
  95. package/dist/cjs/transformer/loadBabelConfig.native.js +48 -52
  96. package/dist/cjs/transformer/loadBabelConfig.native.js.map +1 -1
  97. package/dist/cjs/transformer/metroNativeWorker.cjs +1436 -1489
  98. package/dist/cjs/transformer/metroNativeWorker.native.cjs +2525 -0
  99. package/dist/cjs/transformer/metroNativeWorker.native.js +2414 -2561
  100. package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
  101. package/dist/cjs/transformer/transformSync.cjs +48 -64
  102. package/dist/cjs/transformer/transformSync.native.cjs +74 -0
  103. package/dist/cjs/transformer/transformSync.native.js +50 -65
  104. package/dist/cjs/transformer/transformSync.native.js.map +1 -1
  105. package/dist/cjs/transformer/types.cjs +9 -11
  106. package/dist/cjs/transformer/types.native.cjs +18 -0
  107. package/dist/cjs/transformer/types.native.js +9 -10
  108. package/dist/cjs/transformer/types.native.js.map +1 -1
  109. package/dist/cjs/utils/exit.cjs +141 -139
  110. package/dist/cjs/utils/exit.native.cjs +266 -0
  111. package/dist/cjs/utils/exit.native.js +228 -241
  112. package/dist/cjs/utils/exit.native.js.map +1 -1
  113. package/dist/cjs/utils/getTerminalReporter.cjs +35 -47
  114. package/dist/cjs/utils/getTerminalReporter.native.cjs +57 -0
  115. package/dist/cjs/utils/getTerminalReporter.native.js +38 -49
  116. package/dist/cjs/utils/getTerminalReporter.native.js.map +1 -1
  117. package/dist/cjs/utils/metroCacheManager.cjs +84 -99
  118. package/dist/cjs/utils/metroCacheManager.native.cjs +130 -0
  119. package/dist/cjs/utils/metroCacheManager.native.js +102 -118
  120. package/dist/cjs/utils/metroCacheManager.native.js.map +1 -1
  121. package/dist/cjs/utils/projectImport.cjs +40 -51
  122. package/dist/cjs/utils/projectImport.native.cjs +64 -0
  123. package/dist/cjs/utils/projectImport.native.js +41 -58
  124. package/dist/cjs/utils/projectImport.native.js.map +1 -1
  125. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +72 -86
  126. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
  127. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +78 -92
  128. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
  129. package/dist/esm/env/platformEnv.mjs +42 -39
  130. package/dist/esm/env/platformEnv.mjs.map +1 -1
  131. package/dist/esm/env/platformEnv.native.js +59 -58
  132. package/dist/esm/env/platformEnv.native.js.map +1 -1
  133. package/dist/esm/index.js +3 -4
  134. package/dist/esm/index.mjs +3 -4
  135. package/dist/esm/index.native.js +3 -4
  136. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +42 -33
  137. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
  138. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +83 -77
  139. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
  140. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +287 -232
  141. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
  142. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +311 -243
  143. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
  144. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +26 -26
  145. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -1
  146. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +27 -27
  147. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
  148. package/dist/esm/metro-config/types.mjs +0 -2
  149. package/dist/esm/metro-config/types.native.js +0 -2
  150. package/dist/esm/plugins/metroPlugin.mjs +195 -222
  151. package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
  152. package/dist/esm/plugins/metroPlugin.native.js +201 -228
  153. package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
  154. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs +38 -38
  155. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs.map +1 -1
  156. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js +76 -80
  157. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -1
  158. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs +38 -37
  159. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs.map +1 -1
  160. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js +38 -37
  161. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js.map +1 -1
  162. package/dist/esm/rn-commands/bundle/buildBundle.mjs +25 -28
  163. package/dist/esm/rn-commands/bundle/buildBundle.mjs.map +1 -1
  164. package/dist/esm/rn-commands/bundle/buildBundle.native.js +27 -30
  165. package/dist/esm/rn-commands/bundle/buildBundle.native.js.map +1 -1
  166. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs +43 -43
  167. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs.map +1 -1
  168. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js +45 -46
  169. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -1
  170. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs +24 -21
  171. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs.map +1 -1
  172. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js +43 -42
  173. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -1
  174. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs +5 -3
  175. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs.map +1 -1
  176. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js +5 -3
  177. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -1
  178. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs +5 -7
  179. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs.map +1 -1
  180. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js +5 -7
  181. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -1
  182. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs +11 -14
  183. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs.map +1 -1
  184. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js +11 -14
  185. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -1
  186. package/dist/esm/rn-commands/bundle/index.mjs +2 -2
  187. package/dist/esm/rn-commands/bundle/index.native.js +2 -2
  188. package/dist/esm/rn-commands/bundle/saveAssets.mjs +70 -70
  189. package/dist/esm/rn-commands/bundle/saveAssets.mjs.map +1 -1
  190. package/dist/esm/rn-commands/bundle/saveAssets.native.js +87 -89
  191. package/dist/esm/rn-commands/bundle/saveAssets.native.js.map +1 -1
  192. package/dist/esm/rn-commands/bundle/types.mjs +0 -2
  193. package/dist/esm/rn-commands/bundle/types.native.js +0 -2
  194. package/dist/esm/rn-commands/index.mjs +2 -2
  195. package/dist/esm/rn-commands/index.native.js +2 -2
  196. package/dist/esm/transformer/babel-core.mjs +2 -2
  197. package/dist/esm/transformer/babel-core.native.js +2 -2
  198. package/dist/esm/transformer/babel-transformer.mjs +139 -132
  199. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  200. package/dist/esm/transformer/babel-transformer.native.js +152 -142
  201. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  202. package/dist/esm/transformer/expoVirtualEnv.mjs +67 -0
  203. package/dist/esm/transformer/expoVirtualEnv.mjs.map +1 -0
  204. package/dist/esm/transformer/expoVirtualEnv.native.js +86 -0
  205. package/dist/esm/transformer/expoVirtualEnv.native.js.map +1 -0
  206. package/dist/esm/transformer/loadBabelConfig.mjs +29 -23
  207. package/dist/esm/transformer/loadBabelConfig.mjs.map +1 -1
  208. package/dist/esm/transformer/loadBabelConfig.native.js +33 -27
  209. package/dist/esm/transformer/loadBabelConfig.native.js.map +1 -1
  210. package/dist/esm/transformer/metroNativeWorker.mjs +1399 -1443
  211. package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
  212. package/dist/esm/transformer/metroNativeWorker.native.js +2377 -2516
  213. package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
  214. package/dist/esm/transformer/transformSync.mjs +33 -38
  215. package/dist/esm/transformer/transformSync.mjs.map +1 -1
  216. package/dist/esm/transformer/transformSync.native.js +35 -40
  217. package/dist/esm/transformer/transformSync.native.js.map +1 -1
  218. package/dist/esm/transformer/types.mjs +0 -2
  219. package/dist/esm/transformer/types.native.js +0 -2
  220. package/dist/esm/utils/exit.mjs +123 -112
  221. package/dist/esm/utils/exit.mjs.map +1 -1
  222. package/dist/esm/utils/exit.native.js +210 -215
  223. package/dist/esm/utils/exit.native.js.map +1 -1
  224. package/dist/esm/utils/getTerminalReporter.mjs +20 -21
  225. package/dist/esm/utils/getTerminalReporter.mjs.map +1 -1
  226. package/dist/esm/utils/getTerminalReporter.native.js +23 -24
  227. package/dist/esm/utils/getTerminalReporter.native.js.map +1 -1
  228. package/dist/esm/utils/metroCacheManager.mjs +73 -82
  229. package/dist/esm/utils/metroCacheManager.mjs.map +1 -1
  230. package/dist/esm/utils/metroCacheManager.native.js +91 -102
  231. package/dist/esm/utils/metroCacheManager.native.js.map +1 -1
  232. package/dist/esm/utils/projectImport.mjs +23 -25
  233. package/dist/esm/utils/projectImport.mjs.map +1 -1
  234. package/dist/esm/utils/projectImport.native.js +24 -33
  235. package/dist/esm/utils/projectImport.native.js.map +1 -1
  236. package/package.json +16 -18
  237. package/src/babel-plugins/import-meta-env-plugin.ts +1 -1
  238. package/src/env/platformEnv.test.ts +44 -0
  239. package/src/env/platformEnv.ts +6 -3
  240. package/src/index.ts +0 -2
  241. package/src/metro-config/getMetroBabelConfigFromViteConfig.test.ts +52 -0
  242. package/src/metro-config/getMetroBabelConfigFromViteConfig.ts +8 -7
  243. package/src/metro-config/getMetroConfigFromViteConfig.test.ts +263 -0
  244. package/src/metro-config/getMetroConfigFromViteConfig.ts +226 -109
  245. package/src/metro-config/glbAssets.test.ts +57 -0
  246. package/src/plugins/metroPlugin.ts +3 -6
  247. package/src/transformer/babel-transformer.test.ts +118 -0
  248. package/src/transformer/babel-transformer.ts +102 -15
  249. package/src/transformer/expoVirtualEnv.integration.test.ts +106 -0
  250. package/src/transformer/expoVirtualEnv.test.ts +72 -0
  251. package/src/transformer/expoVirtualEnv.ts +115 -0
  252. package/src/transformer/loadBabelConfig.ts +3 -1
  253. package/src/transformer/metroNativeWorker.test.ts +425 -36
  254. package/src/transformer/metroNativeWorker.ts +72 -74
  255. package/src/transformer/swiftPackageTransform.test.ts +95 -0
  256. package/src/transformer/transformSync.test.ts +22 -0
  257. package/src/transformer/transformSync.ts +4 -4
  258. package/src/utils/exit.ts +2 -2
  259. package/src/utils/getTerminalReporter.ts +1 -1
  260. package/src/utils/projectImport.ts +2 -2
  261. package/types/babel-plugins/import-meta-env-plugin.d.ts +1 -1
  262. package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
  263. package/types/env/platformEnv.d.ts +2 -1
  264. package/types/env/platformEnv.d.ts.map +1 -1
  265. package/types/index.d.ts +0 -2
  266. package/types/index.d.ts.map +1 -1
  267. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts +1 -1
  268. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts.map +1 -1
  269. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +2 -2
  270. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
  271. package/types/plugins/metroPlugin.d.ts +2 -4
  272. package/types/plugins/metroPlugin.d.ts.map +1 -1
  273. package/types/rn-commands/bundle/assetPathUtils.d.ts.map +1 -1
  274. package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts.map +1 -1
  275. package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts.map +1 -1
  276. package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts.map +1 -1
  277. package/types/rn-commands/bundle/saveAssets.d.ts.map +1 -1
  278. package/types/transformer/babel-transformer.d.ts +10 -1
  279. package/types/transformer/babel-transformer.d.ts.map +1 -1
  280. package/types/transformer/expoVirtualEnv.d.ts +8 -0
  281. package/types/transformer/expoVirtualEnv.d.ts.map +1 -0
  282. package/types/transformer/loadBabelConfig.d.ts.map +1 -1
  283. package/types/transformer/metroNativeWorker.d.ts +7 -8
  284. package/types/transformer/metroNativeWorker.d.ts.map +1 -1
  285. package/types/utils/projectImport.d.ts +2 -2
  286. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.cjs +0 -71
  287. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js +0 -82
  288. package/dist/cjs/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  289. package/dist/cjs/transformer/metroNativeWorker.test.cjs +0 -897
  290. package/dist/cjs/transformer/metroNativeWorker.test.native.js +0 -1010
  291. package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +0 -1
  292. package/dist/cjs/transformer/transformSync.test.cjs +0 -36
  293. package/dist/cjs/transformer/transformSync.test.native.js +0 -49
  294. package/dist/cjs/transformer/transformSync.test.native.js.map +0 -1
  295. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.cjs +0 -39
  296. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -42
  297. package/dist/cjs/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  298. package/dist/esm/index.js.map +0 -1
  299. package/dist/esm/index.mjs.map +0 -1
  300. package/dist/esm/index.native.js.map +0 -1
  301. package/dist/esm/metro-config/types.mjs.map +0 -1
  302. package/dist/esm/metro-config/types.native.js.map +0 -1
  303. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs +0 -46
  304. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
  305. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js +0 -54
  306. package/dist/esm/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
  307. package/dist/esm/rn-commands/bundle/index.mjs.map +0 -1
  308. package/dist/esm/rn-commands/bundle/index.native.js.map +0 -1
  309. package/dist/esm/rn-commands/bundle/types.mjs.map +0 -1
  310. package/dist/esm/rn-commands/bundle/types.native.js.map +0 -1
  311. package/dist/esm/rn-commands/index.mjs.map +0 -1
  312. package/dist/esm/rn-commands/index.native.js.map +0 -1
  313. package/dist/esm/transformer/babel-core.mjs.map +0 -1
  314. package/dist/esm/transformer/babel-core.native.js.map +0 -1
  315. package/dist/esm/transformer/metroNativeWorker.test.mjs +0 -861
  316. package/dist/esm/transformer/metroNativeWorker.test.mjs.map +0 -1
  317. package/dist/esm/transformer/metroNativeWorker.test.native.js +0 -972
  318. package/dist/esm/transformer/metroNativeWorker.test.native.js.map +0 -1
  319. package/dist/esm/transformer/transformSync.test.mjs +0 -37
  320. package/dist/esm/transformer/transformSync.test.mjs.map +0 -1
  321. package/dist/esm/transformer/transformSync.test.native.js +0 -47
  322. package/dist/esm/transformer/transformSync.test.native.js.map +0 -1
  323. package/dist/esm/transformer/types.mjs.map +0 -1
  324. package/dist/esm/transformer/types.native.js.map +0 -1
  325. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs +0 -14
  326. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.mjs.map +0 -1
  327. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js +0 -14
  328. package/dist/esm/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.native.js.map +0 -1
  329. package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -88
  330. package/src/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.ts +0 -28
  331. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -14
  332. package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
  333. package/types/transformer/metroNativeWorker.test.d.ts +0 -2
  334. package/types/transformer/metroNativeWorker.test.d.ts.map +0 -1
  335. package/types/transformer/transformSync.test.d.ts +0 -2
  336. package/types/transformer/transformSync.test.d.ts.map +0 -1
  337. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts +0 -5
  338. package/types/utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName.d.ts.map +0 -1
@@ -5,20 +5,28 @@
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
- // A fork of the upstream babel-transformer that uses Expo-specific babel defaults
9
- // and adds support for web and Node.js environments via `isServer` on the Babel caller.
8
+ // a fork of the upstream babel-transformer that adds support for web and node
9
+ // environments via `isServer` on the babel caller.
10
10
  // See:
11
11
  // * https://github.com/facebook/metro/blob/main/packages/metro-babel-transformer/src/index.js
12
- // * https://github.com/expo/expo/blob/main/packages/%40expo/metro-config/src/babel-transformer.ts
13
- import type { BabelTransformer, BabelTransformerArgs } from 'metro-babel-transformer'
12
+ import type {
13
+ BabelTransformer,
14
+ BabelTransformerArgs,
15
+ BabelTransformerCacheKeyOptions,
16
+ } from 'metro-babel-transformer'
14
17
  import assert from 'node:assert'
18
+ import { createHash } from 'node:crypto'
19
+ import { readFileSync } from 'node:fs'
20
+ import { createRequire } from 'node:module'
21
+ import path from 'node:path'
15
22
 
16
23
  import type { TransformOptions } from './babel-core'
24
+ import { substituteExpoVirtualEnvSource } from './expoVirtualEnv'
17
25
  import { loadBabelConfig } from './loadBabelConfig'
18
26
  import { transformSync } from './transformSync'
19
27
  import type { ViteCustomTransformOptions } from './types'
20
28
 
21
- export type ExpoBabelCaller = TransformOptions['caller'] & {
29
+ export type MetroBabelCaller = TransformOptions['caller'] & {
22
30
  supportsReactCompiler?: boolean
23
31
  isReactServer?: boolean
24
32
  isHMREnabled?: boolean
@@ -37,7 +45,7 @@ export type ExpoBabelCaller = TransformOptions['caller'] & {
37
45
  }
38
46
 
39
47
  const debug = require('debug')(
40
- 'expo:metro-config:babel-transformer'
48
+ 'vxrn:metro-config:babel-transformer'
41
49
  ) as typeof console.log
42
50
 
43
51
  function isCustomTruthy(value: any): boolean {
@@ -67,7 +75,7 @@ function getBabelCaller({
67
75
  oneViteMetroBabelConfig,
68
76
  }: Pick<BabelTransformerArgs, 'filename' | 'options'> & {
69
77
  oneViteMetroBabelConfig: boolean
70
- }): ExpoBabelCaller {
78
+ }): MetroBabelCaller {
71
79
  const isNodeModule = filename.includes('node_modules')
72
80
  const isReactServer = options.customTransformOptions?.environment === 'react-server'
73
81
  const isGenericServer = options.customTransformOptions?.environment === 'node'
@@ -80,7 +88,7 @@ function getBabelCaller({
80
88
 
81
89
  if (routerRoot == null) {
82
90
  memoizeWarning(
83
- 'Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory. This can occur if you bundle without Expo CLI or expo/metro-config.'
91
+ 'Warning: Missing transform.routerRoot option in Metro bundling request, falling back to `app` as routes directory.'
84
92
  )
85
93
  }
86
94
 
@@ -119,7 +127,7 @@ function getBabelCaller({
119
127
  // target environment.
120
128
  engine: stringOrUndefined(options.customTransformOptions?.engine),
121
129
 
122
- // Provide the project root for accurately reading the Expo config.
130
+ // provide the project root for reading the app babel config
123
131
  projectRoot: options.projectRoot,
124
132
  oneViteMetroBabelConfig,
125
133
 
@@ -146,17 +154,47 @@ function stringOrUndefined(value: unknown): string | undefined {
146
154
 
147
155
  const transform: BabelTransformer['transform'] = ({
148
156
  filename,
149
- src,
157
+ src: originalSrc,
150
158
  options,
151
- // `plugins` is used for `functionMapBabelPlugin` from `metro-source-map`. Could make sense to move this to `babel-preset-expo` too.
159
+ // `plugins` is used for `functionMapBabelPlugin` from `metro-source-map`.
152
160
  plugins,
153
161
  }: BabelTransformerArgs): ReturnType<BabelTransformer['transform']> => {
162
+ if (/\.(swift|kt)$/.test(filename)) {
163
+ const requireFromProject = createRequire(
164
+ path.resolve(options.projectRoot, 'package.json')
165
+ )
166
+ const oneTransforms = requireFromProject(
167
+ 'one/native-transforms'
168
+ ) as typeof import('one/native-transforms') & {
169
+ renderNativeSourceModule: (
170
+ id: string,
171
+ platform: string,
172
+ root: string
173
+ ) => { code: string; watchFiles: string[] }
174
+ }
175
+ originalSrc = oneTransforms.renderNativeSourceModule(
176
+ path.isAbsolute(filename) ? filename : path.resolve(options.projectRoot, filename),
177
+ options.platform ?? '',
178
+ options.projectRoot
179
+ ).code
180
+ }
181
+ // narrow optional Expo compatibility (expo/virtual/env.js and .env files
182
+ // only), shared with the native worker. no-Expo apps pass through byte
183
+ // for byte without resolving any Expo module.
184
+ const src = substituteExpoVirtualEnvSource({
185
+ filename,
186
+ src: originalSrc,
187
+ projectRoot: options.projectRoot,
188
+ dev: options.dev,
189
+ environment: options.customTransformOptions?.environment,
190
+ })
191
+
154
192
  const viteCustomTransformOptions = options.customTransformOptions?.vite
155
193
 
156
194
  const customOptionsFromVite: ViteCustomTransformOptions = (() => {
157
195
  const c: any = viteCustomTransformOptions
158
- // Standalone Metro invocations (expo export, eas update) don't set
159
- // customTransformOptions.vite — the plugins flow entirely through the
196
+ // standalone Metro invocations don't set
197
+ // customTransformOptions.vite. the plugins flow entirely through the
160
198
  // project's babel.config.cjs in that case. Tolerate the missing field
161
199
  // rather than throwing so a single Metro config can serve both the
162
200
  // Vite-driven and standalone paths.
@@ -210,8 +248,8 @@ const transform: BabelTransformer['transform'] = ({
210
248
  // all (most) of the transforms in their local Babel config.
211
249
  // This also helps us keep the transform layers small and focused on a single task. We can also use this to
212
250
  // ensure the Babel config caching is more accurate.
213
- // Additionally, by moving everything Babel-related to the Babel preset, it makes it easier for users to reason
214
- // about the requirements of an Expo project, making it easier to migrate to other transpilers in the future.
251
+ // moving everything babel-related to the preset also keeps the transform
252
+ // requirements explicit for users who opt into babel.
215
253
  caller: getBabelCaller({
216
254
  filename,
217
255
  options,
@@ -238,8 +276,57 @@ const transform: BabelTransformer['transform'] = ({
238
276
  }
239
277
  }
240
278
 
279
+ export function getCacheKey(options?: BabelTransformerCacheKeyOptions): string {
280
+ const hash = createHash('sha256')
281
+ hash.update('vxrn-metro-babel-transformer-v2')
282
+
283
+ const projectRoot = options?.projectRoot
284
+ if (!projectRoot) {
285
+ return hash.digest('hex')
286
+ }
287
+
288
+ hash.update(projectRoot)
289
+
290
+ for (const file of [
291
+ '.env',
292
+ '.env.development',
293
+ '.env.local',
294
+ '.env.development.local',
295
+ ]) {
296
+ const filename = path.join(projectRoot, file)
297
+ hash.update(filename)
298
+ try {
299
+ hash.update(readFileSync(filename))
300
+ } catch (error) {
301
+ if (
302
+ typeof error === 'object' &&
303
+ error !== null &&
304
+ 'code' in error &&
305
+ error.code === 'ENOENT'
306
+ ) {
307
+ continue
308
+ }
309
+ throw error
310
+ }
311
+ }
312
+
313
+ hash.update(
314
+ JSON.stringify(
315
+ Object.entries(process.env)
316
+ .filter(
317
+ ([key]) =>
318
+ key.startsWith('ONE_PUBLIC_') || key.startsWith('EXPO_PUBLIC_')
319
+ )
320
+ .sort(([left], [right]) => left.localeCompare(right))
321
+ )
322
+ )
323
+
324
+ return hash.digest('hex')
325
+ }
326
+
241
327
  const babelTransformer: BabelTransformer = {
242
328
  transform,
329
+ getCacheKey,
243
330
  }
244
331
 
245
332
  module.exports = babelTransformer
@@ -0,0 +1,106 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { afterAll, describe, expect, it } from "vitest";
5
+
6
+ const workspaceRoot = path.resolve(__dirname, "../../../..");
7
+ const metroBin = path.join(workspaceRoot, "node_modules/.bin/metro");
8
+ const fixtureDirs: string[] = [];
9
+
10
+ afterAll(() => {
11
+ for (const fixtureDir of fixtureDirs) {
12
+ rmSync(fixtureDir, { recursive: true, force: true });
13
+ }
14
+ });
15
+
16
+ describe("optional Expo env through One Metro", () => {
17
+ it("executes babel-preset-expo env references in development and production", () => {
18
+ const fixtureDir = mkdtempSync(path.join(workspaceRoot, "tmp-expo-env-"));
19
+ fixtureDirs.push(fixtureDir);
20
+
21
+ writeFileSync(
22
+ path.join(fixtureDir, "package.json"),
23
+ JSON.stringify({ name: "one-expo-env-fixture", private: true }),
24
+ );
25
+ writeFileSync(path.join(fixtureDir, ".watchmanconfig"), "{}\n");
26
+ writeFileSync(
27
+ path.join(fixtureDir, "tsconfig.json"),
28
+ JSON.stringify({ compilerOptions: { baseUrl: ".", paths: {} } }),
29
+ );
30
+ writeFileSync(
31
+ path.join(fixtureDir, "babel.config.cjs"),
32
+ `module.exports = { presets: ['babel-preset-expo'] }\n`,
33
+ );
34
+ writeFileSync(
35
+ path.join(fixtureDir, "metro.config.cjs"),
36
+ `const { withOne } = require('one/metro-config')
37
+ module.exports = withOne(__dirname, { loadViteConfig: false })
38
+ `,
39
+ );
40
+ writeFileSync(
41
+ path.join(fixtureDir, ".env"),
42
+ "EXPO_PUBLIC_SENTINEL=development-dotenv-value\nPRIVATE_SENTINEL=private-value\n",
43
+ );
44
+ writeFileSync(
45
+ path.join(fixtureDir, "index.js"),
46
+ `console.log('observed:' + process.env.EXPO_PUBLIC_SENTINEL)\n`,
47
+ );
48
+
49
+ const bundle = (dev: boolean, sentinel: string, resetCache = false) => {
50
+ const bundlePath = path.join(
51
+ fixtureDir,
52
+ `bundle.${dev ? "dev" : "prod"}.js`,
53
+ );
54
+ execFileSync(
55
+ metroBin,
56
+ [
57
+ "build",
58
+ "index.js",
59
+ "--config",
60
+ "metro.config.cjs",
61
+ "--platform",
62
+ "ios",
63
+ "--dev",
64
+ String(dev),
65
+ "--minify",
66
+ "false",
67
+ "--out",
68
+ bundlePath,
69
+ ...(resetCache ? ["--reset-cache"] : []),
70
+ ],
71
+ {
72
+ cwd: fixtureDir,
73
+ encoding: "utf8",
74
+ env: { ...process.env, EXPO_PUBLIC_SENTINEL: sentinel },
75
+ timeout: 180_000,
76
+ },
77
+ );
78
+ return {
79
+ code: readFileSync(bundlePath, "utf8"),
80
+ output: execFileSync(process.execPath, [bundlePath], {
81
+ cwd: fixtureDir,
82
+ encoding: "utf8",
83
+ }),
84
+ };
85
+ };
86
+
87
+ const development = bundle(true, "development-process-value", true);
88
+ expect(development.code).toContain("expo/virtual/env.js");
89
+ expect(development.output).toContain("observed:development-dotenv-value");
90
+ expect(development.code).not.toContain("private-value");
91
+
92
+ writeFileSync(
93
+ path.join(fixtureDir, ".env"),
94
+ "EXPO_PUBLIC_SENTINEL=updated-dotenv-value\nPRIVATE_SENTINEL=updated-private-value\n",
95
+ );
96
+ const updatedDevelopment = bundle(true, "updated-process-value");
97
+ expect(updatedDevelopment.output).toContain(
98
+ "observed:updated-dotenv-value",
99
+ );
100
+ expect(updatedDevelopment.code).not.toContain("updated-private-value");
101
+
102
+ const production = bundle(false, "production-process-value");
103
+ expect(production.code).not.toContain("expo/virtual/env.js");
104
+ expect(production.output).toContain("observed:production-process-value");
105
+ }, 180_000);
106
+ });
@@ -0,0 +1,72 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import { substituteExpoVirtualEnvSource } from './expoVirtualEnv'
4
+
5
+ const virtualFilename = '/proj/node_modules/expo/virtual/env.js'
6
+ const virtualSource = 'export const env = process.env;'
7
+
8
+ describe('substituteExpoVirtualEnvSource', () => {
9
+ it('generates the require.context import in dev', () => {
10
+ const out = substituteExpoVirtualEnvSource({
11
+ filename: virtualFilename,
12
+ src: virtualSource,
13
+ projectRoot: '/proj',
14
+ dev: true,
15
+ environment: 'client',
16
+ })
17
+ expect(out).toContain('require.context("../../..",false,/^\\.\\/\\.env/)')
18
+ expect(out).toContain('.env.development.local')
19
+ expect(out).toContain('...process.env')
20
+ })
21
+
22
+ it('generates the naming-error proxy in production', () => {
23
+ const out = substituteExpoVirtualEnvSource({
24
+ filename: virtualFilename,
25
+ src: virtualSource,
26
+ projectRoot: '/proj',
27
+ dev: false,
28
+ environment: 'client',
29
+ })
30
+ expect(out).toContain('new Proxy')
31
+ expect(out).toContain('not supported in production bundles')
32
+ })
33
+
34
+ it('leaves the virtual module alone outside client environments', () => {
35
+ for (const environment of ['node', 'react-server']) {
36
+ expect(
37
+ substituteExpoVirtualEnvSource({
38
+ filename: virtualFilename,
39
+ src: virtualSource,
40
+ projectRoot: '/proj',
41
+ dev: true,
42
+ environment,
43
+ })
44
+ ).toBe(virtualSource)
45
+ }
46
+ })
47
+
48
+ it('leaves ordinary files alone', () => {
49
+ expect(
50
+ substituteExpoVirtualEnvSource({
51
+ filename: '/proj/src/app.js',
52
+ src: 'const a = 1',
53
+ projectRoot: '/proj',
54
+ dev: true,
55
+ environment: 'client',
56
+ })
57
+ ).toBe('const a = 1')
58
+ })
59
+
60
+ it('leaves .env files alone without Expo installed', () => {
61
+ const src = 'EXPO_PUBLIC_A=1\nSECRET=2\n'
62
+ expect(
63
+ substituteExpoVirtualEnvSource({
64
+ filename: '/proj/.env',
65
+ src,
66
+ projectRoot: '/proj-no-expo',
67
+ dev: true,
68
+ environment: 'client',
69
+ })
70
+ ).toBe(src)
71
+ })
72
+ })
@@ -0,0 +1,115 @@
1
+ import { createRequire } from 'node:module'
2
+ import { readFileSync } from 'node:fs'
3
+ import path from 'node:path'
4
+
5
+ /**
6
+ * narrow optional Expo compatibility shared by the native worker and the
7
+ * babel transformer, mirroring @expo/metro-config's transform worker: only
8
+ * expo/virtual/env.js and .env files are special, and everything else
9
+ * passes through untouched. apps without Expo installed never resolve or
10
+ * load any Expo module: the virtual file cannot match without the expo
11
+ * package, and .env files are left alone when the parser is absent.
12
+ */
13
+
14
+ type ParseEnvFile = (src: string, isClient: boolean) => Record<string, string>
15
+
16
+ function loadExpoParseEnvFile(projectRoot: string): ParseEnvFile | null {
17
+ try {
18
+ const requireFromProject = createRequire(path.join(projectRoot, 'package.json'))
19
+ const expoMetroConfigPkg = requireFromProject.resolve(
20
+ '@expo/metro-config/package.json'
21
+ )
22
+ const dotEnvDevelopment = requireFromProject(
23
+ path.join(
24
+ path.dirname(expoMetroConfigPkg),
25
+ 'build',
26
+ 'transform-worker',
27
+ 'dot-env-development'
28
+ )
29
+ ) as { parseEnvFile?: ParseEnvFile }
30
+ return dotEnvDevelopment?.parseEnvFile ?? null
31
+ } catch {
32
+ return null
33
+ }
34
+ }
35
+
36
+ const virtualEnvPattern = /[\\/]expo[\\/]virtual[\\/]env\.js$/
37
+ const dotEnvPattern = /(^|[\\/])\.env(\.(local|(development|production)(\.local)?))?$/
38
+ const developmentEnvFiles = [
39
+ '.env',
40
+ '.env.development',
41
+ '.env.local',
42
+ '.env.development.local',
43
+ ]
44
+
45
+ export function substituteExpoVirtualEnvSource({
46
+ filename,
47
+ src,
48
+ projectRoot,
49
+ dev,
50
+ environment,
51
+ }: {
52
+ filename: string
53
+ src: string
54
+ projectRoot: string
55
+ dev: boolean | undefined
56
+ environment: unknown
57
+ }): string {
58
+ const isClientEnvironment = environment !== 'node' && environment !== 'react-server'
59
+
60
+ // parsing the virtual env is client-only, on the server process.env is used directly.
61
+ if (isClientEnvironment && virtualEnvPattern.test(filename)) {
62
+ if (dev) {
63
+ // variables are merged at runtime so HMR can pick up .env edits.
64
+ // standard Metro's Node crawler does not index `.env` because the file
65
+ // has no extension, so seed the module with the same public-only merge.
66
+ // context modules override this snapshot when the active watcher exposes
67
+ // the files, preserving Expo's live-update path.
68
+ const fileEnv: Record<string, string> = {}
69
+ const parseEnvFile = loadExpoParseEnvFile(projectRoot)
70
+ if (parseEnvFile) {
71
+ for (const file of developmentEnvFiles) {
72
+ try {
73
+ Object.assign(
74
+ fileEnv,
75
+ parseEnvFile(readFileSync(path.join(projectRoot, file), 'utf8'), true)
76
+ )
77
+ } catch (error) {
78
+ if (
79
+ typeof error === 'object' &&
80
+ error !== null &&
81
+ 'code' in error &&
82
+ error.code === 'ENOENT'
83
+ ) {
84
+ continue
85
+ }
86
+ throw error
87
+ }
88
+ }
89
+ }
90
+ const relativePath = path
91
+ .relative(path.dirname(filename), projectRoot)
92
+ .split(path.sep)
93
+ .join('/')
94
+ return `const dotEnvModules = require.context(${JSON.stringify(relativePath)},false,/^\\.\\/\\.env/);\n\nexport const env = { ...process.env, ...${JSON.stringify(fileEnv)}, ...${JSON.stringify(developmentEnvFiles)}.reduce((acc, file) => {\n const key = './' + file;\n return { ...acc, ...(dotEnvModules.keys().includes(key) ? dotEnvModules(key)?.default : {}) };\n}, {}) };`
95
+ }
96
+ // production inlines every value at its use site, so reaching this
97
+ // module at all is a bug worth naming rather than silently undefined.
98
+ return `\nexport const env = new Proxy({}, {\n get(target, key) {\n throw new Error(\`Attempting to access internal environment variable "\${key}" is not supported in production bundles. Environment variables should be inlined in production by Babel.\`);\n },\n});`
99
+ }
100
+
101
+ if (dotEnvPattern.test(filename)) {
102
+ // parse .env files to objects with Expo's own installed parser, keeping
103
+ // public names only in client environments. without Expo there is
104
+ // nothing to substitute: no preset generates the require.context import
105
+ // that would load a .env module, so the source passes through exactly
106
+ // as it did before this file existed.
107
+ const parseEnvFile = loadExpoParseEnvFile(projectRoot)
108
+ if (!parseEnvFile) {
109
+ return src
110
+ }
111
+ return `export default ${JSON.stringify(parseEnvFile(src, isClientEnvironment))};`
112
+ }
113
+
114
+ return src
115
+ }
@@ -31,9 +31,11 @@ export const loadBabelConfig = (() => {
31
31
  const possibleBabelRCPaths = [
32
32
  '.babelrc',
33
33
  '.babelrc.js',
34
+ '.babelrc.json',
34
35
  'babel.config.js',
35
36
  'babel.config.cjs',
36
37
  'babel.config.mjs',
38
+ 'babel.config.json',
37
39
  ]
38
40
 
39
41
  const foundBabelRCPath = possibleBabelRCPaths.find((configFileName) =>
@@ -50,7 +52,7 @@ export const loadBabelConfig = (() => {
50
52
  if (!babelRC.extends) {
51
53
  babelRC.presets = [
52
54
  // { plugins: [transformImportMetaGlobPlugin] }, // Added to support Vite's `import.meta.glob`
53
- require('babel-preset-expo'),
55
+ require('@react-native/babel-preset'),
54
56
  ]
55
57
  }
56
58