-
Notifications
You must be signed in to change notification settings - Fork 48.3k
/
Copy pathsync.js
57 lines (45 loc) · 1.46 KB
/
sync.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
'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,
};