const { getDefaultConfig } = require('expo/metro-config'); const path = require('path'); const config = getDefaultConfig(__dirname); // Add the parent directory to watched folders so Metro can find local packages config.watchFolders = [ path.resolve(__dirname, '..'), ]; // Configure resolver to handle local packages config.resolver = { ...config.resolver, nodeModulesPaths: [ path.resolve(__dirname, 'node_modules'), path.resolve(__dirname, '../'), ], extraNodeModules: { 'buffer': require.resolve("buffer/"), // 'stream': require.resolve('stream-browserify'), 'stream': require.resolve('readable-stream'), 'process': 'process', 'crypto': require.resolve('crypto-browserify'), // 'crypto': require.resolve('react-native-crypto'), "create-hmac": require.resolve("create-hmac/browser"), 'urbit-key-generation': path.resolve(__dirname, '../urbit-key-generation'), 'urbit-ob': path.resolve(__dirname, '../urbit-ob'), 'sigil-js': path.resolve(__dirname, '../sigil-ts'), // 'buffer': '@craftzdog/react-native-buffer', // 'create-hmac': require.resolve('create-hmac'), }, }; config.resolver.resolveRequest = (context, moduleName, platform) => { if(moduleName === 'stream') return context.resolveRequest(context, 'readable-stream', platform) // if(moduleName === 'buffer') return context.resolveRequest(context, '@craftzdog/react-native-buffer', platform) // if (moduleName.includes("create-hmac")) console.log({context, moduleName, platform}) return context.resolveRequest(context, moduleName, platform) } module.exports = config;