[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-19 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/cordova-lib/pull/384


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-18 Thread vladimir-kotikov
Github user vladimir-kotikov commented on the pull request:

https://github.com/apache/cordova-lib/pull/384#issuecomment-185747825
  
The return value of `Q.then(thePromise)` is the same as for `thePromise()` 
due to its' (promise) nature, so i think there is nothing changed for caller.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-18 Thread TimBarham
Github user TimBarham commented on the pull request:

https://github.com/apache/cordova-lib/pull/384#issuecomment-185719821
  
Oops, sorry :smile: ... LGTM. There's nowhere we call these directly 
internally and expect an actual value in return?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-18 Thread vladimir-kotikov
Github user vladimir-kotikov commented on the pull request:

https://github.com/apache/cordova-lib/pull/384#issuecomment-185703661
  
@TimBarham, ping


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-16 Thread TimBarham
Github user TimBarham commented on the pull request:

https://github.com/apache/cordova-lib/pull/384#issuecomment-184676141
  
Thanks @vladimir-kotikov. Looks good on a quick look through. Will take a 
closer look in the morning.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-16 Thread vladimir-kotikov
Github user vladimir-kotikov commented on the pull request:

https://github.com/apache/cordova-lib/pull/384#issuecomment-184667609
  
@TimBarham, updated


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-16 Thread TimBarham
Github user TimBarham commented on a diff in the pull request:

https://github.com/apache/cordova-lib/pull/384#discussion_r52993992
  
--- Diff: cordova-lib/src/cordova/build.js ---
@@ -17,22 +17,26 @@
 under the License.
 */
 
-var cordovaUtil  = require('./util'),
-HooksRunner   = require('../hooks/HooksRunner');
+var Q = require('q'),
+cordovaUtil = require('./util'),
+HooksRunner = require('../hooks/HooksRunner');
 
 // Returns a promise.
 module.exports = function build(options) {
-var projectRoot = cordovaUtil.cdProjectRoot();
-options = cordovaUtil.preProcessOptions(options);
-
-// fire build hooks
-var hooksRunner = new HooksRunner(projectRoot);
-return hooksRunner.fire('before_build', options)
-.then(function() {
-return require('./cordova').raw.prepare(options);
-}).then(function() {
-return require('./cordova').raw.compile(options);
-}).then(function() {
-return hooksRunner.fire('after_build', options);
+return Q().then(function() {
+var opts = cordovaUtil.preProcessOptions(options);
+var projectRoot = cordovaUtil.cdProjectRoot();
+return [new HooksRunner(projectRoot), opts];
+})
+.spread(function (hooksRunner, options) {
--- End diff --

Well, that'd be my preference, as the code ends up much simpler and easy to 
read, to my mind. Otherwise we're arbitrarily splitting out the synchronous 
part of the process into its own separate promise, when there's no need to. But 
ultimately it's up to you :smile:.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-16 Thread vladimir-kotikov
Github user vladimir-kotikov commented on a diff in the pull request:

https://github.com/apache/cordova-lib/pull/384#discussion_r52985929
  
--- Diff: cordova-lib/src/cordova/build.js ---
@@ -17,22 +17,26 @@
 under the License.
 */
 
-var cordovaUtil  = require('./util'),
-HooksRunner   = require('../hooks/HooksRunner');
+var Q = require('q'),
+cordovaUtil = require('./util'),
+HooksRunner = require('../hooks/HooksRunner');
 
 // Returns a promise.
 module.exports = function build(options) {
-var projectRoot = cordovaUtil.cdProjectRoot();
-options = cordovaUtil.preProcessOptions(options);
-
-// fire build hooks
-var hooksRunner = new HooksRunner(projectRoot);
-return hooksRunner.fire('before_build', options)
-.then(function() {
-return require('./cordova').raw.prepare(options);
-}).then(function() {
-return require('./cordova').raw.compile(options);
-}).then(function() {
-return hooksRunner.fire('after_build', options);
+return Q().then(function() {
+var opts = cordovaUtil.preProcessOptions(options);
+var projectRoot = cordovaUtil.cdProjectRoot();
+return [new HooksRunner(projectRoot), opts];
+})
+.spread(function (hooksRunner, options) {
--- End diff --

> Why can't we just essentially wrap the entire method in return 
`Q().then(function() { ... };`?

We can and basically this would be same. I think it's just a matter of 
taste..
If you wish, i can update the PR in the manner you proposed


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-16 Thread TimBarham
Github user TimBarham commented on a diff in the pull request:

https://github.com/apache/cordova-lib/pull/384#discussion_r52984062
  
--- Diff: cordova-lib/src/cordova/build.js ---
@@ -17,22 +17,26 @@
 under the License.
 */
 
-var cordovaUtil  = require('./util'),
-HooksRunner   = require('../hooks/HooksRunner');
+var Q = require('q'),
+cordovaUtil = require('./util'),
+HooksRunner = require('../hooks/HooksRunner');
 
 // Returns a promise.
 module.exports = function build(options) {
-var projectRoot = cordovaUtil.cdProjectRoot();
-options = cordovaUtil.preProcessOptions(options);
-
-// fire build hooks
-var hooksRunner = new HooksRunner(projectRoot);
-return hooksRunner.fire('before_build', options)
-.then(function() {
-return require('./cordova').raw.prepare(options);
-}).then(function() {
-return require('./cordova').raw.compile(options);
-}).then(function() {
-return hooksRunner.fire('after_build', options);
+return Q().then(function() {
+var opts = cordovaUtil.preProcessOptions(options);
+var projectRoot = cordovaUtil.cdProjectRoot();
+return [new HooksRunner(projectRoot), opts];
+})
+.spread(function (hooksRunner, options) {
--- End diff --

Hey @vladimir-kotikov - what's the purpose of using `spread()` here (and 
elsewhere)? Why can't we just essentially wrap the entire method in `return 
Q().then(function() { ... };`?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org



[GitHub] cordova-lib pull request: CB-10519 Wrap all sync calls inside of `...

2016-02-10 Thread vladimir-kotikov
GitHub user vladimir-kotikov opened a pull request:

https://github.com/apache/cordova-lib/pull/384

CB-10519 Wrap all sync calls inside of `cordova.raw` methods into promises

This is a fix for [CB-10519](https://issues.apache.org/jira/browse/CB-10519)

This PR fixes the issue when promise returned from `cordova.raw` API would 
never be rejected if command is ran outside of cordova project. Instead 
syncronous exception will be thrown (by `util.preProcessOptions`), which is 
definitely unexpected for promise based API.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/MSOpenTech/cordova-lib CB-10519

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/cordova-lib/pull/384.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #384


commit 747c26e64a491645fad1dd109afb734bc9a5ce4a
Author: Vladimir Kotikov 
Date:   2016-02-10T12:45:19Z

CB-10519 Wrap all sync calls inside of `cordova.raw` methods into promises




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

-
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org