cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Maj <...@adobe.com>
Subject Re: Moving plugin JS files around
Date Fri, 01 Feb 2013 21:39:48 GMT
Updated: http://wiki.apache.org/cordova/PluginDesign

Anis, can you do us a solid and review the document based on your latest
experience authoring plug man? Like make sure the doc is not missing
anything and is up to date?

On 2/1/13 12:09 PM, "Andrew Grieve" <agrieve@chromium.org> wrote:

>Great! thanks!
>
>
>On Fri, Feb 1, 2013 at 3:06 PM, Brian LeRoux <b@brian.io> wrote:
>
>> Seems like a wiki thing.
>>
>> On Fri, Feb 1, 2013 at 12:01 PM, Filip Maj <fil@adobe.com> wrote:
>> > Its just a document..
>> >
>> > Ill move it / create a spot for it in the wiki ?
>> >
>> > On 2/1/13 11:56 AM, "Brian LeRoux" <b@brian.io> wrote:
>> >
>> >>Yup, you only need to update the NOTICE and only if we are
>>distributing.
>> >>
>> >>On Fri, Feb 1, 2013 at 11:47 AM, Filip Maj <fil@adobe.com> wrote:
>> >>> isn't mit compatible with apache license?
>> >>>
>> >>> On 2/1/13 11:41 AM, "Andrew Grieve" <agrieve@chromium.org> wrote:
>> >>>
>> >>>>Did anyone act on putting this on the wiki?
>> >>>>
>> >>>>We'd need to ask Andrew to re-license from MIT -> Apache before
we
>>did
>> >>>>so
>> >>>>I
>> >>>>think.
>> >>>>
>> >>>>
>> >>>>On Wed, Jan 9, 2013 at 2:10 PM, Shazron <shazron@gmail.com>
wrote:
>> >>>>
>> >>>>> +1
>> >>>>>
>> >>>>>
>> >>>>> On Wed, Jan 9, 2013 at 10:57 AM, Filip Maj <fil@adobe.com>
wrote:
>> >>>>>
>> >>>>> > https://github.com/alunny/cordova-plugin-spec
>> >>>>> >
>> >>>>> >
>> >>>>> > We should move this to our wiki asap
>> >>>>> >
>> >>>>> > On 1/9/13 7:28 AM, "Gord Tanner" <gtanner@gmail.com>
wrote:
>> >>>>> >
>> >>>>> > >Ideally the require paths should stay true to the following
>>rules
>> >>>>>(not
>> >>>>> > >that
>> >>>>> > >we follow them exactly now but we are close):
>> >>>>> > >
>> >>>>> > >1. should always start with cordova (in case we ever
share a
>> >>>>>require
>> >>>>> > >framework)
>> >>>>> > >2. should follow as close as possible to the folder
structure.
>> >>>>> > >
>> >>>>> > >We don't really do this now (but we are close).  It
is mainly
>>to
>> >>>>>help
>> >>>>> with
>> >>>>> > >navigation of the project from a require statement:
>> >>>>> > >
>> >>>>> > >     var foo = require('cordova/plugin/foo/submodule')
>> >>>>> > >
>> >>>>> > >Ideally I should be able to navigate to a file that
lives in:
>> >>>>> > >
>> >>>>> > >     ~/cordova.js/plugin/foo/submodule.js
>> >>>>> > >
>> >>>>> > >But realistically we are probably going to see:
>> >>>>> > >
>> >>>>> > >    ~/cordova.js/plugin/foo/js/submodule.js
>> >>>>> > >
>> >>>>> > >Assuming we are dumping everything into a js folder
here is the
>> >>>>> "mapping"
>> >>>>> > >off the top of my head:
>> >>>>> > >
>> >>>>> > >    var foo = require('cordova/plugin/foo')
>> >>>>> > >    ~/cordova.js/plugin/foo/js/index.js
>> >>>>> > >
>> >>>>> > >    var foo = require('cordova/plugin/foo/ios')
>> >>>>> > >    ~/cordova.js/plugin/foo/js/ios.js
>> >>>>> > >
>> >>>>> > >    var foo = require('cordova/plugin/foo/blackberry/qnx')
>> >>>>> > >    ~/cordova.js/plugin/foo/js/blackberry/qnx.js
>> >>>>> > >
>> >>>>> > >What does a plugin (native and js code) folder structure
look
>> like?
>> >>>>> > >
>> >>>>> > >
>> >>>>> > >On Wed, Jan 9, 2013 at 9:42 AM, Andrew Grieve
>><agrieve@google.com
>> >
>> >>>>> wrote:
>> >>>>> > >
>> >>>>> > >> I'd like to take a first step towards moving plugin
JS into
>> >>>>>separate
>> >>>>> > >>repos
>> >>>>> > >> by first moving them around within cordova-js.
>> >>>>> > >>
>> >>>>> > >> Here is my proposal:
>> >>>>> > >>
>> >>>>> > >> Current structure:
>> >>>>> > >>         lib/common/plugin/*.js
>> >>>>> > >>         lib/$PLATFORM/plugin/*.js
>> >>>>> > >>
>> >>>>> > >> New structure:
>> >>>>> > >>         plugin/$PLUGIN_NAME/js/common/*.js
>> >>>>> > >>         plugin/$PLUGIN_NAME/js/$PLATFORM/*.js
>> >>>>> > >>
>> >>>>> > >> The require path will need to change. Going from:
>> >>>>> > >>         cordova.require('cordova/plugin/FileTransferError')
>> >>>>> > >> To:
>> >>>>> > >>         cordova.require('plugin/file/FileTransferError')
>> >>>>> > >>
>> >>>>> > >>
>> >>>>> > >> I'll obviously need to update the builder scripts
>>accordingly.
>> >>>>>The
>> >>>>> idea
>> >>>>> > >> here is that we:
>> >>>>> > >>         1. "cordova plugin add" will copy files
into a
>>project's
>> >>>>> plugins
>> >>>>> > >> directory
>> >>>>> > >>         2. "cordova build ios" will use the cordova-js
>>packager
>> >>>>>and
>> >>>>> > >>pass it
>> >>>>> > >> the plugin/ directory to use
>> >>>>> > >>
>> >>>>> > >> This will not involve changing how we export modules
onto
>> >>>>>namespaces
>> >>>>> in
>> >>>>> > >> common.js / platform.js. That will come next though.
>> >>>>> > >>
>> >>>>> > >>
>> >>>>> > >> The resulting structure will look like:
>> >>>>> > >>
>> >>>>> > >> plugin/accelerometer/js/common/Acceleration.js
>> >>>>> > >> plugin/accelerometer/js/common/accelerometer.js
>> >>>>> > >> plugin/battery/js/common/battery.js
>> >>>>> > >> plugin/compass/js/common/Compass*.js
>> >>>>> > >> plugin/contacts/js/common/Contact*.js
>> >>>>> > >> plugin/device/js/common/device.js
>> >>>>> > >> plugin/geolocation/js/common/Coordinates.js
>> >>>>> > >> plugin/geolocation/js/common/Position*.js
>> >>>>> > >> plugin/globalization/js/common/Globalization*.js
>> >>>>> > >> plugin/inappbrowser/js/common/InAppBrowser.js
>> >>>>> > >> plugin/logger/js/common/logger.js
>> >>>>> > >> plugin/logger/js/common/console-via-logger.js
>> >>>>> > >> plugin/media/js/common/Capture*.js
>> >>>>> > >> plugin/media/js/common/ConfigurationData.js
>> >>>>> > >> plugin/media/js/common/Media*.js
>> >>>>> > >> plugin/network/js/common/Connection.js
>> >>>>> > >> plugin/notification/js/common/notification.js
>> >>>>> > >> plugin/camera/js/common/Camera*.js
>> >>>>> > >> plugin/echo/js/common/echo.js
>> >>>>> > >> plugin/file/js/common/Directory*.js
>> >>>>> > >> plugin/file/js/common/Entry.js
>> >>>>> > >> plugin/file/js/common/File*.js
>> >>>>> > >> plugin/file/js/common/Flags.js
>> >>>>> > >> plugin/file/js/common/LocalFileSystem.js
>> >>>>> > >> plugin/file/js/common/Metadata.js
>> >>>>> > >> plugin/file/js/common/ProgressEvent.js
>> >>>>> > >> plugin/splashscreen/js/common/splashscreen.js
>> >>>>> > >>
>> >>>>> >
>> >>>>> >
>> >>>>>
>> >>>
>> >
>>


Mime
View raw message