You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by au...@apache.org on 2017/08/16 21:49:50 UTC
cordova-lib git commit: CB-12838 : prevented sorting and aphabetizing
platforms and plugins in pkgjson and config
Repository: cordova-lib
Updated Branches:
refs/heads/master fbad9b8ee -> e4c216e20
CB-12838 : prevented sorting and aphabetizing platforms and plugins in pkgjson and config
Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/e4c216e2
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/e4c216e2
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/e4c216e2
Branch: refs/heads/master
Commit: e4c216e20cb879bcf0b4e7127b9b3f8a1b79c875
Parents: fbad9b8
Author: Audrey So <au...@apache.org>
Authored: Tue Jul 11 17:21:41 2017 -0700
Committer: Audrey So <au...@apache.org>
Committed: Wed Aug 16 09:47:57 2017 -0700
----------------------------------------------------------------------
integration-tests/pkgJson-restore.spec.js | 10 ++++----
src/cordova/platform/addHelper.js | 2 +-
src/cordova/restore-util.js | 33 ++++++++++++++++----------
3 files changed, 27 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/e4c216e2/integration-tests/pkgJson-restore.spec.js
----------------------------------------------------------------------
diff --git a/integration-tests/pkgJson-restore.spec.js b/integration-tests/pkgJson-restore.spec.js
index 80ae1f8..8b814a0 100644
--- a/integration-tests/pkgJson-restore.spec.js
+++ b/integration-tests/pkgJson-restore.spec.js
@@ -981,9 +981,9 @@ describe('update pkg.json AND config.xml to include all plugins and merge unique
expect(pkgJson.cordova.plugins['cordova-plugin-camera']).toEqual({ variable_1: ' ', variable_2: ' ', variable_3: 'value_3' });
// Expect config.xml to have the plugins from pkg.json.
expect(Object.keys(configPlugins).length === 3);
- expect(configPlugins.indexOf('cordova-plugin-camera')).toEqual(0);
- expect(configPlugins.indexOf('cordova-plugin-device')).toEqual(1);
- expect(configPlugins.indexOf('cordova-plugin-splashscreen')).toEqual(2);
+ expect(configPlugins.indexOf('cordova-plugin-device')).toEqual(0);
+ expect(configPlugins.indexOf('cordova-plugin-splashscreen')).toEqual(1);
+ expect(configPlugins.indexOf('cordova-plugin-camera')).toEqual(2);
// Expect all 3 plugins to be restored.
expect(path.join(pluginsFolderPath13, 'cordova-plugin-device')).toExist();
expect(path.join(pluginsFolderPath13, 'cordova-plugin-camera')).toExist();
@@ -1110,8 +1110,8 @@ describe('update pkg.json AND config.xml to include all plugins/merge variables
}
// Config.xml now has the camera, splashscreen, and device plugin
expect(Object.keys(configPlugins).length === 3);
- expect(configPlugins.indexOf('cordova-plugin-camera')).toEqual(0);
- expect(configPlugins.indexOf('cordova-plugin-splashscreen')).toEqual(1);
+ expect(configPlugins.indexOf('cordova-plugin-splashscreen')).toEqual(0);
+ expect(configPlugins.indexOf('cordova-plugin-camera')).toEqual(1);
expect(configPlugins.indexOf('cordova-plugin-device')).toEqual(2);
// Pkg.json has all 3 plugins with the correct specs
expect(Object.keys(pkgJson.cordova.plugins).length === 3);
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/e4c216e2/src/cordova/platform/addHelper.js
----------------------------------------------------------------------
diff --git a/src/cordova/platform/addHelper.js b/src/cordova/platform/addHelper.js
index 878cd5a..702543c 100644
--- a/src/cordova/platform/addHelper.js
+++ b/src/cordova/platform/addHelper.js
@@ -267,7 +267,7 @@ function addHelper (cmd, hooksRunner, projectRoot, targets, opts) {
});
// Save to package.json.
if (modifiedPkgJson === true) {
- pkgJson.cordova.platforms = pkgJson.cordova.platforms.sort();
+ pkgJson.cordova.platforms = pkgJson.cordova.platforms;
fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2), 'utf8');
}
});
http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/e4c216e2/src/cordova/restore-util.js
----------------------------------------------------------------------
diff --git a/src/cordova/restore-util.js b/src/cordova/restore-util.js
index db32678..dde4e79 100644
--- a/src/cordova/restore-util.js
+++ b/src/cordova/restore-util.js
@@ -103,7 +103,6 @@ function installPlatformsFromConfigXML (platforms, opts) {
return a;
}, []);
comboArray = uniq;
- comboArray = comboArray.sort();
// No platforms to restore from either config.xml or package.json.
if (comboArray.length <= 0) {
@@ -121,7 +120,7 @@ function installPlatformsFromConfigXML (platforms, opts) {
pkgJson.cordova.platforms = [];
}
// If comboArray has the same platforms as pkg.json, no modification to pkg.json.
- if (comboArray.toString() === pkgJson.cordova.platforms.sort().toString()) {
+ if (comboArray.toString() === pkgJson.cordova.platforms.toString()) {
events.emit('verbose', 'Config.xml and package.json platforms are the same. No pkg.json modification.');
} else {
// Modify pkg.json to include the elements.
@@ -308,9 +307,9 @@ function installPluginsFromConfigXML (args) {
});
// Check to see if pkg.json plugin(id) and config plugin(id) match.
- if (comboPluginIdArray.sort().toString() !== pluginIdConfig.sort().toString()) {
+ if (comboPluginIdArray.toString() !== pluginIdConfig.toString()) {
// If there is a config plugin that does NOT already exist in
- // mergedPluginDataArray, add it and its variables.
+ // comboPluginIdArray, add it and its variables.
pluginIdConfig.forEach(function (item) {
if (comboPluginIdArray.indexOf(item) < 0) {
comboPluginIdArray.push(item);
@@ -341,19 +340,29 @@ function installPluginsFromConfigXML (args) {
fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2), 'utf8');
}
}
- // Write config.xml (only if plugins exist in package.json).
+ // Write to config.xml (only if it is different from package.json in content)
comboPluginIdArray.forEach(function (plugID) {
+ var configXMLPlugin = cfg.getPlugin(plugID);
if (pluginIdConfig.indexOf(plugID) < 0) {
pluginIdConfig.push(plugID);
- }
- cfg.removePlugin(plugID);
- if (mergedPluginSpecs[plugID]) {
+ if (mergedPluginSpecs[plugID]) {
+ cfg.removePlugin(plugID);
+ cfg.addPlugin({name: plugID, spec: mergedPluginSpecs[plugID]}, comboObject[plugID]);
+ modifiedConfigXML = true;
+ } else {
+ cfg.removePlugin(plugID);
+ cfg.addPlugin({name: plugID}, comboObject[plugID]);
+ modifiedConfigXML = true;
+ }
+
+ // Write only if the plugin variables or specs are different from pkgJson
+ } else if (((pluginIdConfig.indexOf(plugID) >= 0) && (mergedPluginSpecs[plugID]) &&
+ (configXMLPlugin.variables !== comboObject[plugID])) ||
+ ((mergedPluginSpecs[plugID] !== configXMLPlugin.spec) ||
+ (configXMLPlugin.variables !== comboObject[plugID]))) {
+ cfg.removePlugin(plugID);
cfg.addPlugin({name: plugID, spec: mergedPluginSpecs[plugID]}, comboObject[plugID]);
modifiedConfigXML = true;
- // If no spec, just add the plugin.
- } else {
- cfg.addPlugin({name: plugID}, comboObject[plugID]);
- modifiedConfigXML = true;
}
});
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org