Skip to content

Commit b78b49e

Browse files
committed
Pass packageName through promises
A little bit more verbose but explicit and doesn't rely on shared mutable state.
1 parent 454f908 commit b78b49e

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

packages/create-react-app/index.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -204,28 +204,34 @@ function install(useYarn, dependencies, verbose, isOnline) {
204204

205205
function run(root, appName, version, verbose, originalDirectory, template) {
206206
var packageToInstall = getInstallPackage(version);
207-
var packageName = packageToInstall;
208-
209207
var allDependencies = ['react', 'react-dom', packageToInstall];
210208

211209
console.log('Installing packages. This might take a couple minutes.');
212210

213211
var useYarn = shouldUseYarn();
214212
getPackageName(packageToInstall)
215-
.then(function(_packageName) {
216-
packageName = _packageName;
217-
return checkIfOnline(useYarn);
213+
.then(function(packageName) {
214+
return checkIfOnline(useYarn).then(function(isOnline) {
215+
return {
216+
isOnline: isOnline,
217+
packageName: packageName,
218+
};
219+
});
218220
})
219-
.then(function(isOnline) {
221+
.then(function(info) {
222+
var isOnline = info.isOnline;
223+
var packageName = info.packageName;
220224
console.log(
221225
'Installing ' + chalk.cyan('react') + ', ' + chalk.cyan('react-dom') +
222226
', and ' + chalk.cyan(packageName) + '...'
223227
);
224228
console.log();
225229

226-
return install(useYarn, allDependencies, verbose, isOnline);
230+
return install(useYarn, allDependencies, verbose, isOnline).then(function() {
231+
return packageName;
232+
});
227233
})
228-
.then(function() {
234+
.then(function(packageName) {
229235
checkNodeVersion(packageName);
230236

231237
// Since react-scripts has been installed with --save

0 commit comments

Comments
 (0)