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/update/lib/utils.js

166 lines
3.5 KiB

4 years ago
'use strict';
var utils = require('lazy-cache')(require);
var fn = require;
require = utils; // eslint-disable-line
/**
* Utils
*/
require('assemble-loader', 'loader');
require('arr-union', 'union');
require('base-cli-process', 'cli');
require('base-config-process', 'config');
require('base-generators', 'generators');
require('base-questions', 'questions');
require('base-runtimes', 'runtimes');
require('base-store', 'store');
require('data-store', 'Store');
require('common-config', 'common');
require('extend-shallow', 'extend');
require('fs-exists-sync', 'exists');
require('isobject', 'isObject');
require('is-valid-app', 'isValid');
require('global-modules', 'gm');
require('log-utils', 'log');
require('resolve-dir');
require('resolve-file', 'resolve');
require('parser-front-matter', 'parser');
require('yargs-parser', 'parse');
require = fn; // eslint-disable-line
utils.stripPrefixes = function(file) {
file.stem = file.stem.replace(/^_/, '.');
file.stem = file.stem.replace(/^\$/, '');
};
/**
* argv options
*/
utils.opts = {
boolean: ['diff'],
alias: {
add: 'a',
config: 'c',
configfile: 'f',
diff: 'diffOnly',
global: 'g',
help: 'h',
init: 'i',
silent: 'S',
verbose: 'v',
version: 'V',
remove: 'r'
}
};
utils.parseArgs = function(argv) {
var obj = utils.parse(argv, utils.opts);
if (obj.init) {
obj._.push('init');
delete obj.init;
}
if (obj.help) {
obj._.push('help');
delete obj.help;
}
return obj;
};
utils.remove = function(arr, names) {
return arr.filter(function(ele) {
return names.indexOf(ele) === -1;
});
};
/**
* Return true if any of the given `tasks` are in the specified `list`
*/
utils.contains = function(list, tasks) {
return utils.arrayify(list).some(function(ele) {
return ~tasks.indexOf(ele);
});
};
/**
* Return true if the given array is empty
*/
utils.isEmpty = function(val) {
return utils.arrayify(val).length === 0;
};
/**
* Cast `val` to an array
*/
utils.toArray = function(val) {
return typeof val === 'string' ? val.split(',') : val;
};
/**
* Cast `val` to an array
*/
utils.arrayify = function(val) {
return val ? (Array.isArray(val) ? val : [val]) : [];
};
/**
* Add logging methods
*/
utils.logger = function(options) {
return function() {
function logger(prop, color) {
color = color || 'dim';
return function(msg) {
var rest = [].slice.call(arguments, 1);
return console.log
.bind(console, utils.log.timestamp + (prop ? (' ' + utils.log[prop]) : ''))
.apply(console, [utils.log[color](msg)].concat(rest));
};
};
Object.defineProperty(this, 'log', {
configurable: true,
get: function() {
function log() {
return console.log.apply(console, arguments);
}
log.path = function(msg) {
return logger(null, 'dim').apply(null, arguments);
};
log.time = function(msg) {
return logger(null, 'dim').apply(null, arguments);
};
log.warn = function(msg) {
return logger('warning', 'yellow').apply(null, arguments);
};
log.success = function() {
return logger('success', 'green').apply(null, arguments);
};
log.info = function() {
return logger('info', 'cyan').apply(null, arguments);
};
log.error = function() {
return logger('error', 'red').apply(null, arguments);
};
log.__proto__ = utils.log;
return log;
}
});
};
};
/**
* Expose utils
*/
module.exports = utils;