steal-tools
Version:
Futuristic build tools for ES6 Module applications.
30 lines (25 loc) • 637 B
JavaScript
var through = require("through2");
var prune = require("../graph/prune");
var treeshake = require("../graph/treeshake");
var winston = require("winston");
module.exports = function() {
return through.obj(function(data, enc, next) {
var options = data.options;
var disabled =
// Can be disabled from the BuildOptions
options.treeShaking === false ||
// Or from package.json config
data.loader.treeShaking === false;
if(disabled) {
next(null, data);
return;
}
winston.info("Tree shaking...");
treeshake(data, options)
.then(function(){
prune(data);
next(null, data);
})
.catch(next);
});
};