diff --git a/private-cli/src/bundle/__mocks__/sign.js b/local-cli/bundle/__mocks__/sign.js similarity index 100% rename from private-cli/src/bundle/__mocks__/sign.js rename to local-cli/bundle/__mocks__/sign.js diff --git a/private-cli/src/bundle/__tests__/getAssetDestPathAndroid-test.js b/local-cli/bundle/__tests__/getAssetDestPathAndroid-test.js similarity index 100% rename from private-cli/src/bundle/__tests__/getAssetDestPathAndroid-test.js rename to local-cli/bundle/__tests__/getAssetDestPathAndroid-test.js diff --git a/private-cli/src/bundle/__tests__/getAssetDestPathIOS-test.js b/local-cli/bundle/__tests__/getAssetDestPathIOS-test.js similarity index 100% rename from private-cli/src/bundle/__tests__/getAssetDestPathIOS-test.js rename to local-cli/bundle/__tests__/getAssetDestPathIOS-test.js diff --git a/private-cli/src/bundle/__tests__/saveBundleAndMap-test.js b/local-cli/bundle/__tests__/saveBundleAndMap-test.js similarity index 100% rename from private-cli/src/bundle/__tests__/saveBundleAndMap-test.js rename to local-cli/bundle/__tests__/saveBundleAndMap-test.js diff --git a/private-cli/src/bundle/buildBundle.js b/local-cli/bundle/buildBundle.js similarity index 96% rename from private-cli/src/bundle/buildBundle.js rename to local-cli/bundle/buildBundle.js index f57e2abc386..d16485e26cf 100644 --- a/private-cli/src/bundle/buildBundle.js +++ b/local-cli/bundle/buildBundle.js @@ -11,7 +11,7 @@ const log = require('../util/log').out('bundle'); const processBundle = require('./processBundle'); const Promise = require('promise'); -const ReactPackager = require('../../../packager/react-packager'); +const ReactPackager = require('../../packager/react-packager'); const saveBundleAndMap = require('./saveBundleAndMap'); function buildBundle(args, config) { diff --git a/private-cli/src/bundle/bundle.js b/local-cli/bundle/bundle.js similarity index 90% rename from private-cli/src/bundle/bundle.js rename to local-cli/bundle/bundle.js index b4b8dafd8ec..425d2e21311 100644 --- a/private-cli/src/bundle/bundle.js +++ b/local-cli/bundle/bundle.js @@ -10,7 +10,7 @@ const buildBundle = require('./buildBundle'); const bundleCommandLineArgs = require('./bundleCommandLineArgs'); -const parseCommandLine = require('../../../packager/parseCommandLine'); +const parseCommandLine = require('../../packager/parseCommandLine'); /** * Builds the bundle starting to look for dependencies at the given entry path. diff --git a/private-cli/src/bundle/bundleCommandLineArgs.js b/local-cli/bundle/bundleCommandLineArgs.js similarity index 95% rename from private-cli/src/bundle/bundleCommandLineArgs.js rename to local-cli/bundle/bundleCommandLineArgs.js index 2eae48ef5d9..546829867d3 100644 --- a/private-cli/src/bundle/bundleCommandLineArgs.js +++ b/local-cli/bundle/bundleCommandLineArgs.js @@ -23,7 +23,7 @@ module.exports = [ command: 'transformer', description: 'Specify a custom transformer to be used (absolute path)', type: 'string', - default: require.resolve('../../../packager/transformer'), + default: require.resolve('../../packager/transformer'), }, { command: 'dev', description: 'If false, warnings are disabled and the bundle is minified', diff --git a/private-cli/src/bundle/getAssetDestPathAndroid.js b/local-cli/bundle/getAssetDestPathAndroid.js similarity index 100% rename from private-cli/src/bundle/getAssetDestPathAndroid.js rename to local-cli/bundle/getAssetDestPathAndroid.js diff --git a/private-cli/src/bundle/getAssetDestPathIOS.js b/local-cli/bundle/getAssetDestPathIOS.js similarity index 100% rename from private-cli/src/bundle/getAssetDestPathIOS.js rename to local-cli/bundle/getAssetDestPathIOS.js diff --git a/private-cli/src/bundle/processBundle.js b/local-cli/bundle/processBundle.js similarity index 100% rename from private-cli/src/bundle/processBundle.js rename to local-cli/bundle/processBundle.js diff --git a/private-cli/src/bundle/saveBundleAndMap.js b/local-cli/bundle/saveBundleAndMap.js similarity index 100% rename from private-cli/src/bundle/saveBundleAndMap.js rename to local-cli/bundle/saveBundleAndMap.js diff --git a/private-cli/src/bundle/sign.js b/local-cli/bundle/sign.js similarity index 100% rename from private-cli/src/bundle/sign.js rename to local-cli/bundle/sign.js diff --git a/private-cli/src/bundle/signedsource.js b/local-cli/bundle/signedsource.js similarity index 100% rename from private-cli/src/bundle/signedsource.js rename to local-cli/bundle/signedsource.js diff --git a/local-cli/cli.js b/local-cli/cli.js index a07ebce806a..5fa1427116f 100644 --- a/local-cli/cli.js +++ b/local-cli/cli.js @@ -13,20 +13,28 @@ require('../packager/babelRegisterOnly')([ /local-cli/ ]); -var bundle = require('../private-cli/src/bundle/bundle'); +var bundle = require('./bundle/bundle'); var childProcess = require('child_process'); -var Config = require('../private-cli/src/util/Config'); +var Config = require('./util/Config'); var defaultConfig = require('./default.config'); +var dependencies = require('./dependencies/dependencies'); var fs = require('fs'); -var generate = require('../private-cli/src/generate/generate'); -var library = require('../private-cli/src/library/library'); +var generate = require('./generate/generate'); +var library = require('./library/library'); var path = require('path'); var Promise = require('promise'); -var runAndroid = require('../private-cli/src/runAndroid/runAndroid'); -var server = require('../private-cli/src/server/server'); +var runAndroid = require('./runAndroid/runAndroid'); +var server = require('./server/server'); var TerminalAdapter = require('yeoman-environment/lib/adapter.js'); var yeoman = require('yeoman-environment'); -var upgrade = require('../private-cli/src/upgrade/upgrade'); +var upgrade = require('./upgrade/upgrade'); + +var fs = require('fs'); +var gracefulFs = require('graceful-fs'); + +// graceful-fs helps on getting an error when we run out of file +// descriptors. When that happens it will enqueue the operation and retry it. +gracefulFs.gracefulify(fs); var documentedCommands = { 'start': [server, 'starts the webserver'], @@ -38,6 +46,11 @@ var documentedCommands = { 'updating the react-native version in your package.json and running npm install'] }; +var exportedCommands = {dependencies: dependencies}; +Object.keys(documentedCommands).forEach(function(command) { + exportedCommands[command] = documentedCommands[command][0]; +}); + var undocumentedCommands = { 'init': [printInitWarning, ''], }; @@ -148,4 +161,5 @@ if (require.main === module) { module.exports = { run: run, init: init, + commands: exportedCommands }; diff --git a/private-cli/src/dependencies/dependencies.js b/local-cli/dependencies/dependencies.js similarity index 94% rename from private-cli/src/dependencies/dependencies.js rename to local-cli/dependencies/dependencies.js index f883dbc0ac5..ee395f6a86b 100644 --- a/private-cli/src/dependencies/dependencies.js +++ b/local-cli/dependencies/dependencies.js @@ -10,10 +10,10 @@ const fs = require('fs'); const log = require('../util/log').out('dependencies'); -const parseCommandLine = require('../../../packager/parseCommandLine'); +const parseCommandLine = require('../../packager/parseCommandLine'); const path = require('path'); const Promise = require('promise'); -const ReactPackager = require('../../../packager/react-packager'); +const ReactPackager = require('../../packager/react-packager'); /** * Returns the dependencies an entry path has. @@ -42,7 +42,7 @@ function _dependencies(argv, config, resolve, reject) { }, { command: 'transformer', type: 'string', - default: require.resolve('../../../packager/transformer'), + default: require.resolve('../../packager/transformer'), description: 'Specify a custom transformer to be used (absolute path)' }, { command: 'verbose', diff --git a/private-cli/src/generate/generate.js b/local-cli/generate/generate.js similarity index 90% rename from private-cli/src/generate/generate.js rename to local-cli/generate/generate.js index c6a2bf07974..5d073e9610b 100644 --- a/private-cli/src/generate/generate.js +++ b/local-cli/generate/generate.js @@ -8,7 +8,7 @@ */ 'use strict'; -const parseCommandLine = require('../../../packager/parseCommandLine'); +const parseCommandLine = require('../../packager/parseCommandLine'); const path = require('path'); const Promise = require('promise'); const yeoman = require('yeoman-environment'); @@ -46,7 +46,7 @@ function _generate(argv, config, resolve, reject) { process.chdir(args['project-path']); const env = yeoman.createEnv(); - env.register(path.join(__dirname, '../../../local-cli/generator'), 'react:app'); + env.register(path.join(__dirname, '../generator'), 'react:app'); env.run( ['react:app', args['project-name']], { diff --git a/private-cli/src/library/library.js b/local-cli/library/library.js similarity index 96% rename from private-cli/src/library/library.js rename to local-cli/library/library.js index 159884f705f..d495b28b996 100644 --- a/private-cli/src/library/library.js +++ b/local-cli/library/library.js @@ -11,7 +11,7 @@ const copyAndReplace = require('../util/copyAndReplace'); const fs = require('fs'); const isValidPackageName = require('../util/isValidPackageName'); -const parseCommandLine = require('../../../packager/parseCommandLine'); +const parseCommandLine = require('../../packager/parseCommandLine'); const path = require('path'); const Promise = require('promise'); const walk = require('../util/walk'); diff --git a/private-cli/src/runAndroid/runAndroid.js b/local-cli/runAndroid/runAndroid.js similarity index 98% rename from private-cli/src/runAndroid/runAndroid.js rename to local-cli/runAndroid/runAndroid.js index acee9e85a9d..37520f4ea3f 100644 --- a/private-cli/src/runAndroid/runAndroid.js +++ b/local-cli/runAndroid/runAndroid.js @@ -12,7 +12,7 @@ const chalk = require('chalk'); const child_process = require('child_process'); const fs = require('fs'); const path = require('path'); -const parseCommandLine = require('../../../packager/parseCommandLine'); +const parseCommandLine = require('../../packager/parseCommandLine'); const isPackagerRunning = require('../util/isPackagerRunning'); const Promise = require('promise'); diff --git a/private-cli/src/server/checkNodeVersion.js b/local-cli/server/checkNodeVersion.js similarity index 100% rename from private-cli/src/server/checkNodeVersion.js rename to local-cli/server/checkNodeVersion.js diff --git a/private-cli/src/server/formatBanner.js b/local-cli/server/formatBanner.js similarity index 100% rename from private-cli/src/server/formatBanner.js rename to local-cli/server/formatBanner.js diff --git a/private-cli/src/server/runServer.js b/local-cli/server/runServer.js similarity index 59% rename from private-cli/src/server/runServer.js rename to local-cli/server/runServer.js index 200857c57ed..12458dd3781 100644 --- a/private-cli/src/server/runServer.js +++ b/local-cli/server/runServer.js @@ -9,24 +9,21 @@ 'use strict'; const connect = require('connect'); -// TODO: move middlewares to private-cli/src/server -const cpuProfilerMiddleware = require('../../../packager/cpuProfilerMiddleware'); -const getDevToolsMiddleware = require('../../../packager/getDevToolsMiddleware'); +const cpuProfilerMiddleware = require('../../packager/cpuProfilerMiddleware'); +const getDevToolsMiddleware = require('../../packager/getDevToolsMiddleware'); const http = require('http'); const isAbsolutePath = require('absolute-path'); -const loadRawBodyMiddleware = require('../../../packager/loadRawBodyMiddleware'); -const openStackFrameInEditorMiddleware = require('../../../packager/openStackFrameInEditorMiddleware'); +const loadRawBodyMiddleware = require('../../packager/loadRawBodyMiddleware'); +const openStackFrameInEditorMiddleware = require('../../packager/openStackFrameInEditorMiddleware'); const path = require('path'); -const ReactPackager = require('../../../packager/react-packager'); -const statusPageMiddleware = require('../../../packager/statusPageMiddleware.js'); -const systraceProfileMiddleware = require('../../../packager/systraceProfileMiddleware.js'); -const webSocketProxy = require('../../../packager/webSocketProxy.js'); +const ReactPackager = require('../../packager/react-packager'); +const statusPageMiddleware = require('../../packager/statusPageMiddleware.js'); +const systraceProfileMiddleware = require('../../packager/systraceProfileMiddleware.js'); function runServer(args, config, readyCallback) { - var wsProxy = null; const app = connect() .use(loadRawBodyMiddleware) - .use(getDevToolsMiddleware(args, () => wsProxy && wsProxy.isChromeConnected())) + .use(getDevToolsMiddleware(args)) .use(openStackFrameInEditorMiddleware) .use(statusPageMiddleware) .use(systraceProfileMiddleware) @@ -41,15 +38,7 @@ function runServer(args, config, readyCallback) { .use(connect.compress()) .use(connect.errorHandler()); - const serverInstance = http.createServer(app).listen( - args.port, - '::', - function() { - wsProxy = webSocketProxy.attachToServer(serverInstance, '/debugger-proxy'); - webSocketProxy.attachToServer(serverInstance, '/devtools'); - readyCallback(); - } - ); + return http.createServer(app).listen(args.port, '::', readyCallback); } function getAppMiddleware(args, config) { @@ -69,7 +58,7 @@ function getAppMiddleware(args, config) { resetCache: args.resetCache || args['reset-cache'], polyfillModuleNames: [ require.resolve( - '../../../Libraries/JavaScriptAppEngine/polyfills/document.js' + '../../Libraries/JavaScriptAppEngine/polyfills/document.js' ), ], verbose: args.verbose, diff --git a/private-cli/src/server/server.js b/local-cli/server/server.js similarity index 91% rename from private-cli/src/server/server.js rename to local-cli/server/server.js index 8545e24eaf2..9ac27d79556 100644 --- a/private-cli/src/server/server.js +++ b/local-cli/server/server.js @@ -11,10 +11,11 @@ const chalk = require('chalk'); const checkNodeVersion = require('./checkNodeVersion'); const formatBanner = require('./formatBanner'); -const parseCommandLine = require('../../../packager/parseCommandLine'); +const parseCommandLine = require('../../packager/parseCommandLine'); const path = require('path'); const Promise = require('promise'); const runServer = require('./runServer'); +const webSocketProxy = require('../../packager/webSocketProxy.js'); /** * Starts the React Native Packager Server. @@ -47,7 +48,7 @@ function _server(argv, config, resolve, reject) { }, { command: 'transformer', type: 'string', - default: require.resolve('../../../packager/transformer'), + default: require.resolve('../../packager/transformer'), description: 'Specify a custom transformer to be used (absolute path)' }, { command: 'resetCache', @@ -137,9 +138,12 @@ function _server(argv, config, resolve, reject) { } function startServer(args, config) { - runServer(args, config, () => + const serverInstance = runServer(args, config, () => console.log('\nReact packager ready.\n') ); + + webSocketProxy.attachToServer(serverInstance, '/debugger-proxy'); + webSocketProxy.attachToServer(serverInstance, '/devtools'); } function argToArray(arg) { diff --git a/private-cli/src/upgrade/upgrade.js b/local-cli/upgrade/upgrade.js similarity index 90% rename from private-cli/src/upgrade/upgrade.js rename to local-cli/upgrade/upgrade.js index 222b6cd3159..daecd0ba524 100644 --- a/private-cli/src/upgrade/upgrade.js +++ b/local-cli/upgrade/upgrade.js @@ -17,7 +17,7 @@ module.exports = function upgrade(args, config) { args = args || process.argv; let env = yeoman.createEnv(); let name = JSON.parse(fs.readFileSync('package.json', 'utf8')).name; - let generatorPath = path.join(__dirname, '..', '..', '..', 'local-cli', 'generator'); + let generatorPath = path.join(__dirname, '..', 'generator'); env.register(generatorPath, 'react:app'); let generatorArgs = ['react:app', name].concat(args); return new Promise((resolve) => env.run(generatorArgs, {upgrade: true}, resolve)); diff --git a/private-cli/src/util/Config.js b/local-cli/util/Config.js similarity index 100% rename from private-cli/src/util/Config.js rename to local-cli/util/Config.js diff --git a/private-cli/src/util/__mocks__/log.js b/local-cli/util/__mocks__/log.js similarity index 100% rename from private-cli/src/util/__mocks__/log.js rename to local-cli/util/__mocks__/log.js diff --git a/private-cli/src/util/copyAndReplace.js b/local-cli/util/copyAndReplace.js similarity index 100% rename from private-cli/src/util/copyAndReplace.js rename to local-cli/util/copyAndReplace.js diff --git a/private-cli/src/util/isPackagerRunning.js b/local-cli/util/isPackagerRunning.js similarity index 100% rename from private-cli/src/util/isPackagerRunning.js rename to local-cli/util/isPackagerRunning.js diff --git a/private-cli/src/util/isValidPackageName.js b/local-cli/util/isValidPackageName.js similarity index 100% rename from private-cli/src/util/isValidPackageName.js rename to local-cli/util/isValidPackageName.js diff --git a/private-cli/src/util/log.js b/local-cli/util/log.js similarity index 100% rename from private-cli/src/util/log.js rename to local-cli/util/log.js diff --git a/private-cli/src/util/walk.js b/local-cli/util/walk.js similarity index 100% rename from private-cli/src/util/walk.js rename to local-cli/util/walk.js diff --git a/package.json b/package.json index 6ae28975de5..7d7a9ee45ee 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "packager", "cli.js", "local-cli", - "private-cli", "init.sh", "LICENSE", "PATENTS", diff --git a/private-cli/index.js b/private-cli/index.js deleted file mode 100644 index dc2f8993d6e..00000000000 --- a/private-cli/index.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ -'use strict'; - -require('../packager/babelRegisterOnly')([ - /private-cli\/src/, - /packager\/[^\/]*/ -]); - -var cli = require('./src/cli'); -var fs = require('fs'); -var gracefulFs = require('graceful-fs'); - -// graceful-fs helps on getting an error when we run out of file -// descriptors. When that happens it will enqueue the operation and retry it. -gracefulFs.gracefulify(fs); - -module.exports = cli; diff --git a/private-cli/src/cli.js b/private-cli/src/cli.js deleted file mode 100644 index 7d3bc04138d..00000000000 --- a/private-cli/src/cli.js +++ /dev/null @@ -1,71 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ -'use strict'; - -const bundle = require('./bundle/bundle'); -const Config = require('./util/Config'); -const dependencies = require('./dependencies/dependencies'); -const Promise = require('promise'); -const server = require('./server/server'); -const upgrade = require('./upgrade/upgrade'); - -const documentedCommands = { - bundle: bundle, - dependencies: dependencies, - server: server, - upgrade, -}; - -const hiddenCommands = { - '-h': help, - '--help': help, -}; - -/** - * Programmatic entry point for the cli. This function runs the given - * command passing it the arguments array. - */ -function run(pwd, command, commandArgs) { - if (!command) { - throw new Error(helpMessage()); - } - commandArgs = commandArgs || []; - - const commandToExec = documentedCommands[command] || hiddenCommands[command]; - if (!commandToExec) { - throw new Error(helpMessage(command)); - } - - commandToExec(commandArgs, Config.get(pwd)).done(); -} - -function helpMessage(command) { - const validCommands = Object - .keys(documentedCommands) - .map(c => '"' + c + '"') - .join(' | '); - - if (command) { - return 'Unknown command "' + command + '". ' + - 'Available commands: ' + validCommands; - } else { - return 'Must specify a command. Available commands: ' + - validCommands; - } -} - -function help() { - console.log(helpMessage()); - return Promise.resolve(); -} - -module.exports = { - commands: documentedCommands, - run: run, -};