You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ra...@apache.org on 2021/10/23 12:09:50 UTC

[cordova-osx] branch master updated: refactor!: drop q (#115)

This is an automated email from the ASF dual-hosted git repository.

raphinesse pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-osx.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e92b63  refactor!: drop q (#115)
4e92b63 is described below

commit 4e92b6383b36b46d856ddc71d1e7392eb5fd66d2
Author: Raphael von der GrĂ¼n <ra...@gmail.com>
AuthorDate: Sat Oct 23 14:09:46 2021 +0200

    refactor!: drop q (#115)
---
 .eslintrc.yml                                      |  4 ++
 bin/apple_osx_version                              |  2 +-
 bin/apple_xcode_version                            |  2 +-
 bin/check_reqs                                     |  2 +-
 bin/create                                         |  5 ++-
 bin/lib/check_reqs.js                              | 15 ++++----
 bin/lib/create.js                                  |  9 ++---
 bin/lib/versions.js                                | 43 ++++++++++------------
 bin/templates/scripts/cordova/build                |  2 +-
 bin/templates/scripts/cordova/clean                |  2 +-
 bin/templates/scripts/cordova/lib/build.js         | 14 +++----
 bin/templates/scripts/cordova/lib/clean.js         |  3 +-
 .../scripts/cordova/lib/plugman/Plugman.js         |  5 +--
 bin/templates/scripts/cordova/lib/prepare.js       | 11 +++---
 bin/templates/scripts/cordova/lib/run.js           |  5 +--
 bin/templates/scripts/cordova/lib/spawn.js         | 31 ++++++++--------
 bin/templates/scripts/cordova/run                  |  2 +-
 bin/update                                         |  5 ++-
 package.json                                       |  1 -
 19 files changed, 79 insertions(+), 84 deletions(-)

diff --git a/.eslintrc.yml b/.eslintrc.yml
index c35fe3e..992c201 100644
--- a/.eslintrc.yml
+++ b/.eslintrc.yml
@@ -17,6 +17,10 @@
 
 extends: '@cordova/eslint-config/node'
 
+# FIXME avoid rule exceptions
+rules:
+  prefer-promise-reject-errors: off
+
 overrides:
   - files: [tests/spec/**/*.js]
     extends: '@cordova/eslint-config/node-tests'
diff --git a/bin/apple_osx_version b/bin/apple_osx_version
index 5b4a8b8..b9c14e0 100755
--- a/bin/apple_osx_version
+++ b/bin/apple_osx_version
@@ -21,7 +21,7 @@
 
 var versions = require('./lib/versions.js');
 
-versions.get_apple_osx_version().done(null, function (err) {
+versions.get_apple_osx_version().catch(function (err) {
     console.log(err);
     process.exit(2);
 });
diff --git a/bin/apple_xcode_version b/bin/apple_xcode_version
index 2963329..7647828 100755
--- a/bin/apple_xcode_version
+++ b/bin/apple_xcode_version
@@ -21,7 +21,7 @@
 
 var versions = require('./lib/versions.js');
 
-versions.get_apple_xcode_version().done(function (version) {
+versions.get_apple_xcode_version().then(function (version) {
     console.log(version);
 }, function (err) {
     console.error(err);
diff --git a/bin/check_reqs b/bin/check_reqs
index 8f1d5ca..0ac8466 100755
--- a/bin/check_reqs
+++ b/bin/check_reqs
@@ -25,7 +25,7 @@ var check_reqs = require('./lib/check_reqs');
 if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) > -1) {
     console.log('Usage: check_reqs or node check_reqs');
 } else {
-    check_reqs.run().done(null, function (err) {
+    check_reqs.run().catch(function (err) {
         console.error('Failed to check requirements due to ' + err);
         process.exit(2);
     });
diff --git a/bin/create b/bin/create
index ad2ff0b..ec6c4e4 100755
--- a/bin/create
+++ b/bin/create
@@ -62,4 +62,7 @@ var options = {
     customTemplate: argv.argv.remain[3]
 };
 
-Api.createPlatform(projectPath, config, options).done();
+Api.createPlatform(projectPath, config, options).catch(err => {
+    console.error(err);
+    process.exit(2);
+});
diff --git a/bin/lib/check_reqs.js b/bin/lib/check_reqs.js
index 0c2ed34..7830e61 100644
--- a/bin/lib/check_reqs.js
+++ b/bin/lib/check_reqs.js
@@ -17,7 +17,6 @@
        under the License.
 */
 
-var Q = require('q');
 var shell = require('shelljs');
 var versions = require('./versions');
 
@@ -36,8 +35,8 @@ module.exports.run = module.exports.check_xcodebuild = function () {
 module.exports.check_os = function () {
     // Build OSX apps available for OSX platform only, so we reject on others platforms
     return process.platform === 'darwin'
-        ? Q.resolve(process.platform)
-        : Q.reject('Cordova tooling for OSX requires Apple OS X');
+        ? Promise.resolve(process.platform)
+        : Promise.reject('Cordova tooling for OSX requires Apple OS X');
 };
 
 /**
@@ -51,14 +50,14 @@ function checkTool (tool, minVersion, message) {
     // Check whether tool command is available at all
     var tool_command = shell.which(tool);
     if (!tool_command) {
-        return Q.reject(tool + ' was not found. ' + (message || ''));
+        return Promise.reject(tool + ' was not found. ' + (message || ''));
     }
     // check if tool version is greater than specified one
     return versions.get_tool_version(tool).then(function (version) {
         version = version.trim();
         return versions.compareVersions(version, minVersion) >= 0
-            ? Q.resolve(version)
-            : Q.reject('Cordova needs ' + tool + ' version ' + minVersion +
+            ? Promise.resolve(version)
+            : Promise.reject('Cordova needs ' + tool + ' version ' + minVersion +
               ' or greater, you have version ' + version + '. ' + (message || ''));
     });
 }
@@ -103,7 +102,7 @@ module.exports.check_all = function () {
         return promise.then(function () {
             // If fatal requirement is failed,
             // we don't need to check others
-            if (fatalIsHit) return Q();
+            if (fatalIsHit) return;
 
             var requirement = requirements[idx];
             return checkFn()
@@ -117,7 +116,7 @@ module.exports.check_all = function () {
                     result.push(requirement);
                 });
         });
-    }, Q())
+    }, Promise.resolve())
         .then(function () {
             // When chain is completed, return requirements array to upstream API
             return result;
diff --git a/bin/lib/create.js b/bin/lib/create.js
index 55c6d2c..7c67e7a 100755
--- a/bin/lib/create.js
+++ b/bin/lib/create.js
@@ -20,7 +20,6 @@
 */
 
 var shell = require('shelljs');
-var Q = require('q');
 var path = require('path');
 var fs = require('fs');
 var ROOT = path.join(__dirname, '..', '..');
@@ -153,12 +152,12 @@ exports.createProject = function (project_path, package_name, project_name, opts
 
     // check that project path doesn't exist
     if (fs.existsSync(project_path)) {
-        return Q.reject('Project already exists');
+        return Promise.reject('Project already exists');
     }
 
     // check that parent directory does exist so cp -r will not fail
     if (!fs.existsSync(project_parent)) {
-        return Q.reject(project_parent + ' does not exist. Please specify an existing parent folder');
+        return Promise.reject(project_parent + ' does not exist. Please specify an existing parent folder');
     }
 
     // create the project directory and copy over files
@@ -193,7 +192,7 @@ exports.createProject = function (project_path, package_name, project_name, opts
     copyScripts(project_path);
 
     events.emit('log', generateDoneMessage('create', use_shared));
-    return Q.resolve();
+    return Promise.resolve();
 };
 
 exports.updateProject = function (projectPath, opts, events) {
@@ -203,7 +202,7 @@ exports.updateProject = function (projectPath, opts, events) {
         copyScripts(projectPath);
         events.emit('log', generateDoneMessage('update', opts.link));
     });
-    return Q.resolve();
+    return Promise.resolve();
 };
 
 function generateDoneMessage (type, link) {
diff --git a/bin/lib/versions.js b/bin/lib/versions.js
index f5a71c4..9462d56 100755
--- a/bin/lib/versions.js
+++ b/bin/lib/versions.js
@@ -20,19 +20,17 @@
 */
 
 var child_process = require('child_process');
-var Q = require('q');
 
 exports.get_apple_osx_version = function () {
-    var d = Q.defer();
-    child_process.exec('xcodebuild -showsdks', function (error, stdout, stderr) {
-        if (error) {
-            d.reject(stderr);
-        } else {
-            d.resolve(stdout);
-        }
-    });
-
-    return d.promise.then(function (output) {
+    return new Promise((resolve, reject) => {
+        child_process.exec('xcodebuild -showsdks', function (error, stdout, stderr) {
+            if (error) {
+                reject(stderr);
+            } else {
+                resolve(stdout);
+            }
+        });
+    }).then(function (output) {
         var regex = /[0-9]*\.[0-9]*/;
         var versions = [];
         var regexOSX = /^OS X \d+/;
@@ -44,23 +42,20 @@ exports.get_apple_osx_version = function () {
         }
         versions.sort();
         console.log(versions[0]);
-        return Q();
-    }, function (stderr) {
-        return Q.reject(stderr);
     });
 };
 
 exports.get_apple_xcode_version = function () {
-    var d = Q.defer();
-    child_process.exec('xcodebuild -version', function (error, stdout, stderr) {
-        var versionMatch = /Xcode (.*)/.exec(stdout);
-        if (error || !versionMatch) {
-            d.reject(stderr);
-        } else {
-            d.resolve(versionMatch[1]);
-        }
+    return new Promise((resolve, reject) => {
+        child_process.exec('xcodebuild -version', function (error, stdout, stderr) {
+            var versionMatch = /Xcode (.*)/.exec(stdout);
+            if (error || !versionMatch) {
+                reject(stderr);
+            } else {
+                resolve(versionMatch[1]);
+            }
+        });
     });
-    return d.promise;
 };
 
 /**
@@ -72,7 +67,7 @@ exports.get_apple_xcode_version = function () {
 exports.get_tool_version = function (toolName) {
     switch (toolName) {
     case 'xcodebuild': return exports.get_apple_xcode_version();
-    default: return Q.reject(toolName + ' is not valid tool name. Valid names are: \'xcodebuild\'');
+    default: return Promise.reject(toolName + ' is not valid tool name. Valid names are: \'xcodebuild\'');
     }
 };
 
diff --git a/bin/templates/scripts/cordova/build b/bin/templates/scripts/cordova/build
index ca4f22c..a6bfef5 100755
--- a/bin/templates/scripts/cordova/build
+++ b/bin/templates/scripts/cordova/build
@@ -45,7 +45,7 @@ var buildOpts = nopt({
 // Make buildOptions compatible with PlatformApi build method spec
 buildOpts.argv = buildOpts.argv.remain;
 
-new Api().build(buildOpts).done(function () {
+new Api().build(buildOpts).then(function () {
     console.log('** BUILD SUCCEEDED **');
 }, function (err) {
     var errorMessage = (err && err.stack) ? err.stack : err;
diff --git a/bin/templates/scripts/cordova/clean b/bin/templates/scripts/cordova/clean
index a5f5246..5d711c4 100755
--- a/bin/templates/scripts/cordova/clean
+++ b/bin/templates/scripts/cordova/clean
@@ -26,7 +26,7 @@ if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) >=
     process.exit(0);
 }
 
-new Api().clean({ argv: process.argv.slice(2) }).done(function () {
+new Api().clean({ argv: process.argv.slice(2) }).then(function () {
     console.log('** CLEAN SUCCEEDED **');
 }, function (err) {
     console.error(err);
diff --git a/bin/templates/scripts/cordova/lib/build.js b/bin/templates/scripts/cordova/lib/build.js
index 26b6de8..577b6cd 100644
--- a/bin/templates/scripts/cordova/lib/build.js
+++ b/bin/templates/scripts/cordova/lib/build.js
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-var Q = require('q');
+const { promisify } = require('util');
 var path = require('path');
 var shell = require('shelljs');
 var spawn = require('./spawn');
@@ -33,16 +33,16 @@ module.exports.run = function (buildOpts) {
     buildOpts = buildOpts || {};
 
     if (buildOpts.debug && buildOpts.release) {
-        return Q.reject('Only one of "debug"/"release" options should be specified');
+        return Promise.reject('Only one of "debug"/"release" options should be specified');
     }
 
     if (buildOpts.device && buildOpts.emulator) {
-        return Q.reject('Only one of "device"/"emulator" options should be specified');
+        return Promise.reject('Only one of "device"/"emulator" options should be specified');
     }
 
     if (buildOpts.buildConfig) {
         if (!fs.existsSync(buildOpts.buildConfig)) {
-            return Q.reject('Build config file does not exist:' + buildOpts.buildConfig);
+            return Promise.reject('Build config file does not exist:' + buildOpts.buildConfig);
         }
         events.emit('log', 'Reading build config file:', path.resolve(buildOpts.buildConfig));
         var buildConfig = JSON.parse(fs.readFileSync(buildOpts.buildConfig, 'utf-8'));
@@ -72,7 +72,7 @@ module.exports.run = function (buildOpts) {
         if (buildOpts.provisioningProfile) {
             extraConfig += 'PROVISIONING_PROFILE = ' + buildOpts.provisioningProfile + '\n';
         }
-        return Q.nfcall(fs.writeFile, path.join(__dirname, '..', 'build-extras.xcconfig'), extraConfig, 'utf-8');
+        return promisify(fs.writeFile)(path.join(__dirname, '..', 'build-extras.xcconfig'), extraConfig, 'utf-8');
     }).then(function () {
         var configuration = buildOpts.release ? 'Release' : 'Debug';
 
@@ -115,7 +115,7 @@ function findXCodeProjectIn (projectPath) {
     });
 
     if (xcodeProjFiles.length === 0) {
-        return Q.reject('No Xcode project found in ' + projectPath);
+        return Promise.reject('No Xcode project found in ' + projectPath);
     }
     if (xcodeProjFiles.length > 1) {
         events.emit('warn', 'Found multiple .xcodeproj directories in \n' +
@@ -123,7 +123,7 @@ function findXCodeProjectIn (projectPath) {
     }
 
     var projectName = path.basename(xcodeProjFiles[0], '.xcodeproj');
-    return Q.resolve(projectName);
+    return Promise.resolve(projectName);
 }
 
 module.exports.findXCodeProjectIn = findXCodeProjectIn;
diff --git a/bin/templates/scripts/cordova/lib/clean.js b/bin/templates/scripts/cordova/lib/clean.js
index 20e8ac6..391e8ce 100644
--- a/bin/templates/scripts/cordova/lib/clean.js
+++ b/bin/templates/scripts/cordova/lib/clean.js
@@ -17,7 +17,6 @@
  * under the License.
  */
 
-var Q = require('q');
 var path = require('path');
 var shell = require('shelljs');
 var spawn = require('./spawn');
@@ -30,7 +29,7 @@ module.exports.run = function () {
     })[0];
 
     if (!projectName) {
-        return Q.reject('No Xcode project found in ' + projectPath);
+        return Promise.reject('No Xcode project found in ' + projectPath);
     }
 
     return spawn('xcodebuild', ['-project', projectName, '-configuration', 'Debug', '-alltargets', 'clean'], projectPath)
diff --git a/bin/templates/scripts/cordova/lib/plugman/Plugman.js b/bin/templates/scripts/cordova/lib/plugman/Plugman.js
index ea5e070..e3dfc78 100644
--- a/bin/templates/scripts/cordova/lib/plugman/Plugman.js
+++ b/bin/templates/scripts/cordova/lib/plugman/Plugman.js
@@ -17,7 +17,6 @@
        under the License.
 */
 
-var Q = require('q');
 var path = require('path');
 var fs = require('fs');
 var shell = require('shelljs');
@@ -53,7 +52,7 @@ Plugman.get = function (locations, events) {
 module.exports = Plugman;
 
 Plugman.prototype.addPlugin = function (plugin, installOptions) {
-    if (!plugin || plugin.constructor.name !== 'PluginInfo') { return Q.reject(new CordovaError('The parameter is incorrect. The first parameter to addPlugin should be a PluginInfo instance')); }
+    if (!plugin || plugin.constructor.name !== 'PluginInfo') { return Promise.reject(new CordovaError('The parameter is incorrect. The first parameter to addPlugin should be a PluginInfo instance')); }
 
     installOptions = installOptions || {};
     installOptions.variables = installOptions.variables || {};
@@ -96,7 +95,7 @@ Plugman.prototype.addPlugin = function (plugin, installOptions) {
 };
 
 Plugman.prototype.removePlugin = function (plugin, uninstallOptions) {
-    if (!plugin || plugin.constructor.name !== 'PluginInfo') { return Q.reject(new CordovaError('The parameter is incorrect. The first parameter to addPlugin should be a PluginInfo instance')); }
+    if (!plugin || plugin.constructor.name !== 'PluginInfo') { return Promise.reject(new CordovaError('The parameter is incorrect. The first parameter to addPlugin should be a PluginInfo instance')); }
 
     var self = this;
     var actions = new ActionStack();
diff --git a/bin/templates/scripts/cordova/lib/prepare.js b/bin/templates/scripts/cordova/lib/prepare.js
index 85ae0e4..2844172 100644
--- a/bin/templates/scripts/cordova/lib/prepare.js
+++ b/bin/templates/scripts/cordova/lib/prepare.js
@@ -17,7 +17,6 @@
     under the License.
 */
 
-var Q = require('q');
 var fs = require('fs');
 var path = require('path');
 var shell = require('shelljs');
@@ -40,7 +39,7 @@ module.exports.prepare = function (cordovaProject) {
         configMunger.get(this.locations.root), this.locations);
 
     // Update own www dir with project's www assets and plugins' assets and js-files
-    return Q.when(updateWww(cordovaProject, this.locations)).then(function () {
+    return Promise.resolve(updateWww(cordovaProject, this.locations)).then(function () {
         // update project according to config.xml changes.
         return updateProject(self._config, self.locations);
     }).then(function () {
@@ -161,7 +160,7 @@ function updateProject (platformConfig, locations) {
     return handleBuildSettings(platformConfig, locations).then(function () {
         if (name === originalName) {
             events.emit('verbose', 'OSX Product Name has not changed (still "' + originalName + '")');
-            return Q();
+            return Promise.resolve();
         }
 
         // Update product name inside pbxproj file
@@ -169,7 +168,7 @@ function updateProject (platformConfig, locations) {
         try {
             proj.parseSync();
         } catch (err) {
-            return Q.reject(new CordovaError('An error occurred during parsing of project.pbxproj. Start weeping. Output: ' + err));
+            return Promise.reject(new CordovaError('An error occurred during parsing of project.pbxproj. Start weeping. Output: ' + err));
         }
 
         proj.updateProductName(name);
@@ -194,13 +193,13 @@ function updateProject (platformConfig, locations) {
         fs.writeFileSync(locations.pbxproj, pbx_contents, 'utf-8');
         events.emit('verbose', 'Wrote out OSX Product Name and updated XCode project file names from "' + originalName + '" to "' + name + '".');
         // in case of updated paths we return them back to
-        return Q();
+        return Promise.resolve();
     });
 }
 
 function handleBuildSettings (platformConfig, locations) {
     // nothing to do
-    return Q();
+    return Promise.resolve();
 }
 
 function handleIcons (projectConfig, platformRoot) {
diff --git a/bin/templates/scripts/cordova/lib/run.js b/bin/templates/scripts/cordova/lib/run.js
index 8a427f1..db9a6bb 100644
--- a/bin/templates/scripts/cordova/lib/run.js
+++ b/bin/templates/scripts/cordova/lib/run.js
@@ -19,7 +19,6 @@
 
 /* jshint node: true */
 
-var Q = require('q');
 var path = require('path');
 var build = require('./build');
 var spawn = require('./spawn');
@@ -28,11 +27,9 @@ var events = require('cordova-common').events;
 var projectPath = path.join(__dirname, '..', '..');
 
 module.exports.run = function (runOptions) {
-    return Q.resolve().then(function () {
+    return Promise.resolve().then(function () {
         if (!runOptions.nobuild) {
             return build.run(runOptions);
-        } else {
-            return Q.resolve();
         }
     }).then(function () {
         return build.findXCodeProjectIn(projectPath);
diff --git a/bin/templates/scripts/cordova/lib/spawn.js b/bin/templates/scripts/cordova/lib/spawn.js
index 60f53bb..030188f 100644
--- a/bin/templates/scripts/cordova/lib/spawn.js
+++ b/bin/templates/scripts/cordova/lib/spawn.js
@@ -17,7 +17,6 @@
        under the License.
 */
 
-var Q = require('q');
 var proc = require('child_process');
 
 /**
@@ -29,20 +28,20 @@ var proc = require('child_process');
  * @return {Promise}              Promise either fullfilled or rejected with error code
  */
 module.exports = function (cmd, args, opt_cwd) {
-    var d = Q.defer();
-    try {
-        var child = proc.spawn(cmd, args, { cwd: opt_cwd, stdio: 'inherit' });
+    return new Promise((resolve, reject) => {
+        try {
+            var child = proc.spawn(cmd, args, { cwd: opt_cwd, stdio: 'inherit' });
 
-        child.on('exit', function (code) {
-            if (code) {
-                d.reject('Error code ' + code + ' for command: ' + cmd + ' with args: ' + args);
-            } else {
-                d.resolve();
-            }
-        });
-    } catch (e) {
-        console.error('error caught: ' + e);
-        d.reject(e);
-    }
-    return d.promise;
+            child.on('exit', function (code) {
+                if (code) {
+                    reject('Error code ' + code + ' for command: ' + cmd + ' with args: ' + args);
+                } else {
+                    resolve();
+                }
+            });
+        } catch (e) {
+            console.error('error caught: ' + e);
+            reject(e);
+        }
+    });
 };
diff --git a/bin/templates/scripts/cordova/run b/bin/templates/scripts/cordova/run
index 28f8647..6e2ca23 100755
--- a/bin/templates/scripts/cordova/run
+++ b/bin/templates/scripts/cordova/run
@@ -51,7 +51,7 @@ var opts = nopt({
 // Make options compatible with PlatformApi build method spec
 opts.argv = opts.argv.remain;
 
-new Api().run(opts).done(function () {
+new Api().run(opts).then(function () {
     console.log('** RUN SUCCEEDED **');
 }, function (err) {
     var errorMessage = (err && err.stack) ? err.stack : err;
diff --git a/bin/update b/bin/update
index 2f51276..8f2bb6e 100755
--- a/bin/update
+++ b/bin/update
@@ -32,4 +32,7 @@ if (args.help || args.argv.remain.length === 0) {
     process.exit(0);
 }
 
-Api.updatePlatform(args.argv.remain[0], { link: (args.link || args.shared) }).done();
+Api.updatePlatform(args.argv.remain[0], { link: (args.link || args.shared) }).catch(err => {
+    console.log(err);
+    process.exit(2);
+});
diff --git a/package.json b/package.json
index eaeede9..b25780c 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,6 @@
     "cordova-common": "^4.0.0",
     "nopt": "^4.0.1",
     "plist": "^3.0.1",
-    "q": "^1.4.1",
     "shelljs": "^0.5.3",
     "underscore": "^1.9.1",
     "unorm": "^1.4.1",

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org