about summary refs log tree commit diff
path: root/metro.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'metro.config.js')
-rw-r--r--metro.config.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/metro.config.js b/metro.config.js
index a49d95f9a..ad0a54fc8 100644
--- a/metro.config.js
+++ b/metro.config.js
@@ -6,6 +6,32 @@ cfg.resolver.sourceExts = process.env.RN_SRC_EXT
   ? process.env.RN_SRC_EXT.split(',').concat(cfg.resolver.sourceExts)
   : cfg.resolver.sourceExts
 
+if (cfg.resolver.resolveRequest) {
+  throw Error('Update this override because it is conflicting now.')
+}
+cfg.resolver.resolveRequest = (context, moduleName, platform) => {
+  // HACK: manually resolve a few packages that use `exports` in `package.json`.
+  // A proper solution is to enable `unstable_enablePackageExports` but this needs careful testing.
+  if (moduleName.startsWith('multiformats/hashes/hasher')) {
+    return context.resolveRequest(
+      context,
+      'multiformats/dist/src/hashes/hasher',
+      platform,
+    )
+  }
+  if (moduleName.startsWith('multiformats/cid')) {
+    return context.resolveRequest(
+      context,
+      'multiformats/dist/src/cid',
+      platform,
+    )
+  }
+  if (moduleName === '@ipld/dag-cbor') {
+    return context.resolveRequest(context, '@ipld/dag-cbor/src', platform)
+  }
+  return context.resolveRequest(context, moduleName, platform)
+}
+
 cfg.transformer.getTransformOptions = async () => ({
   transform: {
     experimentalImportSupport: true,