// Metro (React Native bundler) needs help resolving: // 1. Workspace packages (@dgb-wallet/*) — enable symlink traversal // 2. Node built-ins (crypto, buffer, stream) used by bitcoinjs-lib — // shim them to browser-compatible replacements const path = require('path'); const { getDefaultConfig } = require('expo/metro-config'); const projectRoot = __dirname; const monorepoRoot = path.resolve(projectRoot, '../..'); const config = getDefaultConfig(projectRoot); // Watch the monorepo so workspace packages hot-reload. config.watchFolders = [monorepoRoot]; // Resolve modules from both the app's node_modules and the monorepo root. config.resolver.nodeModulesPaths = [ path.resolve(projectRoot, 'node_modules'), path.resolve(monorepoRoot, 'node_modules'), ]; config.resolver.disableHierarchicalLookup = true; // Polyfills for Node built-ins used by bitcoinjs-lib et al. config.resolver.extraNodeModules = { crypto: require.resolve('react-native-quick-crypto'), buffer: require.resolve('buffer'), stream: require.resolve('readable-stream'), }; module.exports = config;