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/base-cli-process/lib/fields/set.js

113 lines
2.2 KiB

4 years ago
'use strict';
var utils = require('../utils');
/**
* Set the given value, or a value was previously cached by `--get`.
*
* ```json
* $ app --set=pkg.name:foo
* # example: persist `pkg.name` to `store.data.name`
* $ app --get=pkg.name --set=store.name
* ```
* @name set
* @api public
*/
module.exports = function(app) {
return function(prop, key, config, next) {
if (typeof prop === 'undefined') {
next();
return;
}
if (utils.isObject(prop)) {
var temp = prop;
for (var k in temp) {
if (temp.hasOwnProperty(k)) {
prop = k + ':' + temp[k];
}
}
}
var cached = app.get('cache.get');
var name, rest, val;
var keys = [];
if (utils.isObject(prop)) {
keys = [];
name = Object.keys(prop)[0];
val = prop[name];
} else {
keys = String(prop).split('.');
name = keys.shift();
rest = keys.join('.');
if (typeof cached !== 'undefined') {
val = cached;
} else {
keys = [];
val = {};
val[rest] = true;
}
}
utils.assertPlugins(app, name);
switch(name) {
case 'pkg':
if (keys.length) {
app.pkg.set(rest, val);
} else {
app.pkg.set(val);
}
app.pkg.save();
break;
case 'config':
if (keys.length) {
app.pkg.set([app._name, rest], val);
} else {
app.pkg.set(app._name, val);
}
app.pkg.save();
break;
case 'globals':
if (keys.length) {
app.globals.set(rest, val);
} else {
app.globals.set(val);
}
break;
case 'store':
if (keys.length) {
app.store.set(rest, val);
} else {
app.store.set(val);
}
break;
case 'option':
if (keys.length) {
app.option(rest, val);
} else {
app.option(val);
}
break;
case 'data':
if (keys.length) {
app.data(rest, val);
} else {
app.data(val);
}
break;
default:
if (keys.length) {
app.set(prop, val);
} else {
app.set(val);
}
break;
}
next();
};
};