plugin and alias as package-relative

This commit is contained in:
guybedford 2015-04-12 23:49:29 +02:00
parent 669fb2b257
commit eff3f87c82

View File

@ -51,6 +51,12 @@
* import 'jquery' => import 'jquery/index.js'
* import 'jquery/module' => import 'jquery/module.js'
*
* In addition, the following meta properties will be allowed to be package
* -relative as well in the package meta config:
*
* - plugin
* - alias
*
*/
(function() {
@ -85,13 +91,6 @@
};
});
function extend(a, b) {
a = a || {};
for (var p in b)
a[b] = b[p];
return a;
}
SystemJSLoader.prototype.packages = function(packages) {
var loader = this;
for (var p in packages) {
@ -107,12 +106,26 @@
loader.packageDefaultJSExtensions[p] = true;
// format
if (pkgCfg.format)
loader.meta[p + '/*'] = extend(loader.meta[p + '/*'], { format: pkgCfg.format });
if (pkgCfg.format) {
var formatMeta = loader.meta[p + '/*'] || {};
formatMeta.format = pkgCfg.format;
loader.meta[p + '/*'] = formatMeta;
}
// meta
for (var m in pkgCfg.meta)
loader.meta[p + '/' + m] = extend(loader.meta[p + '/' + m], pkgCfg.meta[m]);
for (var m in pkgCfg.meta) {
var meta = loader.meta[p + '/' + m] || {};
var pkgMeta = pkgCfg.meta[m];
for (var p in pkgMeta) {
// plugin and alias can be package-relative
if ((p === 'plugin' || p === 'alias')
&& pkgMeta[p].substr(0, 2) == './')
meta[p] = p + pkgMeta[p].substr(1);
else
meta[p] = pkgMeta[p];
}
loader.meta[p + '/' + m] = meta;
}
// map
for (var m in pkgCfg.map) {