From cc6978f396701fe47775a1b95bc9062cd39ddc73 Mon Sep 17 00:00:00 2001 From: Justin Chapman Date: Wed, 8 Aug 2018 21:01:23 -0700 Subject: [PATCH] Allow for undefined userConfig (#18660) Summary: Fixes #18249 This PR fixes an error that occurs when running `react-native link` in projects laid out as described on the React Native website section on integrating with existing apps (https://facebook.github.io/react-native/docs/integration-with-existing-apps.html) where an `ios/` subdirectory exists but an `android/` subdirectory does not exist screenshot 2018-04-02 14 57 27 None [CLI] [BUGFIX] [local-cli/core/android/index.js] - Allow for undefined userConfig Pull Request resolved: https://github.com/facebook/react-native/pull/18660 Differential Revision: D9235171 Pulled By: hramos fbshipit-source-id: 230dd54f8911046f7e01633f99c4f02070fa0172 --- local-cli/core/__tests__/android/getProjectConfig.spec.js | 7 +++++++ local-cli/core/android/index.js | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/local-cli/core/__tests__/android/getProjectConfig.spec.js b/local-cli/core/__tests__/android/getProjectConfig.spec.js index 02ee04512a4..594f4d13a32 100644 --- a/local-cli/core/__tests__/android/getProjectConfig.spec.js +++ b/local-cli/core/__tests__/android/getProjectConfig.spec.js @@ -37,6 +37,13 @@ describe('android::getProjectConfig', () => { }); }); + it("returns `null` if manifest file hasn't been found and userConfig is not defined", () => { + const userConfig = undefined; + const folder = '/noManifest'; + + expect(getProjectConfig(folder, userConfig)).toBeNull(); + }); + it("returns `null` if manifest file hasn't been found", () => { const userConfig = {}; const folder = '/noManifest'; diff --git a/local-cli/core/android/index.js b/local-cli/core/android/index.js index 914341a1223..f8e5586eb6e 100644 --- a/local-cli/core/android/index.js +++ b/local-cli/core/android/index.js @@ -21,7 +21,7 @@ const getPackageName = manifest => manifest.attr.package; * Gets android project config by analyzing given folder and taking some * defaults specified by user into consideration */ -exports.projectConfig = function projectConfigAndroid(folder, userConfig) { +exports.projectConfig = function projectConfigAndroid(folder, userConfig = {}) { const src = userConfig.sourceDir || findAndroidAppFolder(folder); if (!src) { @@ -95,7 +95,7 @@ exports.projectConfig = function projectConfigAndroid(folder, userConfig) { */ exports.dependencyConfig = function dependencyConfigAndroid( folder, - userConfig, + userConfig = {}, ) { const src = userConfig.sourceDir || findAndroidAppFolder(folder);