cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Braden Shepherdson <>
Subject Major refactoring of Plugman and CLI
Date Mon, 23 Sep 2013 18:08:13 GMT
tl;dr: Plugman and CLI now uses Q.js[1] Promises internally instead of
callbacks. This has significantly clarified and shortened the code. The
public API (plugman.fetch, cordova.platform, etc.) HAVE NOT changed!

If you use CLI on the command line, nothing has changed.

If you downstream CLI and/or Plugman, but use and,
nothing has changed (except possibly that a few calls are a bit more async
than before, so code that cheats and pretends they're sync might fail now).

If you downstream either one, but require internal modules like fetch.js or
platform.js directly, you should stop doing that and use plugman.fetch etc.
instead. If you want to continue calling them directly, you'll need to port
to use promises.

If you've been working on Plugman or CLI and I just broke everything, feel
free to yell at me on IRC (#cordova, shepheb) or Gtalk (braden at google
dot com) or email. It's not hard to port things to handle promises (see
below), and their basic use is not hard to understand (see the tutorial[1]).

If you really do need to port something, and you used to do a function call
like this:

whateverFunc(args..., function(err){
  if (err) {
  } else {

the correct call is now:

whateverFunc(args...).done(function() {
}, function(err) {

[1] Q.js tutorial at

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message