summaryrefslogtreecommitdiff
path: root/metro.config.js
blob: b4be0e5ffaa46c8f47ac2e623101c6ac6eb2636b (plain)
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;