cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anis KADRI <anis.ka...@gmail.com>
Subject Re: Major refactoring of Plugman and CLI
Date Tue, 24 Sep 2013 10:56:13 GMT
cool.

I don't think we're using fetch/platforms directly.

-a

On Tue, Sep 24, 2013 at 11:35 AM, Brian LeRoux <b@brian.io> wrote:
> Kewl. I'm down and happen to really like Q. Not sure everyone will agree.
> Maybe next time a heads up to the list so we can discuss arch changes like
> this.
>
>
> On Mon, Sep 23, 2013 at 8:13 PM, Braden Shepherdson <braden@chromium.org>wrote:
>
>> Whoops, I forgot to mention, I created and pushed a cordova-3.1.x branch of
>> both tools before merging this; fixes for the 3.1.0 release should be in
>> there. I don't intend to launch the refactored code to NPM until we've had
>> at least a week of trying it out.
>>
>> Braden
>>
>>
>> On Mon, Sep 23, 2013 at 2:08 PM, Braden Shepherdson <braden@chromium.org
>> >wrote:
>>
>> > 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 cordova.foo and
>> plugman.foo,
>> > 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) {
>> >     foo
>> >   } else {
>> >     bar
>> >   }
>> > });
>> >
>> > the correct call is now:
>> >
>> > whateverFunc(args...).done(function() {
>> >   bar
>> > }, function(err) {
>> >   foo
>> > });
>> >
>> >
>> > [1] Q.js tutorial at https://github.com/kriskowal/q
>> >
>> >
>>

Mime
View raw message