@vxrn/vite-plugin-metro 1.1.504 → 1.1.506

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 (281) hide show
  1. package/dist/cjs/babel-plugins/import-meta-env-plugin.cjs +65 -0
  2. package/dist/cjs/babel-plugins/import-meta-env-plugin.js +52 -0
  3. package/dist/cjs/babel-plugins/import-meta-env-plugin.js.map +6 -0
  4. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +62 -0
  5. package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +6 -0
  6. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +47 -0
  7. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.js +40 -0
  8. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.js.map +6 -0
  9. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +53 -0
  10. package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +6 -0
  11. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +110 -0
  12. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.js +96 -0
  13. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.js.map +6 -0
  14. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +102 -0
  15. package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +6 -0
  16. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.cjs +48 -0
  17. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.js +46 -0
  18. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.js.map +6 -0
  19. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +50 -0
  20. package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +6 -0
  21. package/dist/cjs/metro-config/types.cjs +16 -0
  22. package/dist/cjs/metro-config/types.js +14 -0
  23. package/dist/cjs/metro-config/types.js.map +6 -0
  24. package/dist/cjs/metro-config/types.native.js +15 -0
  25. package/dist/cjs/metro-config/types.native.js.map +6 -0
  26. package/dist/cjs/plugins/metroPlugin.cjs +8 -84
  27. package/dist/cjs/plugins/metroPlugin.js +6 -90
  28. package/dist/cjs/plugins/metroPlugin.js.map +1 -1
  29. package/dist/cjs/plugins/metroPlugin.native.js +6 -82
  30. package/dist/cjs/plugins/metroPlugin.native.js.map +2 -2
  31. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.cjs +86 -0
  32. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.js +75 -0
  33. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.js.map +6 -0
  34. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js +114 -0
  35. package/dist/cjs/rn-commands/bundle/assetCatalogIOS.native.js.map +6 -0
  36. package/dist/cjs/rn-commands/bundle/assetPathUtils.cjs +63 -0
  37. package/dist/cjs/rn-commands/bundle/assetPathUtils.js +62 -0
  38. package/dist/cjs/rn-commands/bundle/assetPathUtils.js.map +6 -0
  39. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js +70 -0
  40. package/dist/cjs/rn-commands/bundle/assetPathUtils.native.js.map +6 -0
  41. package/dist/cjs/rn-commands/bundle/buildBundle.cjs +50 -0
  42. package/dist/cjs/rn-commands/bundle/buildBundle.js +47 -0
  43. package/dist/cjs/rn-commands/bundle/buildBundle.js.map +6 -0
  44. package/dist/cjs/rn-commands/bundle/buildBundle.native.js +46 -0
  45. package/dist/cjs/rn-commands/bundle/buildBundle.native.js.map +6 -0
  46. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.cjs +76 -0
  47. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.js +66 -0
  48. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.js.map +6 -0
  49. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js +69 -0
  50. package/dist/cjs/rn-commands/bundle/buildBundleWithConfig.native.js.map +6 -0
  51. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.cjs +43 -0
  52. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.js +40 -0
  53. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.js.map +6 -0
  54. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js +60 -0
  55. package/dist/cjs/rn-commands/bundle/filterPlatformAssetScales.native.js.map +6 -0
  56. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.cjs +44 -0
  57. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.js +34 -0
  58. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.js.map +6 -0
  59. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js +35 -0
  60. package/dist/cjs/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +6 -0
  61. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.cjs +47 -0
  62. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.js +40 -0
  63. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.js.map +6 -0
  64. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js +41 -0
  65. package/dist/cjs/rn-commands/bundle/getAssetDestPathIOS.native.js.map +6 -0
  66. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.cjs +39 -0
  67. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.js +37 -0
  68. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.js.map +6 -0
  69. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js +45 -0
  70. package/dist/cjs/rn-commands/bundle/getBuildBundleFn.native.js.map +6 -0
  71. package/dist/cjs/rn-commands/bundle/index.cjs +28 -0
  72. package/dist/cjs/rn-commands/bundle/index.js +22 -0
  73. package/dist/cjs/rn-commands/bundle/index.js.map +6 -0
  74. package/dist/cjs/rn-commands/bundle/index.native.js +28 -0
  75. package/dist/cjs/rn-commands/bundle/index.native.js.map +6 -0
  76. package/dist/cjs/rn-commands/bundle/saveAssets.cjs +103 -0
  77. package/dist/cjs/rn-commands/bundle/saveAssets.js +96 -0
  78. package/dist/cjs/rn-commands/bundle/saveAssets.js.map +6 -0
  79. package/dist/cjs/rn-commands/bundle/saveAssets.native.js +107 -0
  80. package/dist/cjs/rn-commands/bundle/saveAssets.native.js.map +6 -0
  81. package/dist/cjs/rn-commands/bundle/types.cjs +16 -0
  82. package/dist/cjs/rn-commands/bundle/types.js +14 -0
  83. package/dist/cjs/rn-commands/bundle/types.js.map +6 -0
  84. package/dist/cjs/rn-commands/bundle/types.native.js +15 -0
  85. package/dist/cjs/rn-commands/bundle/types.native.js.map +6 -0
  86. package/dist/cjs/rn-commands/index.cjs +37 -0
  87. package/dist/cjs/rn-commands/index.js +29 -0
  88. package/dist/cjs/rn-commands/index.js.map +6 -0
  89. package/dist/cjs/rn-commands/index.native.js +34 -0
  90. package/dist/cjs/rn-commands/index.native.js.map +6 -0
  91. package/dist/cjs/transformer/babel-transformer.cjs +5 -1
  92. package/dist/cjs/transformer/babel-transformer.js +8 -1
  93. package/dist/cjs/transformer/babel-transformer.js.map +1 -1
  94. package/dist/cjs/transformer/babel-transformer.native.js +6 -1
  95. package/dist/cjs/transformer/babel-transformer.native.js.map +2 -2
  96. package/dist/cjs/transformer/types.cjs +16 -0
  97. package/dist/cjs/transformer/types.js +14 -0
  98. package/dist/cjs/transformer/types.js.map +6 -0
  99. package/dist/cjs/transformer/types.native.js +15 -0
  100. package/dist/cjs/transformer/types.native.js.map +6 -0
  101. package/dist/esm/babel-plugins/import-meta-env-plugin.js +29 -0
  102. package/dist/esm/babel-plugins/import-meta-env-plugin.js.map +6 -0
  103. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +30 -0
  104. package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -0
  105. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +38 -0
  106. package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -0
  107. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.js +24 -0
  108. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.js.map +6 -0
  109. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +24 -0
  110. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -0
  111. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +27 -0
  112. package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -0
  113. package/dist/esm/metro-config/getMetroConfigFromViteConfig.js +82 -0
  114. package/dist/esm/metro-config/getMetroConfigFromViteConfig.js.map +6 -0
  115. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +87 -0
  116. package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -0
  117. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +92 -0
  118. package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -0
  119. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.js +30 -0
  120. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.js.map +6 -0
  121. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +25 -0
  122. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -0
  123. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +26 -0
  124. package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -0
  125. package/dist/esm/metro-config/types.js +1 -0
  126. package/dist/esm/metro-config/types.js.map +6 -0
  127. package/dist/esm/metro-config/types.mjs +2 -0
  128. package/dist/esm/metro-config/types.mjs.map +1 -0
  129. package/dist/esm/metro-config/types.native.js +2 -0
  130. package/dist/esm/metro-config/types.native.js.map +1 -0
  131. package/dist/esm/plugins/metroPlugin.js +8 -92
  132. package/dist/esm/plugins/metroPlugin.js.map +1 -1
  133. package/dist/esm/plugins/metroPlugin.mjs +9 -85
  134. package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
  135. package/dist/esm/plugins/metroPlugin.native.js +9 -91
  136. package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
  137. package/dist/esm/rn-commands/bundle/assetCatalogIOS.js +53 -0
  138. package/dist/esm/rn-commands/bundle/assetCatalogIOS.js.map +6 -0
  139. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs +49 -0
  140. package/dist/esm/rn-commands/bundle/assetCatalogIOS.mjs.map +1 -0
  141. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js +83 -0
  142. package/dist/esm/rn-commands/bundle/assetCatalogIOS.native.js.map +1 -0
  143. package/dist/esm/rn-commands/bundle/assetPathUtils.js +46 -0
  144. package/dist/esm/rn-commands/bundle/assetPathUtils.js.map +6 -0
  145. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs +40 -0
  146. package/dist/esm/rn-commands/bundle/assetPathUtils.mjs.map +1 -0
  147. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js +42 -0
  148. package/dist/esm/rn-commands/bundle/assetPathUtils.native.js.map +1 -0
  149. package/dist/esm/rn-commands/bundle/buildBundle.js +34 -0
  150. package/dist/esm/rn-commands/bundle/buildBundle.js.map +6 -0
  151. package/dist/esm/rn-commands/bundle/buildBundle.mjs +27 -0
  152. package/dist/esm/rn-commands/bundle/buildBundle.mjs.map +1 -0
  153. package/dist/esm/rn-commands/bundle/buildBundle.native.js +28 -0
  154. package/dist/esm/rn-commands/bundle/buildBundle.native.js.map +1 -0
  155. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.js +46 -0
  156. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.js.map +6 -0
  157. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs +42 -0
  158. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.mjs.map +1 -0
  159. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js +46 -0
  160. package/dist/esm/rn-commands/bundle/buildBundleWithConfig.native.js.map +1 -0
  161. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.js +24 -0
  162. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.js.map +6 -0
  163. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs +20 -0
  164. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.mjs.map +1 -0
  165. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js +38 -0
  166. package/dist/esm/rn-commands/bundle/filterPlatformAssetScales.native.js.map +1 -0
  167. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.js +11 -0
  168. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.js.map +6 -0
  169. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs +10 -0
  170. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.mjs.map +1 -0
  171. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js +10 -0
  172. package/dist/esm/rn-commands/bundle/getAssetDestPathAndroid.native.js.map +1 -0
  173. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.js +16 -0
  174. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.js.map +6 -0
  175. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs +13 -0
  176. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.mjs.map +1 -0
  177. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js +13 -0
  178. package/dist/esm/rn-commands/bundle/getAssetDestPathIOS.native.js.map +1 -0
  179. package/dist/esm/rn-commands/bundle/getBuildBundleFn.js +22 -0
  180. package/dist/esm/rn-commands/bundle/getBuildBundleFn.js.map +6 -0
  181. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs +16 -0
  182. package/dist/esm/rn-commands/bundle/getBuildBundleFn.mjs.map +1 -0
  183. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js +20 -0
  184. package/dist/esm/rn-commands/bundle/getBuildBundleFn.native.js.map +1 -0
  185. package/dist/esm/rn-commands/bundle/index.js +7 -0
  186. package/dist/esm/rn-commands/bundle/index.js.map +6 -0
  187. package/dist/esm/rn-commands/bundle/index.mjs +4 -0
  188. package/dist/esm/rn-commands/bundle/index.mjs.map +1 -0
  189. package/dist/esm/rn-commands/bundle/index.native.js +4 -0
  190. package/dist/esm/rn-commands/bundle/index.native.js.map +1 -0
  191. package/dist/esm/rn-commands/bundle/saveAssets.js +77 -0
  192. package/dist/esm/rn-commands/bundle/saveAssets.js.map +6 -0
  193. package/dist/esm/rn-commands/bundle/saveAssets.mjs +69 -0
  194. package/dist/esm/rn-commands/bundle/saveAssets.mjs.map +1 -0
  195. package/dist/esm/rn-commands/bundle/saveAssets.native.js +86 -0
  196. package/dist/esm/rn-commands/bundle/saveAssets.native.js.map +1 -0
  197. package/dist/esm/rn-commands/bundle/types.js +1 -0
  198. package/dist/esm/rn-commands/bundle/types.js.map +6 -0
  199. package/dist/esm/rn-commands/bundle/types.mjs +2 -0
  200. package/dist/esm/rn-commands/bundle/types.mjs.map +1 -0
  201. package/dist/esm/rn-commands/bundle/types.native.js +2 -0
  202. package/dist/esm/rn-commands/bundle/types.native.js.map +1 -0
  203. package/dist/esm/rn-commands/index.js +5 -0
  204. package/dist/esm/rn-commands/index.js.map +6 -0
  205. package/dist/esm/rn-commands/index.mjs +3 -0
  206. package/dist/esm/rn-commands/index.mjs.map +1 -0
  207. package/dist/esm/rn-commands/index.native.js +3 -0
  208. package/dist/esm/rn-commands/index.native.js.map +1 -0
  209. package/dist/esm/transformer/babel-transformer.js +8 -1
  210. package/dist/esm/transformer/babel-transformer.js.map +1 -1
  211. package/dist/esm/transformer/babel-transformer.mjs +5 -1
  212. package/dist/esm/transformer/babel-transformer.mjs.map +1 -1
  213. package/dist/esm/transformer/babel-transformer.native.js +6 -2
  214. package/dist/esm/transformer/babel-transformer.native.js.map +1 -1
  215. package/dist/esm/transformer/types.js +1 -0
  216. package/dist/esm/transformer/types.js.map +6 -0
  217. package/dist/esm/transformer/types.mjs +2 -0
  218. package/dist/esm/transformer/types.mjs.map +1 -0
  219. package/dist/esm/transformer/types.native.js +2 -0
  220. package/dist/esm/transformer/types.native.js.map +1 -0
  221. package/package.json +19 -4
  222. package/src/babel-plugins/import-meta-env-plugin.ts +56 -0
  223. package/src/metro-config/getMetroBabelConfigFromViteConfig.ts +50 -0
  224. package/src/metro-config/getMetroConfigFromViteConfig.ts +144 -0
  225. package/src/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.ts +44 -0
  226. package/src/metro-config/types.ts +9 -0
  227. package/src/plugins/metroPlugin.ts +13 -144
  228. package/src/rn-commands/bundle/README.md +2 -0
  229. package/src/rn-commands/bundle/assetCatalogIOS.ts +73 -0
  230. package/src/rn-commands/bundle/assetPathUtils.ts +76 -0
  231. package/src/rn-commands/bundle/buildBundle.ts +57 -0
  232. package/src/rn-commands/bundle/buildBundleWithConfig.ts +82 -0
  233. package/src/rn-commands/bundle/filterPlatformAssetScales.ts +41 -0
  234. package/src/rn-commands/bundle/getAssetDestPathAndroid.ts +19 -0
  235. package/src/rn-commands/bundle/getAssetDestPathIOS.ts +24 -0
  236. package/src/rn-commands/bundle/getBuildBundleFn.ts +31 -0
  237. package/src/rn-commands/bundle/index.ts +2 -0
  238. package/src/rn-commands/bundle/saveAssets.ts +114 -0
  239. package/src/rn-commands/bundle/types.ts +22 -0
  240. package/src/rn-commands/index.ts +1 -0
  241. package/src/transformer/babel-transformer.ts +18 -3
  242. package/src/transformer/types.ts +18 -0
  243. package/types/babel-plugins/import-meta-env-plugin.d.ts +7 -0
  244. package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -0
  245. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts +4 -0
  246. package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts.map +1 -0
  247. package/types/metro-config/getMetroConfigFromViteConfig.d.ts +5 -0
  248. package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -0
  249. package/types/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.d.ts +5 -0
  250. package/types/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.d.ts.map +1 -0
  251. package/types/metro-config/types.d.ts +9 -0
  252. package/types/metro-config/types.d.ts.map +1 -0
  253. package/types/plugins/metroPlugin.d.ts +1 -1
  254. package/types/plugins/metroPlugin.d.ts.map +1 -1
  255. package/types/rn-commands/bundle/assetCatalogIOS.d.ts +21 -0
  256. package/types/rn-commands/bundle/assetCatalogIOS.d.ts.map +1 -0
  257. package/types/rn-commands/bundle/assetPathUtils.d.ts +27 -0
  258. package/types/rn-commands/bundle/assetPathUtils.d.ts.map +1 -0
  259. package/types/rn-commands/bundle/buildBundle.d.ts +8 -0
  260. package/types/rn-commands/bundle/buildBundle.d.ts.map +1 -0
  261. package/types/rn-commands/bundle/buildBundleWithConfig.d.ts +9 -0
  262. package/types/rn-commands/bundle/buildBundleWithConfig.d.ts.map +1 -0
  263. package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts +9 -0
  264. package/types/rn-commands/bundle/filterPlatformAssetScales.d.ts.map +1 -0
  265. package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts +10 -0
  266. package/types/rn-commands/bundle/getAssetDestPathAndroid.d.ts.map +1 -0
  267. package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts +10 -0
  268. package/types/rn-commands/bundle/getAssetDestPathIOS.d.ts.map +1 -0
  269. package/types/rn-commands/bundle/getBuildBundleFn.d.ts +7 -0
  270. package/types/rn-commands/bundle/getBuildBundleFn.d.ts.map +1 -0
  271. package/types/rn-commands/bundle/index.d.ts +3 -0
  272. package/types/rn-commands/bundle/index.d.ts.map +1 -0
  273. package/types/rn-commands/bundle/saveAssets.d.ts +4 -0
  274. package/types/rn-commands/bundle/saveAssets.d.ts.map +1 -0
  275. package/types/rn-commands/bundle/types.d.ts +23 -0
  276. package/types/rn-commands/bundle/types.d.ts.map +1 -0
  277. package/types/rn-commands/index.d.ts +2 -0
  278. package/types/rn-commands/index.d.ts.map +1 -0
  279. package/types/transformer/babel-transformer.d.ts.map +1 -1
  280. package/types/transformer/types.d.ts +16 -0
  281. package/types/transformer/types.d.ts.map +1 -0
@@ -81,8 +81,12 @@ var transform = function (param) {
81
81
  // `plugins` is used for `functionMapBabelPlugin` from `metro-source-map`. Could make sense to move this to `babel-preset-expo` too.
82
82
  plugins
83
83
  } = param,
84
- _options_customTransformOptions,
85
- customOptionsFromVite = ((_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.vite) || {},
84
+ customOptionsFromVite = function () {
85
+ var _options_customTransformOptions,
86
+ c = (_options_customTransformOptions = options.customTransformOptions) === null || _options_customTransformOptions === void 0 ? void 0 : _options_customTransformOptions.vite;
87
+ if (!c || typeof c != "object") throw new Error(`[vite-plugin-metro/babel-transformer]: Expect options.customTransformOptions.vite to be an object, but got ${typeof c}.`);
88
+ return c;
89
+ }(),
86
90
  babelConfigFromVitePlugin = customOptionsFromVite.babelConfig || {},
87
91
  OLD_BABEL_ENV = process.env.BABEL_ENV;
88
92
  process.env.BABEL_ENV = options.dev ? "development" : process.env.BABEL_ENV || "production";
@@ -1 +1 @@
1
- {"version":3,"names":["assert","loadBabelConfig","transformSync","debug","require","isCustomTruthy","value","String","memoize","fn","cache","Map","_len","arguments","length","args","Array","_key","key","JSON","stringify","has","get","result","set","memoizeWarning","message","getBabelCaller","param","filename","options","_options_customTransformOptions","_options_customTransformOptions1","_options_customTransformOptions2","_options_customTransformOptions3","_options_customTransformOptions4","_options_customTransformOptions5","_options_customTransformOptions6","_options_customTransformOptions7","_options_customTransformOptions8","isNodeModule","includes","isReactServer","customTransformOptions","environment","isGenericServer","isServer","routerRoot","decodeURI","name","bundler","platform","baseUrl","isDev","dev","preserveEnvVars","asyncRoutes","engine","stringOrUndefined","projectRoot","isHMREnabled","hot","supportsStaticESM","optimize","experimentalImportSupport","supportsReactCompiler","reactCompiler","transform","src","plugins","customOptionsFromVite","vite","babelConfigFromVitePlugin","babelConfig","OLD_BABEL_ENV","process","env","BABEL_ENV","sourceType","ast","code","cloneInputAst","cwd","highlightCode","babelrc","enableBabelRCLookup","caller","metadata"],"sources":["../../../src/transformer/babel-transformer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["assert","loadBabelConfig","transformSync","debug","require","isCustomTruthy","value","String","memoize","fn","cache","Map","_len","arguments","length","args","Array","_key","key","JSON","stringify","has","get","result","set","memoizeWarning","message","getBabelCaller","param","filename","options","_options_customTransformOptions","_options_customTransformOptions1","_options_customTransformOptions2","_options_customTransformOptions3","_options_customTransformOptions4","_options_customTransformOptions5","_options_customTransformOptions6","_options_customTransformOptions7","_options_customTransformOptions8","isNodeModule","includes","isReactServer","customTransformOptions","environment","isGenericServer","isServer","routerRoot","decodeURI","name","bundler","platform","baseUrl","isDev","dev","preserveEnvVars","asyncRoutes","engine","stringOrUndefined","projectRoot","isHMREnabled","hot","supportsStaticESM","optimize","experimentalImportSupport","supportsReactCompiler","reactCompiler","transform","src","plugins","customOptionsFromVite","c","vite","Error","babelConfigFromVitePlugin","babelConfig","OLD_BABEL_ENV","process","env","BABEL_ENV","sourceType","ast","code","cloneInputAst","cwd","highlightCode","babelrc","enableBabelRCLookup","caller","metadata"],"sources":["../../../src/transformer/babel-transformer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "mappings": "",
5
+ "names": []
6
+ }
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxrn/vite-plugin-metro",
3
- "version": "1.1.504",
3
+ "version": "1.1.506",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "dist/cjs",
@@ -11,14 +11,24 @@
11
11
  "./package.json": "./package.json",
12
12
  ".": {
13
13
  "types": "./types/index.d.ts",
14
- "require": "./dist/cjs/index.js",
14
+ "require": "./dist/cjs/index.cjs",
15
15
  "import": "./dist/esm/index.mjs"
16
16
  },
17
+ "./rn-commands": {
18
+ "types": "./types/rn-commands/index.d.ts",
19
+ "import": "./dist/esm/rn-commands/index.mjs",
20
+ "require": "./dist/cjs/rn-commands/index.cjs"
21
+ },
17
22
  "./babel-transformer": {
18
23
  "types": "./types/transformer/babel-transformer.d.ts",
19
24
  "import": "./dist/esm/transformer/babel-transformer.mjs",
20
25
  "require": "./dist/cjs/transformer/babel-transformer.cjs"
21
26
  },
27
+ "./babel-plugins/import-meta-env-plugin": {
28
+ "types": "./types/babel-plugins/import-meta-env-plugin.d.ts",
29
+ "import": "./dist/esm/babel-plugins/import-meta-env-plugin.mjs",
30
+ "require": "./dist/cjs/babel-plugins/import-meta-env-plugin.cjs"
31
+ },
22
32
  "./empty": {
23
33
  "import": "./empty.js",
24
34
  "require": "./empty.js"
@@ -32,6 +42,7 @@
32
42
  ],
33
43
  "scripts": {
34
44
  "build": "tamagui-build",
45
+ "build:workaround-fix-nodejs-22-defaults-to-esm": "echo '{\n \"type\": \"commonjs\"\n}' > dist/cjs/package.json",
35
46
  "watch": "yarn build --watch",
36
47
  "check": "yarn depcheck",
37
48
  "clean": "tamagui-build clean",
@@ -41,12 +52,15 @@
41
52
  "@expo/metro-config": "^0.19.8",
42
53
  "expo": "^53.0.4",
43
54
  "metro": "^0.82",
55
+ "metro-config": "*",
44
56
  "react-native": "~0.79.2",
45
57
  "vite": "^6.1.0"
46
58
  },
47
59
  "dependencies": {
48
60
  "@babel/core": "^7.26.8",
49
- "@vxrn/debug": "1.1.504",
61
+ "@babel/helper-plugin-utils": "^7.26.8",
62
+ "@babel/types": "^7.26.8",
63
+ "@vxrn/debug": "1.1.506",
50
64
  "babel-preset-expo": "*",
51
65
  "launch-editor": "^2.10.0",
52
66
  "picocolors": "^1.0.0"
@@ -55,7 +69,8 @@
55
69
  "@biomejs/biome": "1.9.4",
56
70
  "@expo/metro-config": "^0.19.8",
57
71
  "@react-native/dev-middleware": "~0.79.2",
58
- "@tamagui/build": "^1.129.16",
72
+ "@tamagui/build": "^1.132.7",
73
+ "@types/babel__helper-plugin-utils": "^7",
59
74
  "@types/node": "^22.1.0",
60
75
  "depcheck": "^1.4.7",
61
76
  "expo": "^53.0.4",
@@ -0,0 +1,56 @@
1
+ import { declare } from '@babel/helper-plugin-utils'
2
+ import * as t from '@babel/types'
3
+ import type { PluginObj } from '@babel/core'
4
+
5
+ type PluginOptions = {
6
+ env?: Record<string, string | undefined>
7
+ }
8
+
9
+ export const importMetaEnvPlugin = declare<PluginOptions>((api, options): PluginObj => {
10
+ api.assertVersion(7)
11
+
12
+ return {
13
+ name: 'import-meta-env',
14
+ visitor: {
15
+ MemberExpression(path) {
16
+ const { node } = path
17
+
18
+ const isImportMeta =
19
+ t.isMetaProperty(node.object) &&
20
+ node.object.meta.name === 'import' &&
21
+ node.object.property.name === 'meta'
22
+
23
+ // Replace import.meta.env
24
+ if (isImportMeta && t.isIdentifier(node.property, { name: 'env' })) {
25
+ const envEntries = Object.entries(options.env ?? {}).map(([key, value]) =>
26
+ t.objectProperty(t.identifier(key), value === undefined ? t.identifier('undefined') : t.valueToNode(value))
27
+ )
28
+ path.replaceWith(t.objectExpression(envEntries))
29
+ return
30
+ }
31
+
32
+ // Replace import.meta.env.*
33
+ if (
34
+ t.isMemberExpression(node.object) &&
35
+ t.isMetaProperty(node.object.object) &&
36
+ node.object.object.meta.name === 'import' &&
37
+ node.object.object.property.name === 'meta' &&
38
+ t.isIdentifier(node.object.property, { name: 'env' })
39
+ ) {
40
+ const envKey = t.isIdentifier(node.property)
41
+ ? node.property.name
42
+ : t.isStringLiteral(node.property)
43
+ ? node.property.value
44
+ : null
45
+
46
+ if (!envKey) return
47
+
48
+ const value = options.env?.[envKey]
49
+ path.replaceWith(value === undefined ? t.identifier('undefined') : t.valueToNode(value))
50
+ }
51
+ },
52
+ },
53
+ }
54
+ })
55
+
56
+ export default importMetaEnvPlugin
@@ -0,0 +1,50 @@
1
+ import type { ResolvedConfig } from 'vite'
2
+
3
+ // For Metro and Expo, we only import types here.
4
+ // We use `projectImport` to dynamically import the actual modules
5
+ // at runtime to ensure they are loaded from the user's project root.
6
+ import type { loadConfig as loadConfigT } from 'metro'
7
+ import type { getDefaultConfig as getDefaultConfigT } from '@expo/metro-config'
8
+
9
+ import { projectImport, projectResolve } from '../utils/projectImport'
10
+ import { getTerminalReporter } from '../utils/getTerminalReporter'
11
+ import { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from '../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName'
12
+ import type { MetroPluginOptions } from '../plugins/metroPlugin'
13
+ import type { ExtraConfig, MetroConfigExtended } from './types'
14
+ import type { TransformOptions } from '@babel/core'
15
+
16
+ type MetroInputConfig = Parameters<typeof loadConfigT>[1]
17
+
18
+ export function getMetroBabelConfigFromViteConfig(config: ResolvedConfig): TransformOptions {
19
+ const importMetaEnv = {
20
+ // https://vite.dev/guide/env-and-mode.html#built-in-constants
21
+ MODE: config.mode,
22
+ BASE_URL: 'https://vxrn.not.supported.yet',
23
+ PROD: config.mode === 'production',
24
+ DEV: config.mode === 'development',
25
+ SSR: false,
26
+ }
27
+
28
+ // Collect from process.env
29
+ const envPrefix = config.envPrefix || 'VITE_'
30
+ if (envPrefix) {
31
+ Object.keys(process.env).forEach((key) => {
32
+ const shouldInclude = Array.isArray(envPrefix)
33
+ ? envPrefix.some((p) => key.startsWith(p))
34
+ : key.startsWith(envPrefix)
35
+
36
+ if (shouldInclude) {
37
+ importMetaEnv[key] = process.env[key]
38
+ }
39
+ })
40
+ }
41
+
42
+ return {
43
+ plugins: [
44
+ // Note that we can only pass Babel plugins by name here,
45
+ // since Metro will run Babel transformers in different threads
46
+ // and plugins are not serializable, it seems.
47
+ ['@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin', { env: importMetaEnv }],
48
+ ],
49
+ }
50
+ }
@@ -0,0 +1,144 @@
1
+ import type { ResolvedConfig } from 'vite'
2
+
3
+ // For Metro and Expo, we only import types here.
4
+ // We use `projectImport` to dynamically import the actual modules
5
+ // at runtime to ensure they are loaded from the user's project root.
6
+ import type { loadConfig as loadConfigT } from 'metro'
7
+ import type { getDefaultConfig as getDefaultConfigT } from '@expo/metro-config'
8
+
9
+ import { projectImport, projectResolve } from '../utils/projectImport'
10
+ import { getTerminalReporter } from '../utils/getTerminalReporter'
11
+ import { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from '../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName'
12
+ import type { MetroPluginOptions } from '../plugins/metroPlugin'
13
+ import type { ExtraConfig, MetroConfigExtended } from './types'
14
+
15
+ type MetroInputConfig = Parameters<typeof loadConfigT>[1]
16
+
17
+ export async function getMetroConfigFromViteConfig(
18
+ config: ResolvedConfig,
19
+ metroPluginOptions: MetroPluginOptions
20
+ ): Promise<MetroConfigExtended> {
21
+ const extraConfig: ExtraConfig = {}
22
+ const { root: projectRoot } = config
23
+ const { mainModuleName, argv, defaultConfigOverrides } = metroPluginOptions
24
+
25
+ const { loadConfig } = await projectImport<{
26
+ loadConfig: typeof loadConfigT
27
+ }>(projectRoot, 'metro')
28
+ const { getDefaultConfig } = await projectImport<{
29
+ getDefaultConfig: typeof getDefaultConfigT
30
+ }>(projectRoot, '@expo/metro-config')
31
+
32
+ const _defaultConfig: MetroInputConfig = getDefaultConfig(projectRoot) as any
33
+
34
+ if (mainModuleName) {
35
+ const origRewriteRequestUrl = _defaultConfig!.server!.rewriteRequestUrl!
36
+
37
+ // We need to patch Expo's default `config.server.rewriteRequestUrl`
38
+ // to change how URLs like '/.expo/.virtual-metro-entry.bundle?' are
39
+ // rewritten.
40
+ // But since that function is difficult to override, here we borrow
41
+ // the ExpoGoManifestHandlerMiddleware and use it to resolve the
42
+ // URL to the main module name.
43
+ const resolveMainModuleName: (p: { platform: 'ios' | 'android' }) => string =
44
+ await (async () => {
45
+ const ExpoGoManifestHandlerMiddleware = (
46
+ await projectImport(
47
+ projectRoot,
48
+ '@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js'
49
+ )
50
+ ).default.ExpoGoManifestHandlerMiddleware
51
+
52
+ const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {})
53
+
54
+ patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(
55
+ manifestHandlerMiddleware,
56
+ mainModuleName
57
+ )
58
+
59
+ return (p) => {
60
+ return manifestHandlerMiddleware.resolveMainModuleName({
61
+ pkg: { main: mainModuleName },
62
+ platform: p.platform,
63
+ })
64
+ }
65
+ })()
66
+
67
+ extraConfig.getResolveMainModuleName = resolveMainModuleName
68
+
69
+ _defaultConfig!.server!.rewriteRequestUrl = (url) => {
70
+ if (url.includes('/.expo/.virtual-metro-entry.bundle?')) {
71
+ const resolvedMainModulePath = resolveMainModuleName({
72
+ platform: 'ios', // we probably need to handle android here, but currently in our use case this won't affect the result
73
+ })
74
+
75
+ return url.replace('.expo/.virtual-metro-entry', resolvedMainModulePath)
76
+ }
77
+
78
+ return origRewriteRequestUrl(url)
79
+ }
80
+ }
81
+
82
+ const defaultConfig: MetroInputConfig = {
83
+ ..._defaultConfig,
84
+ resolver: {
85
+ ..._defaultConfig?.resolver,
86
+ sourceExts: ['js', 'jsx', 'json', 'ts', 'tsx', 'mjs', 'cjs'], // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.
87
+ resolveRequest: (context, moduleName, platform) => {
88
+ const origResolveRequestFn =
89
+ _defaultConfig?.resolver?.resolveRequest || context.resolveRequest
90
+
91
+ // HACK: Do not assert the "import" condition for `@babel/runtime`. This
92
+ // is a workaround for ESM <-> CJS interop, as we need the CJS versions of
93
+ // `@babel/runtime` helpers.
94
+ //
95
+ // This hack is originally made in Metro and was removed in `v0.81.3`, but
96
+ // we somehow still need it.
97
+ // See: https://github.com/facebook/metro/commit/9552a64a0487af64cd86d8591e203a55c59c9686#diff-b03f1b511a2be7abd755b9c2561e47f513f84931466f2cc20a17a4238d70f12bL370-L378
98
+ //
99
+ // Resolves the "TypeError: _interopRequireDefault is not a function (it is Object)" error.
100
+ if (moduleName.startsWith('@babel/runtime')) {
101
+ const contextOverride = {
102
+ ...context,
103
+ unstable_conditionNames: context.unstable_conditionNames.filter((c) => c !== 'import'),
104
+ }
105
+ return origResolveRequestFn(contextOverride, moduleName, platform)
106
+ }
107
+
108
+ return origResolveRequestFn(context, moduleName, platform)
109
+ },
110
+ },
111
+ transformer: {
112
+ ..._defaultConfig?.transformer,
113
+ babelTransformerPath: projectResolve(
114
+ projectRoot,
115
+ '@vxrn/vite-plugin-metro/babel-transformer'
116
+ ),
117
+ // TODO: This is what Expo is doing, but do we really need this?
118
+ // Doing so seems to make the release build broken since assets will be
119
+ // copied to /.../Xcode/DerivedData/.../Build/Products/Release-iphonesimulator/...app/assets/?unstable_path=.%2Fsrc%2Fimages/logo.png
120
+ // publicPath: '/assets/?unstable_path=.',
121
+ },
122
+ reporter: await getTerminalReporter(projectRoot),
123
+ }
124
+
125
+ const metroConfig = await loadConfig(
126
+ {
127
+ cwd: projectRoot,
128
+ projectRoot,
129
+ 'reset-cache': !!process.env.METRO_RESET_CACHE, // TODO: `--clean`
130
+ ...argv,
131
+ },
132
+ {
133
+ ...defaultConfig,
134
+ ...(typeof defaultConfigOverrides === 'function'
135
+ ? defaultConfigOverrides(defaultConfig)
136
+ : defaultConfigOverrides),
137
+ }
138
+ )
139
+
140
+ return {
141
+ ...metroConfig,
142
+ ...extraConfig,
143
+ }
144
+ }
@@ -0,0 +1,44 @@
1
+ import type Server from 'metro/src/Server'
2
+ import type { ResolvedConfig } from 'vite'
3
+ import type { MetroPluginOptions } from '../plugins/metroPlugin'
4
+ import type { ViteCustomTransformOptions } from '../transformer/types'
5
+ import { getMetroBabelConfigFromViteConfig } from './getMetroBabelConfigFromViteConfig'
6
+
7
+ export function patchMetroServerWithViteConfigAndMetroPluginOptions(
8
+ metroServer: Server,
9
+ config: ResolvedConfig,
10
+ options: MetroPluginOptions
11
+ ) {
12
+ // Patch transformFile to inject custom transform options.
13
+ const originalTransformFile = metroServer
14
+ .getBundler()
15
+ .getBundler()
16
+ .transformFile.bind(metroServer.getBundler().getBundler())
17
+ const defaultBabelConfig = getMetroBabelConfigFromViteConfig(config)
18
+ metroServer.getBundler().getBundler().transformFile = async (
19
+ filePath: string,
20
+ transformOptions: Parameters<typeof originalTransformFile>[1],
21
+ fileBuffer?: Parameters<typeof originalTransformFile>[2]
22
+ ) => {
23
+ const viteCustomTransformOptions: ViteCustomTransformOptions = {
24
+ // config: server.config,
25
+ babelConfig: {
26
+ ...defaultBabelConfig,
27
+ ...options.babelConfig,
28
+ plugins: [...(defaultBabelConfig.plugins || []), ...(options.babelConfig?.plugins || [])],
29
+ },
30
+ }
31
+ return originalTransformFile(
32
+ filePath,
33
+ {
34
+ ...transformOptions,
35
+ customTransformOptions: {
36
+ ...transformOptions.customTransformOptions,
37
+ // Pass into our own babel-transformer
38
+ vite: viteCustomTransformOptions,
39
+ },
40
+ },
41
+ fileBuffer
42
+ )
43
+ }
44
+ }
@@ -0,0 +1,9 @@
1
+ import type { ConfigT } from 'metro-config'
2
+
3
+ export type MetroConfig = ConfigT
4
+
5
+ export type ExtraConfig = {
6
+ getResolveMainModuleName?: (p: { platform: 'ios' | 'android' }) => string
7
+ }
8
+
9
+ export type MetroConfigExtended = MetroConfig & ExtraConfig
@@ -11,13 +11,12 @@ import type MetroT from 'metro'
11
11
  import type { loadConfig as loadConfigT } from 'metro'
12
12
  import type MetroHmrServerT from 'metro/src/HmrServer'
13
13
  import type createWebsocketServerT from 'metro/src/lib/createWebsocketServer'
14
- import type { getDefaultConfig as getDefaultConfigT } from '@expo/metro-config'
15
14
  import type { createDevMiddleware as createDevMiddlewareT } from '@react-native/dev-middleware'
16
15
 
17
- import { projectImport, projectResolve } from '../utils/projectImport'
18
- import { getTerminalReporter } from '../utils/getTerminalReporter'
19
- import { patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName } from '../utils/patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName'
16
+ import { projectImport } from '../utils/projectImport'
20
17
  import type { TransformOptions } from '../transformer/babel-core'
18
+ import { getMetroConfigFromViteConfig } from '../metro-config/getMetroConfigFromViteConfig'
19
+ import { patchMetroServerWithViteConfigAndMetroPluginOptions } from '../metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions'
21
20
 
22
21
  type MetroYargArguments = Parameters<typeof loadConfigT>[0]
23
22
  type MetroInputConfig = Parameters<typeof loadConfigT>[1]
@@ -39,14 +38,15 @@ export type MetroPluginOptions = {
39
38
  mainModuleName?: string
40
39
  }
41
40
 
42
- export function metroPlugin({
43
- argv,
44
- defaultConfigOverrides,
45
- babelConfig,
46
- mainModuleName,
47
- }: MetroPluginOptions = {}): PluginOption {
41
+ export function metroPlugin(options: MetroPluginOptions = {}): PluginOption {
48
42
  // let projectRoot = ''
49
43
 
44
+ // This is used to:
45
+ // 1. Make the react-native CLI bundle command use Metro.
46
+ // 2. Let the react-native CLI bundle command access metro plugin options.
47
+ // See: getBuildBundleFn
48
+ globalThis['__viteMetroPluginOptions__'] = options
49
+
50
50
  return {
51
51
  name: 'metro',
52
52
  // configResolved(config) {
@@ -56,9 +56,8 @@ export function metroPlugin({
56
56
  async configureServer(server) {
57
57
  const { logger, root: projectRoot } = server.config
58
58
 
59
- const { default: Metro, loadConfig } = await projectImport<{
59
+ const { default: Metro } = await projectImport<{
60
60
  default: typeof MetroT
61
- loadConfig: typeof loadConfigT
62
61
  }>(projectRoot, 'metro')
63
62
  const { default: MetroHmrServer } = await projectImport<{
64
63
  default: typeof MetroHmrServerT
@@ -66,118 +65,11 @@ export function metroPlugin({
66
65
  const { default: createWebsocketServer } = await projectImport<{
67
66
  default: typeof createWebsocketServerT
68
67
  }>(projectRoot, 'metro/src/lib/createWebsocketServer')
69
- const { getDefaultConfig } = await projectImport<{
70
- getDefaultConfig: typeof getDefaultConfigT
71
- }>(projectRoot, '@expo/metro-config')
72
68
  const { createDevMiddleware } = await projectImport<{
73
69
  createDevMiddleware: typeof createDevMiddlewareT
74
70
  }>(projectRoot, '@react-native/dev-middleware')
75
71
 
76
- const _defaultConfig: MetroInputConfig = getDefaultConfig(projectRoot) as any
77
-
78
- if (mainModuleName) {
79
- const origRewriteRequestUrl = _defaultConfig!.server!.rewriteRequestUrl!
80
-
81
- // We need to patch Expo's default `config.server.rewriteRequestUrl`
82
- // to change how URLs like '/.expo/.virtual-metro-entry.bundle?' are
83
- // rewritten.
84
- // But since that function is difficult to override, here we borrow
85
- // the ExpoGoManifestHandlerMiddleware and use it to resolve the
86
- // URL to the main module name.
87
- const resolveMainModuleName: (p: { platform: 'ios' | 'android' }) => string =
88
- await (async () => {
89
- const ExpoGoManifestHandlerMiddleware = (
90
- await projectImport(
91
- projectRoot,
92
- '@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js'
93
- )
94
- ).default.ExpoGoManifestHandlerMiddleware
95
-
96
- const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(projectRoot, {})
97
-
98
- patchExpoGoManifestHandlerMiddlewareWithCustomMainModuleName(
99
- manifestHandlerMiddleware,
100
- mainModuleName
101
- )
102
-
103
- return (p) => {
104
- return manifestHandlerMiddleware.resolveMainModuleName({
105
- pkg: { main: mainModuleName },
106
- platform: p.platform,
107
- })
108
- }
109
- })()
110
-
111
- _defaultConfig!.server!.rewriteRequestUrl = (url) => {
112
- if (url.includes('/.expo/.virtual-metro-entry.bundle?')) {
113
- const resolvedMainModulePath = resolveMainModuleName({
114
- platform: 'ios', // we probably need to handle android here, but currently in our use case this won't affect the result
115
- })
116
-
117
- return url.replace('.expo/.virtual-metro-entry', resolvedMainModulePath)
118
- }
119
-
120
- return origRewriteRequestUrl(url)
121
- }
122
- }
123
-
124
- const defaultConfig: MetroInputConfig = {
125
- ..._defaultConfig,
126
- resolver: {
127
- ..._defaultConfig?.resolver,
128
- sourceExts: ['js', 'jsx', 'json', 'ts', 'tsx', 'mjs', 'cjs'], // `one` related packages are using `.mjs` extensions. This somehow fixes `.native` files not being resolved correctly when `.mjs` files are present.
129
- resolveRequest: (context, moduleName, platform) => {
130
- const origResolveRequestFn =
131
- _defaultConfig?.resolver?.resolveRequest || context.resolveRequest
132
-
133
- // HACK: Do not assert the "import" condition for `@babel/runtime`. This
134
- // is a workaround for ESM <-> CJS interop, as we need the CJS versions of
135
- // `@babel/runtime` helpers.
136
- //
137
- // This hack is originally made in Metro and was removed in `v0.81.3`, but
138
- // we somehow still need it.
139
- // See: https://github.com/facebook/metro/commit/9552a64a0487af64cd86d8591e203a55c59c9686#diff-b03f1b511a2be7abd755b9c2561e47f513f84931466f2cc20a17a4238d70f12bL370-L378
140
- //
141
- // Resolves the "TypeError: _interopRequireDefault is not a function (it is Object)" error.
142
- if (moduleName.startsWith('@babel/runtime')) {
143
- const contextOverride = {
144
- ...context,
145
- unstable_conditionNames: context.unstable_conditionNames.filter(
146
- (c) => c !== 'import'
147
- ),
148
- }
149
- return origResolveRequestFn(contextOverride, moduleName, platform)
150
- }
151
-
152
- return origResolveRequestFn(context, moduleName, platform)
153
- },
154
- },
155
- transformer: {
156
- ..._defaultConfig?.transformer,
157
- babelTransformerPath: projectResolve(
158
- projectRoot,
159
- '@vxrn/vite-plugin-metro/babel-transformer'
160
- ),
161
- // TODO: This is what Expo is doing, but do we really need this?
162
- publicPath: '/assets/?unstable_path=.',
163
- },
164
- reporter: await getTerminalReporter(projectRoot),
165
- }
166
-
167
- const config = await loadConfig(
168
- {
169
- cwd: projectRoot,
170
- projectRoot,
171
- 'reset-cache': !!process.env.METRO_RESET_CACHE,
172
- ...argv,
173
- },
174
- {
175
- ...defaultConfig,
176
- ...(typeof defaultConfigOverrides === 'function'
177
- ? defaultConfigOverrides(defaultConfig)
178
- : defaultConfigOverrides),
179
- }
180
- )
72
+ const config = await getMetroConfigFromViteConfig(server.config, options)
181
73
 
182
74
  const { middleware, end, metroServer } = await Metro.createConnectMiddleware(config, {
183
75
  // Force enable file watching, even on CI.
@@ -185,30 +77,7 @@ export function metroPlugin({
185
77
  watch: true,
186
78
  })
187
79
 
188
- // Patch transformFile to inject custom transform options.
189
- const originalTransformFile = metroServer
190
- .getBundler()
191
- .getBundler()
192
- .transformFile.bind(metroServer.getBundler().getBundler())
193
- metroServer.getBundler().getBundler().transformFile = async (
194
- filePath: string,
195
- transformOptions: Parameters<typeof originalTransformFile>[1],
196
- fileBuffer?: Parameters<typeof originalTransformFile>[2]
197
- ) => {
198
- return originalTransformFile(
199
- filePath,
200
- {
201
- ...transformOptions,
202
- customTransformOptions: {
203
- ...transformOptions.customTransformOptions,
204
- vite: {
205
- babelConfig,
206
- },
207
- },
208
- },
209
- fileBuffer
210
- )
211
- }
80
+ patchMetroServerWithViteConfigAndMetroPluginOptions(metroServer, server.config, options)
212
81
 
213
82
  const hmrServer = new MetroHmrServer(
214
83
  metroServer.getBundler(),
@@ -0,0 +1,2 @@
1
+ We are copying code from `@react-native/community-cli-plugin` mostly because we need to pass custom things into the babel-transformer.
2
+ If we can find a better way to do that, we probably can just import `unstable_buildBundleWithConfig` from `@react-native/community-cli-plugin` and just use it.