I know at some point we spoke about modifying require to allow relative paths 
within a module and I'm wondering if this is still something we're interested 
in doing and if so what a reasonable spec for doing so would be.

In the current plugin spec [1], under the JS module tag, we define a module's 
id as the plugin's id, mixed with the module name (provided in xml) joined by a 
".". Thus a plugin "com.blackberry.foo" with a module named "bar" becomes 
"com.blackberry.foo.bar".

This presents an odd technical problem by using the "." character as  a path 
separator but not reserving it from general use (and even encouraging its use 
elsewhere like in the plugin id). The problem is further compounded by not 
preventing names from having "."s within them. I believe the simplest solution 
is to not allow "." characters within the js-module name, guaranteeing that the 
dot separates the module name and the plugin id.

The second issue arises with the desired notation for a relative path require. 
In other systems, since the "/" is used as a separator, relative requires are 
usually prefixed by "./". However since we are not using "/" characters as 
separators does this make sense? My personal feeling is yes since this is what 
our users will be used to. This means that within module 
"com.blackberry.foo.bar" require("./baz") will result in requiring the module 
"com.blackberry.foo.baz".

If this makes sense to everyone, it greatly simplifies the problem since we 
will not have multiple levels and we'll never deal with ".." problems. I have a 
patch for this implementation here [2]


1. https://github.com/apache/cordova-plugman/blob/future/README.md
2. https://github.com/blackberry/cordova-js/pull/17.patch

---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.

Reply via email to