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 Wed, 09 Jan 2013 18:57:25 GMT
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