@@ -41,7 +41,13 @@ async function initializeReactNativeTemplate() {
4141  ] ) ; 
4242
4343  // Clean up 
44-   const  CLEANUP_PATHS  =  [ "ios" ,  "android" ,  "__tests__" ] ; 
44+   const  CLEANUP_PATHS  =  [ 
45+     "ios" , 
46+     "android" , 
47+     "__tests__" , 
48+     ".prettierrc.js" , 
49+     ".gitignore" , 
50+   ] ; 
4551
4652  for  ( const  cleanupPath  of  CLEANUP_PATHS )  { 
4753    await  fs . promises . rm ( path . join ( APP_PATH ,  cleanupPath ) ,  { 
@@ -71,18 +77,37 @@ async function patchPackageJson() {
7177      "MOCHA_REMOTE_CONTEXT=ferricExample node --run test -- " , 
7278  } ; 
7379
74-   const  { 
75-     "mocha-remote-cli" : mochaRemoteCliSpec , 
76-     "mocha-remote-react-native" : mochaRemoteReactNativeSpec , 
77-   }  =  otherPackageJson . dependencies  ||  { } ; 
80+   const  transferredDependencies  =  new  Set ( [ 
81+     "@rnx-kit/metro-config" , 
82+     "mocha-remote-cli" , 
83+     "mocha-remote-react-native" , 
84+   ] ) ; 
7885
79-   assert ( typeof  mochaRemoteCliSpec  ===  "string" ) ; 
80-   assert ( typeof  mochaRemoteReactNativeSpec  ===  "string" ) ; 
86+   const  {  dependencies : otherDependencies  =  { }  }  =  otherPackageJson ; 
8187
8288  packageJson . dependencies  =  { 
83-     [ "mocha-remote-cli" ] : mochaRemoteCliSpec , 
84-     [ "mocha-remote-react-native" ] : mochaRemoteReactNativeSpec , 
85-     ...packageJson . dependencies , 
89+     "react-native-macos-init" : "^2.1.3" , 
90+     "@react-native-node-api/node-addon-examples" : path . relative ( 
91+       APP_PATH , 
92+       path . join ( ROOT_PATH ,  "packages" ,  "node-addon-examples" ) , 
93+     ) , 
94+     "@react-native-node-api/node-tests" : path . relative ( 
95+       APP_PATH , 
96+       path . join ( ROOT_PATH ,  "packages" ,  "node-tests" ) , 
97+     ) , 
98+     "@react-native-node-api/ferric-example" : path . relative ( 
99+       APP_PATH , 
100+       path . join ( ROOT_PATH ,  "packages" ,  "ferric-example" ) , 
101+     ) , 
102+     "react-native-node-api" : path . relative ( 
103+       APP_PATH , 
104+       path . join ( ROOT_PATH ,  "packages" ,  "host" ) , 
105+     ) , 
106+     ...Object . fromEntries ( 
107+       Object . entries ( otherDependencies ) . filter ( ( [ name ] )  => 
108+         transferredDependencies . has ( name ) , 
109+       ) , 
110+     ) , 
86111  } ; 
87112
88113  await  fs . promises . writeFile ( 
@@ -94,29 +119,9 @@ async function patchPackageJson() {
94119
95120function  installDependencies ( )  { 
96121  console . log ( "Installing dependencies" ) ; 
97-   exec ( 
98-     "npm" , 
99-     [ 
100-       "install" , 
101-       "--save" , 
102-       "--prefer-offline" , 
103-       "--install-links" , 
104-       "react-native-macos-init" , 
105-       path . relative ( 
106-         APP_PATH , 
107-         path . join ( ROOT_PATH ,  "packages" ,  "node-addon-examples" ) , 
108-       ) , 
109-       path . relative ( APP_PATH ,  path . join ( ROOT_PATH ,  "packages" ,  "node-tests" ) ) , 
110-       path . relative ( 
111-         APP_PATH , 
112-         path . join ( ROOT_PATH ,  "packages" ,  "ferric-example" ) , 
113-       ) , 
114-       path . relative ( APP_PATH ,  path . join ( ROOT_PATH ,  "packages" ,  "host" ) ) , 
115-     ] , 
116-     { 
117-       cwd : APP_PATH , 
118-     } , 
119-   ) ; 
122+   exec ( "npm" ,  [ "install" ,  "--prefer-offline" ] ,  { 
123+     cwd : APP_PATH , 
124+   } ) ; 
120125} 
121126
122127function  initializeReactNativeMacOSTemplate ( )  { 
@@ -155,7 +160,13 @@ async function patchPodfile() {
155160
156161async  function  copySourceFiles ( )  { 
157162  console . log ( "Copying source files from test-app into macos-test-app:" ) ; 
158-   const  FILE_NAMES  =  [ "App.tsx" ,  "babel.config.js" ] ; 
163+   const  FILE_NAMES  =  [ 
164+     "App.tsx" , 
165+     // Adds the babel plugin needed to transform require calls 
166+     "babel.config.js" , 
167+     // Adds the ability to reference symlinked packages 
168+     "metro.config.js" , 
169+   ] ; 
159170  for  ( const  fileName  of  FILE_NAMES )  { 
160171    console . log ( `↳ ${ fileName }  ) ; 
161172    await  fs . promises . copyFile ( 
0 commit comments