Properly install multiple plugins in series
diff --git a/package.json b/package.json
index acacbd2..5be8601 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,8 @@
"engineStrict": true,
"dependencies": {
"cordova-lib": "^9.0.0",
- "nopt": "^4.0.1"
+ "nopt": "^4.0.1",
+ "p-each-series": "^1.0.0"
},
"devDependencies": {
"eslint": "^5.15.3",
diff --git a/src/commands.js b/src/commands.js
index 1e25716..81807c6 100644
--- a/src/commands.js
+++ b/src/commands.js
@@ -19,6 +19,7 @@
// copyright (c) 2013 Andrew Lunny, Adobe Systems
+const pEachSeries = require('p-each-series');
const { plugman } = require('cordova-lib');
module.exports = {
@@ -38,14 +39,10 @@
force: cli_opts.force || false,
nohooks: cli_opts.nohooks || false
};
- var p = Promise.resolve();
- cli_opts.plugin.forEach(function (pluginSrc) {
- p = p.then(function () {
- return plugman.install(cli_opts.platform, cli_opts.project, pluginSrc, cli_opts.plugins_dir, opts);
- });
- });
- return p;
+ return pEachSeries(cli_opts.plugin, pluginSrc =>
+ plugman.install(cli_opts.platform, cli_opts.project, pluginSrc, cli_opts.plugins_dir, opts)
+ );
},
uninstall (cli_opts) {
@@ -53,19 +50,15 @@
return console.log(plugman.help());
}
- var p = Promise.resolve();
- cli_opts.plugin.forEach(function (pluginSrc) {
- var opts = {
- www_dir: cli_opts.www,
- save: cli_opts.save || false,
- projectRoot: cli_opts.project
- };
- p = p.then(function () {
- return plugman.uninstall(cli_opts.platform, cli_opts.project, pluginSrc, cli_opts.plugins_dir, opts);
- });
- });
+ var opts = {
+ www_dir: cli_opts.www,
+ save: cli_opts.save || false,
+ projectRoot: cli_opts.project
+ };
- return p;
+ return pEachSeries(cli_opts.plugin, pluginSrc =>
+ plugman.uninstall(cli_opts.platform, cli_opts.project, pluginSrc, cli_opts.plugins_dir, opts)
+ );
},
create (cli_opts) {