.then((json) => { if (!options.preferDownloaded) { assignWith(packageJson, json, (objValue, srcValue) => objValue === undefined ? srcValue : objValue); } else { Object.assign(packageJson, json); } })
.tap((downloadedPackageJson) => { if (!options.preferDownloaded) { assignWith(packageJson, downloadedPackageJson, (objValue, srcValue) => objValue === undefined ? srcValue : objValue); } else { Object.assign(packageJson, omit(downloadedPackageJson, 'name')); } return writeFile(target, JSON.stringify(packageJson, null, 2)); });