'use strict'; const asyncCopyTo = require('./utils').asyncCopyTo; const chalk = require('chalk'); const resolvePath = require('./utils').resolvePath; const DEFAULT_FB_SOURCE_PATH = '~/fbsource/'; const DEFAULT_WWW_PATH = '~/www/'; const RELATIVE_RN_OSS_PATH = 'xplat/js/react-native-github/Libraries/Renderer/'; const RELATIVE_WWW_PATH = 'html/shared/react/'; async function doSync(buildPath, destPath) { console.log(`${chalk.bgYellow.black(' SYNCING ')} React to ${destPath}`); await asyncCopyTo(buildPath, destPath); console.log(`${chalk.bgGreen.black(' SYNCED ')} React to ${destPath}`); } async function syncReactDom(buildPath, wwwPath) { wwwPath = typeof wwwPath === 'string' ? wwwPath : DEFAULT_WWW_PATH; if (wwwPath.charAt(wwwPath.length - 1) !== '/') { wwwPath += '/'; } const destPath = resolvePath(wwwPath + RELATIVE_WWW_PATH); await doSync(buildPath, destPath); } async function syncReactNativeHelper( buildPath, fbSourcePath, relativeDestPath ) { fbSourcePath = typeof fbSourcePath === 'string' ? fbSourcePath : DEFAULT_FB_SOURCE_PATH; if (fbSourcePath.charAt(fbSourcePath.length - 1) !== '/') { fbSourcePath += '/'; } const destPath = resolvePath(fbSourcePath + relativeDestPath); await doSync(buildPath, destPath); } async function syncReactNative(fbSourcePath) { await syncReactNativeHelper( 'build/react-native', fbSourcePath, RELATIVE_RN_OSS_PATH ); } module.exports = { syncReactDom, syncReactNative, };