99
1010'use strict' ;
1111
12+ const { getPlatformResolver} = require ( '@callstack/out-of-tree-platforms' ) ;
1213const { getDefaultConfig} = require ( '@react-native/metro-config' ) ;
1314const { mergeConfig} = require ( 'metro-config' ) ;
1415const path = require ( 'path' ) ;
1516
16- // todo: extract to package
17- const PlatformResolver = ( config = { } ) => {
18- const platformName =
19- config . platformName ?? '@callstack/react-native-visionos' ;
20-
21- return ( context , moduleName , platform ) => {
22- let modifiedModuleName = moduleName ;
23- if ( moduleName === 'react-native' ) {
24- modifiedModuleName = platformName ;
25- } else if ( moduleName . startsWith ( 'react-native/' ) ) {
26- modifiedModuleName = `${ platformName } /${ modifiedModuleName . slice (
27- 'react-native/' . length ,
28- ) } `;
29- }
30-
31- return context . resolveRequest ( context , modifiedModuleName , platform ) ;
32- } ;
33- } ;
34-
3517/**
3618 * This cli config is needed for development purposes, e.g. for running
3719 * integration tests during local development or on CI services.
@@ -55,7 +37,9 @@ const config = {
5537 extraNodeModules : {
5638 'react-native' : path . resolve ( __dirname , '../react-native' ) ,
5739 } ,
58- resolveRequest : PlatformResolver ( ) ,
40+ resolveRequest : getPlatformResolver ( {
41+ platformNameMap : [ { visionos : '@callstack/react-native-vision' } ] ,
42+ } ) ,
5943 sourceExts : getDefaultConfig ( __dirname ) . resolver . sourceExts ?. flatMap (
6044 ext => [ `visionos.${ ext } ` , ext ] ,
6145 ) ,
0 commit comments