Live video on the AT Protocol
at next 56 lines 1.7 kB view raw
1const { FileStore } = require("metro-cache"); 2const path = require("path"); 3 4const { getSentryExpoConfig } = require("@sentry/react-native/metro"); 5 6let config = getSentryExpoConfig(__dirname, { 7 // [Web-only]: Enables CSS support in Metro. 8 isCSSEnabled: true, 9}); 10 11config.cacheStores = [ 12 new FileStore({ 13 root: path.join(__dirname, "node_modules", ".cache", "metro"), 14 }), 15]; 16 17const overrides = {}; 18 19const nativeOverrides = { 20 crypto: "react-native-quick-crypto", 21 // "node:crypto": "react-native-quick-crypto", 22 stream: "readable-stream", 23 // "node:buffer": "buffer", 24 // "node:util": "util", 25 // "node:http": path.resolve(__dirname, "./empty.mjs"), 26 // "node:https": path.resolve(__dirname, "./empty.mjs"), 27 // // "node:events": "events", 28}; 29 30config.resolver.resolveRequest = (context, moduleName, platform) => { 31 if (moduleName.includes("zustand")) { 32 const result = require.resolve(moduleName); 33 return context.resolveRequest(context, result, platform); 34 } 35 if (platform !== "web") { 36 for (const [key, value] of Object.entries(nativeOverrides)) { 37 if (moduleName === key) { 38 return context.resolveRequest(context, value, platform); 39 } 40 } 41 } 42 for (const [key, value] of Object.entries(overrides)) { 43 if (moduleName === key) { 44 return context.resolveRequest(context, value, platform); 45 } 46 } 47 // otherwise chain to the standard Metro resolver. 48 return context.resolveRequest(context, moduleName, platform); 49}; 50 51config.resolver.sourceExts.push("mjs"); 52config.resolver.assetExts.push("md"); 53 54config.resolver.unstable_conditionNames.push("@streamplace/dev", "browser"); 55 56module.exports = config;