58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
'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,
|
|
};
|