diff --git a/local-cli/dependencies/dependencies.js b/local-cli/dependencies/dependencies.js index 372c65705cc..a9ac1911821 100644 --- a/local-cli/dependencies/dependencies.js +++ b/local-cli/dependencies/dependencies.js @@ -80,50 +80,28 @@ function _dependencies(argv, config, resolve, reject, packagerInstance) { ? fs.createWriteStream(args.output) : process.stdout; - if (packagerInstance) { - resolve(packagerInstance.getOrderedDependencyPaths(options).then( - deps => { - return _dependenciesHandler( - deps, - packageOpts.projectRoots, - outStream, - writeToFile - ); - } - )); - } else { - resolve(ReactPackager.createClientFor(packageOpts).then(client => { - return client.getOrderedDependencyPaths(options) - .then(deps => { - client.close(); - return _dependenciesHandler( - deps, - packageOpts.projectRoots, - outStream, - writeToFile - ); - }); - })); - } -} + resolve((packagerInstance ? + packagerInstance.getOrderedDependencyPaths(options) : + ReactPackager.getOrderedDependencyPaths(packageOpts, options)).then( + deps => { + deps.forEach(modulePath => { + // Temporary hack to disable listing dependencies not under this directory. + // Long term, we need either + // (a) JS code to not depend on anything outside this directory, or + // (b) Come up with a way to declare this dependency in Buck. + const isInsideProjectRoots = packageOpts.projectRoots.filter( + root => modulePath.startsWith(root) + ).length > 0; -function _dependenciesHandler(deps, projectRoots, outStream, writeToFile) { - deps.forEach(modulePath => { - // Temporary hack to disable listing dependencies not under this directory. - // Long term, we need either - // (a) JS code to not depend on anything outside this directory, or - // (b) Come up with a way to declare this dependency in Buck. - const isInsideProjectRoots = projectRoots.filter( - root => modulePath.startsWith(root) - ).length > 0; - - if (isInsideProjectRoots) { - outStream.write(modulePath + '\n'); + if (isInsideProjectRoots) { + outStream.write(modulePath + '\n'); + } + }); + return writeToFile + ? Promise.denodeify(outStream.end).bind(outStream)() + : Promise.resolve(); } - }); - return writeToFile - ? Promise.denodeify(outStream.end).bind(outStream)() - : Promise.resolve(); + )); } module.exports = dependencies; diff --git a/packager/react-packager/index.js b/packager/react-packager/index.js index 49848ededce..960342f6243 100644 --- a/packager/react-packager/index.js +++ b/packager/react-packager/index.js @@ -64,6 +64,15 @@ exports.getDependencies = function(options, bundleOptions) { }); }; +exports.getOrderedDependencyPaths = function(options, bundleOptions) { + var server = createNonPersistentServer(options); + return server.getOrderedDependencyPaths(bundleOptions) + .then(function(paths) { + server.end(); + return paths; + }); +}; + exports.createClientFor = function(options) { if (options.verbose) { enableDebug();