11const path = require ( 'path' ) ;
2- const {
3- getSentryExpoConfig
4- } = require ( "@sentry/react-native/metro" ) ;
2+ const { getSentryExpoConfig } = require ( "@sentry/react-native/metro" ) ;
53
64const config = getSentryExpoConfig ( __dirname ) ;
75
6+ // Ensure shims directory is watched by Metro
7+ config . watchFolders = [ ...( config . watchFolders ?? [ ] ) , path . resolve ( __dirname , 'shims' ) ] ;
8+
89const originalResolveRequest = config . resolver . resolveRequest ;
910
11+ const WEB_SHIMS = {
12+ 'react-native-pager-view' : 'shims/react-native-pager-view.web.tsx' ,
13+ '@sentry/react-native' : 'shims/sentry-react-native.web.tsx' ,
14+ '@dr.pogodin/react-native-static-server' : 'shims/react-native-static-server.web.ts' ,
15+ 'expo-network' : 'shims/expo-network.web.ts' ,
16+ 'expo-intent-launcher' : 'shims/expo-intent-launcher.web.ts' ,
17+ 'react-native-video' : 'shims/react-native-video.web.tsx' ,
18+ 'expo-file-system' : 'shims/expo-file-system.web.ts' ,
19+ 'expo-file-system/legacy' : 'shims/expo-file-system.web.ts' ,
20+ 'expo-clipboard' : 'shims/expo-clipboard.web.ts' ,
21+ } ;
22+
1023config . resolver . resolveRequest = ( context , moduleName , platform ) => {
11- if ( platform === 'web' && moduleName === 'react-native-pager-view' ) {
24+ if ( platform === 'web' && WEB_SHIMS [ moduleName ] ) {
1225 return {
13- filePath : path . resolve ( __dirname , 'shims/react-native-pager-view.web.tsx' ) ,
26+ filePath : path . resolve ( __dirname , WEB_SHIMS [ moduleName ] ) ,
1427 type : 'sourceFile' ,
1528 } ;
1629 }
@@ -20,4 +33,4 @@ config.resolver.resolveRequest = (context, moduleName, platform) => {
2033 return context . resolveRequest ( context , moduleName , platform ) ;
2134} ;
2235
23- module . exports = config ;
36+ module . exports = config ;
0 commit comments