1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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;
|