dojo-util
Version:
Dojo utilities including build system for optimizing JavaScript application performance, and DOH testing tool
35 lines (31 loc) • 1.3 kB
JavaScript
define(["../buildControl", "require"], function(bc, require){
var optimizers = {};
function resolveComments(optimizer) {
// This is for back-compat of comments and comments.keepLines,
// after the refactor to separate optimizers placed this logic in shrinksafe.
// TODO: remove @ 2.0 (along with shrinksafe entirely, perhaps)
return /^comments/.test(optimizer) ? "shrinksafe." + optimizer : optimizer;
}
if(bc.optimize){
bc.optimize = resolveComments(bc.optimize);
require(["./optimizer/" + bc.optimize.split(".")[0]], function(optimizer){
optimizers[bc.optimize] = optimizer;
});
}
if(bc.layerOptimize){
bc.layerOptimize = resolveComments(bc.layerOptimize);
require(["./optimizer/" + bc.layerOptimize.split(".")[0]], function(optimizer){
optimizers[bc.layerOptimize] = optimizer;
});
}
return function(resource, callback){
var copyright = resource.pack ? resource.pack.copyright : bc.copyright;
if(bc.optimize && !resource.layer){
return optimizers[bc.optimize](resource, resource.uncompressedText, copyright, bc.optimize, callback);
}else if(bc.layerOptimize && resource.layer && !resource.layer.discard){
return optimizers[bc.layerOptimize](resource, resource.uncompressedText, copyright, bc.layerOptimize, callback);
}else{
return 0;
}
};
});