StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
StackGenVis/frontend/node_modules/plotly.js/tasks/util/browserify_wrapper.js

97 lines
2.6 KiB

var fs = require('fs');
var path = require('path');
var browserify = require('browserify');
var minify = require('minify-stream');
var derequire = require('derequire');
var through = require('through2');
var constants = require('./constants');
var strictD3 = require('./strict_d3');
/** Convenience browserify wrapper
*
* @param {string} pathToIndex path to index file to bundle
* @param {string} pathToBunlde path to destination bundle
* @param {object} opts
* Browserify options:
* - standalone {string}
* - debug {boolean} [optional]
* Additional option:
* - pathToMinBundle {string} path to destination minified bundle
* - noCompress {boolean} skip attribute meta compression?
* @param {function} cb callback
*
* Outputs one bundle (un-minified) file if opts.pathToMinBundle is omitted
* or opts.debug is true. Otherwise outputs two file: one un-minified bundle and
* one minified bundle.
*
* Logs basename of bundle when completed.
*/
module.exports = function _bundle(pathToIndex, pathToBundle, opts, cb) {
opts = opts || {};
var pathToMinBundle = opts.pathToMinBundle;
var browserifyOpts = {};
browserifyOpts.standalone = opts.standalone;
browserifyOpts.debug = opts.debug;
if(opts.noCompress) {
browserifyOpts.ignoreTransform = './tasks/compress_attributes.js';
}
browserifyOpts.transform = [];
if(opts.debug) {
browserifyOpts.transform.push(strictD3);
}
var b = browserify(pathToIndex, browserifyOpts);
var pending = pathToMinBundle ? 2 : 1;
function done() {
if(cb && --pending === 0) cb(null);
}
var bundleStream = b.bundle(function(err) {
if(err) {
if(cb) cb(err);
else throw err;
}
});
if(pathToMinBundle) {
bundleStream
.pipe(applyDerequire())
.pipe(minify(constants.uglifyOptions))
.pipe(fs.createWriteStream(pathToMinBundle))
.on('finish', function() {
logger(pathToMinBundle);
done();
});
}
bundleStream
.pipe(applyDerequire())
.pipe(fs.createWriteStream(pathToBundle))
.on('finish', function() {
logger(pathToBundle);
done();
});
};
function logger(pathToOutput) {
var log = 'ok ' + path.basename(pathToOutput);
console.log(log);
}
function applyDerequire() {
var buf = '';
return through(function(chunk, enc, next) {
buf += chunk.toString();
next();
}, function(done) {
this.push(derequire(buf));
done();
});
}